【自学小梅哥fpga】04 闪烁led

功能描述

设计一个1s频率闪烁的led灯(亮灭各500ms)。

功能设计

1 D触发器

时序逻辑电路中的核心部件是D触发器。
功能:当时钟上升沿到来时,D端口的数据发送到Q端口。
特性:存储电平。
在这里插入图片描述

2 计数器-计数时钟

原理:cnt<=cnt+1;累加器。
一个n位计数器
默认Q端口在0时刻的值是0,累加器的一个端口永远值为1。

Q端口值clk1clk2clk3
0123

3 设计

在这里插入图片描述
设计定义的功能块中包含计数器,实现计数和延时功能。
reset_n表示低电平复位。
当时有这样一个疑问?为什么需要reset端口?
因为计数有限,不能说计数500ms亮,1000ms灭,1500ms亮……占用位宽,节省位宽。

语法

(1)reg定义的信号通常会被综合为一个寄存器(rigister),但前提是reg信号必须是在边沿触发的always块中被赋值。
本例中的cnt本身就是一个D触发器,定义为reg型。并且在always块中被赋值。
(2)if…else if … else 语句
先考虑极端情况,再else。
在这里插入图片描述

(3)reg信号都要在test bench中产生激励。写激励信号①定义电平,②延时。
时钟信号的产生:initial clk=1; always # 10 clk=~clk;
!是逻辑取反,~是按位取反,对于1bit信号是等价的。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值