|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本人在学习《无线通信FPGA设计》(电子工业出版业出版),在7.3.3 CIC滤波器的FPGA实现中,本人认为例子中有错误。例1和例2两个设计中,我分别在modelsim中进行仿真,但是结果并没有显示图中所示的示意图。
下面是单击、抽取率为2的8位CIC。(例7-9)
module cic_dec_2_single(clk,clk1,reset,x_in,y_out);
input clk;
input clk1;
input reset;
input [7:0] x_in;
output [7:0] y_out;
reg [15:0] x_t,y_t;
reg [7:0] int_out;
[email=always@(posedge]always@(posedge[/email] clk)
begin
if(!reset)
begin
x_t<=0;
int_out<=0;
end
else begin
x_t<={x_t[7:0],x_in[7:0]};
end
int_out<=x_t[7:0]+x_t[15:8];
end
[email=always@(posedge]always@(posedge[/email] clk1)
begin
if(!reset)
begin
y_t<=0;
end
else begin
y_t<={y_t[7:0],int_out[7:0]};
end
end
assign y_out=y_t[7:0]-y_t[15:8];
endmodule
下面是我自己编写的testbench,
module test;
reg clk,reset,clk1;
reg [7:0] x_in;
wire [7:0] y_out;
cic_dec_2_single cic2(.clk(clk),.clk1(clk1),.x_in(x_in),.y_out(y_out),.reset(reset));
initial
begin
clk=0;
clk1=0;
reset=1;
x_in=8'b0000_0000;
#1000 reset=0;
#3000 reset=1;
#500000 $stop;
end
[email=always@(negedge]always@(negedge[/email] clk)
begin
x_in<=x_in+1;
end
always #500 clk=~clk;
always #1000 clk1=~clk1;
endmodule
仿真波形在附件中,请问y_out的最终输出为什么是固定的一个值呢? |
|