作者magician1 (不如归去)
看板Electronics
标题[问题] Verilog
时间Sat Mar 20 01:52:59 2010
sub_25b(a, b, c);
input [24:0] a;
input [24:0] b;
output [24:0] c;
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: 115.43.49.101
※ 编辑: magician1 来自: 115.43.49.101 (03/20 01:53)
※ 编辑: magician1 来自: 115.43.49.101 (03/20 01:55)
1F:嘘 horsehead:嘘你 03/20 13:21
2F:→ cnprince:问题没头没尾的,你想人家回答你什麽 = = 03/20 14:50
3F:嘘 luckyBF:有人开炮~!!小弟补刀~~XD 03/20 15:12