FPGA入门实验三:计数器、波形仿真、SignalTap

来源:互联网 发布:威海矩阵直销软件价格 编辑:程序博客网 时间:2024/06/05 10:22

题目(1):参照代码,设计一个0-17的计数器,当计数值为17的时候,OV输出1,其他输出0,注意设定合理的信号位宽。

1.新建工程,添加BDF文件和Verilog-HDL文件,写一个17进制计数器的Module并创建Symbol,其代码如下:

module dec_17(
input CLK,
output reg [5-1:0] OUT,
output reg OV
);
always @ (posedge CLK) begin
if(OUT<5'd17)
OUT<=OUT+1'b1;
else OUT=0;
end
always @(OUT) begin
    if(OUT==17)
OV=1;
else 
OV=0;
end
endmodule  

2.17进制计数器的RTL视图如下:


3.在Bdf文件中添加新建的Symbol并且将CLK信号指派为G21引脚。


4.新建Signal tap文件,添加要观察的量,重新编译工程,将生成的.sof文件下载到板子中,通过放大缩小可以观察OUT端的输出情况如下图所示:



题目(2):针对以上计数器,修改输出逻辑,当计数值为0-8时,OV输出0,9-17时OV输出1 用SignalTap验证

1.新建工程,添加BDF文件和Verilog-HDL文件,写一个题目要求的计数器的Module并创建Symbol,其代码如下:

module dec_17(
input CLK,
output reg [5-1:0] OUT,
output reg OV
);
always @ (posedge CLK) begin
if(OUT<5'd17)
OUT<=OUT+1'b1;
else OUT=0;
end
always @(OUT) begin
    if(OUT<=8)
OV=0;
else 
OV=1;
end
endmodule  

2.RTL图如下


3.3.在Bdf文件中添加新建的Symbol并且将CLK信号指派为G21引脚。


4.新建Signal Tap 文件,添加要观察的信号,编译工程,将.sof文件下载后观察如下