Re: [問題] Verilog
沒啥不妥阿
但是 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
04/10 19:59, 1F
討論串 (同標題文章)