先来第三题,因为不会专门的仿真软件,就大概说下用过的Quartus的仿真。
module test_test_123123123123(clk_in,
rst_n_in,
out_en_in,
MSB,
out
);
input clk_in;
input rst_n_in;
input out_en_in;
output MSB;
output out;
reg [10:0] counter;
wire out;
wire MSB;
always @ (posedge clk_in) //synchronization reset
if(~rst_n_in)
counter<=11'b0;
else
counter<=counter+1'b1;
assign MSB=counter[10];
assign out=MSB&out_en_in;
endmodule
这是仿真的程序,就是一个对时钟计数的计数器,rst是同步复位MSB的输出是计数器的最高位,OUT是MSB与输入out_en_in相与之后输出,可以将out_en_in看做一个使能端。下面是仿真。
先建立波形文件,在FILE下的NEW可以建立Vector Waveform File文件(应该翻译成向量波形文件吧?),会出现下面一个界面
这个界面中,1显示要仿真得信号,包括输入和输出及中间信号,起初为空白;先添加信号双击一的空白处,出现界面2,点击3的Node Finder出现界面4,5处帮助筛选管脚这里选作所有的输入输出,点击7,然后点击3 4界面的OK,完成管脚添加。图中8处可以选择End time,即仿真结束时间。完成后如下图
在原来的空白位置已有信号。1 2 3均可设置输入信号,1为置1,2为置0,3为设置时钟,可调出界面4,设置时钟相关,设置完毕后如下图
点击此处开始仿真(若功能仿真需编译并生成功能仿真网表,若时序仿真要进行编译及综合),仿真后波形如下
|