FPGA 电路开发入门实验(实验3:计数器波形仿真和signalTap)

1、设计一个0-17的计数器,当计数值为17的时候,OV输出1,其他输出0,注意设定合理的信号位宽。

首先写一个0到17的verilog代码如下:

module cnt_0to17(
CLK,
CNTVAL,
OV);

input CLK;
output [4:0] CNTVAL;
output OV;

reg [4:0] CNTVAL;
reg OV;

always @(posedge CLK)
begin
  if(CNTVAL>=17)
    CNTVAL <= 0;
  else
    CNTVAL <= CNTVAL + 1'b1;
end

always @(CNTVAL)
begin
  if(CNTVAL==17)
    OV=1'b1;
  else
    OV=1'b0;
end

endmodule  

其次将verilog文件加入到project中,随后创建符号。
建立BDF文件,画电路模块图如下:
在这里插入图片描述
RTL View在这里插入图片描述
波形仿真:
在这里插入图片描述
signal tap数据分析:
在这里插入图片描述
2、针对以上计数器,修改输出逻辑,当计数值为0-8时,OV输出0,9-17时OV输出1
首先改写verilog代码如下:

module cnt_0to17(
CLK,
CNTVAL,
OV);

input CLK;
output [4:0] CNTVAL;
output OV;

reg [4:0] CNTVAL;
reg OV;

always @(posedge CLK)
begin
  if(CNTVAL>=17)
    CNTVAL <= 0;
  else
    CNTVAL <= CNTVAL + 1'b1;
end

always @(CNTVAL)
begin
  if(CNTVAL>=9)
    OV=1'b1;
  else
    OV=1'b0;
end

endmodule  

用SignalTap验证:
在这里插入图片描述
尝试并思考,如果时钟是50MHz,把OV接到一个LED上,能看见什么现象,为什么?
答:如果时钟是50MHz,LED灯会一直亮,因为频率太高,肉眼分辨不出来亮灭,所以会一直认为灯一直亮。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值