Re: [問題] Verilog

看板Electronics作者 (超強合成器)時間14年前 (2010/03/20 18:50), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/3 (看更多)
沒啥不妥阿 但是 state_1 clk1 沒被用到 這是要幹麻 想被我化簡掉嗎 =.= 哪種filter有點忘了 orz 有勞原po說明 ※ 引述《magician1 (不如歸去)》之銘言: : assign c = a - b; : endmodule : module CIC_FILTER(v_in, v_out, clk, clk1, reset); : input [15:0] v_in; : output reg [15:0] v_out; : reg [24:0] x_tap[5:0]; : reg [24:0] y_tap[2:0]; : reg [24:0] tmp; : reg [24:0] tmp_1; : wire [24:0] tmp_out; : reg [24:0] tmp_2; : reg [24:0] tmp_3; : wire [24:0] tmp_out1; : reg [1:0] state; : reg [1:0] state_1; : reg [24:0] x_tmp_2; : wire [24:0] x_in; : sub_25b s0(.a(tmp), .b(tmp_1), .c(tmp_out)); : assign x_in = {{9{v_in[15]}}, v_in[15:0]}; : always @(negedge clk or negedge reset) begin : if(!reset) begin : state[1:0] <= 2'b0; : end : else begin : state[1:0] <= state[1:0] + 1; : end : end : always @(negedge clk1 or negedge reset) begin : if(!reset) begin : state_1[1:0] <= 2'b0; : end : else begin : state_1[1:0] <= state_1[1:0] + 1; : end : end : always @(negedge clk or negedge reset) begin : if(!reset) begin : x_tap[0] <= 0; : x_tap[1] <= 0; : x_tap[2] <= 0; : x_tap[3] <= 0; : x_tap[4] <= 0; : x_tap[5] <= 0; : tmp <= 0; : tmp_1 <= 0; : end : else begin : case(state[1:0]) : 2'b00: begin : tmp <= x_in; : tmp_1 <= x_tap[1]; : end : 2'b01: begin : tmp <= tmp_out; : tmp_1 <= x_tap[3]; : x_tap[2] <= tmp_out; : x_tap[3] <= x_tap[2]; : end : 2'b10: begin : tmp <= tmp_out; : tmp_1 <= x_tap[5]; : x_tap[4] <= tmp_out; : x_tap[5] <= x_tap[4]; : end : 2'b11: begin : x_tmp_2 <= tmp_out; : x_tap[0] <= x_in; : x_tap[1] <= x_tap[0]; : end : endcase : end : end : endmodule : 請問 這些寫法 有哪裡不妥嗎 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.237.187

04/10 19:59, , 1F
原po Ultra!
04/10 19:59, 1F
文章代碼(AID): #1BfAYFf8 (Electronics)
討論串 (同標題文章)
本文引述了以下文章的的內容:
問題
-2
3
以下文章回應了本文
問題
2
15
完整討論串 (本文為第 2 之 3 篇):
問題
-2
3
問題
2
15
文章代碼(AID): #1BfAYFf8 (Electronics)