fpga第一课作业

在 FPGA 的时序电路设计中,对于数字电路的中组合逻辑的延迟、时钟裕量等就会有较 高的要求

主要实现两个部分:

1.逻辑门电路的译码

2.呼吸灯电路

边沿触发一般带有时钟信号,一般使用电平触发都是组合逻辑,如果纯用边沿触发多话时钟信号的扇出会比较大,会比较影响时钟偏移等比较关键的时钟参数,所以合理的利用边沿触发和电平触发是比较重要的,这种没有一个固定的标准,所以关键在多写代码

综合和仿真都是对顶层文件进行操作,所以操作时需将需要仿真和综合的文件设置为顶层文件

我们设计一个电路,通过与门、或门、异或门和同或门去控制四个 LED 灯,当两个按键 输入通过门的结果为 1 时,其对应的 LED 灯进行呼吸灯效果,当输出结果为 0 时,LED 常灭, 并且与门和或门、异或门和同或门呼吸速度不同,下面是具体实现。 在 top 文件中,将呼吸灯代码单独封装成一个模块,并定义 parameter 参数用来控制呼 吸速度,然后通过逻辑们电路对其进行控制。


由于我用的板卡是zynq-7010,而教学的板卡是zynq-7020,所以引脚定义有些不同,需要调整一些的端口的定义

单独定义一个呼吸灯模块,此模块只需要控制一个 LED 灯,相对于 4 个具有不同呼吸速 度的呼吸灯,更加简便,结构也更加清晰。 在第 4 行定义了呼吸速率,其对应的呼吸时间为 10000*10000*20ns=2s,所以呼吸时间为

2s,如果改成 5000,则呼吸时间为 5000*5000*20ns=0.5s。

14 行和 19 行两个触发器定一个一个嵌套式计数器,通过两个计数器的比较进行 LED 灯 的输出,通过 26 行触发器控制外层计数器的计数方式是累加还是递减。

1.0 led_breath.v

仿真文件只单独仿真了呼吸灯模块,通过仿真可以看到,LED 通过调整占空比实现了呼 吸灯效果。

2.0 tb_led_breath.v

3.0 top.v

4.0 system.xdc

5.0 pin.xdc

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值