- 博客(14)
- 收藏
- 关注
原创 Vivado使用ROM IP
在写入初始文件时,不一定占据ROM全部内存,可以选择将未写入初始值的位写入特定的值。使能才能使douta输出正确的值,否则douta一直锁定输出锁定时的值。输出的数据是否要经过寄存器。导致波形中间断裂,因为这部分地址对应的值为0。(选择模拟量可以看到对应数据波形)数据深度是指能存的地址的个数,1024对应2的十次方,影响addra的宽度;写入ROM里的初始值。(使用的小梅哥Mif精灵生成的正弦波)写仿真代码时可以在IP Sources里找到已经例化的模版。导致的读取地址与输出地址的值相差一个时钟。
2025-02-24 22:20:06
507
原创 基于FPGA实现74CH595驱动数码管
1.数码管动态刷新原理是依次点亮每一个数码管,只是人眼无法分辨。要想实现同时亮的效果,需要第一个点亮的与最后一个点亮的间距要小于20ms;这里选择每一个数码管点亮间距为1ms。2. 利用计数器与38译码器实现位选。3.通过查找表将数码管要显示的数字存储起来;3.将外部数据拆分为八部分(因为是八个数码管)。将外部数据的四位与查找表索引对应,显示数字。4.此外注意各个模块输出的是时序逻辑信号还是组合逻辑信号。
2025-02-23 19:49:46
582
原创 基于vivado使用三八译码器实现流水灯,了解如何引用现有模块与参数化设计
1.引入现有模块要选择2.例化现有模块即可使用,但在与例化模块输出端相连时,输出信号要为wire类型。
2025-02-02 17:32:18
339
原创 基于vivado通过移位实现流水灯
1.if中多个语句要以begin起始,end结尾2.测试平台与器件端口位宽要对应3.移位的注意事项与处理方法:1)利用if限制范围2)位拼接实现循环移位。
2025-02-02 16:50:54
261
原创 基于vivado实现时序计数器完成LED闪烁(Nexys4 DDR FPGA 开发板)
总是关注时钟上升沿与复位信号下降沿2.初始化时钟信号;无条件不断执行语句。
2025-02-02 12:46:57
874
原创 基于vivado实现三八译码器
描述语言:1> 过程赋值语句,总是关注括号内信号变化;2> always块中被赋值对象必须为寄存器类型;位拼接操作3. $stop;停止仿真( 数据位数)'( 进制类型)(数据)便捷操作:1.按住CTRL,可以进行列操作,方便一次性修改数据2.New Virtual Bus ,改为十进制方便观察波形,但要注意选择顺序。
2025-02-01 22:12:48
683
原创 MUX2实现与vivado设计流程熟悉
1.创建源文件,描述目标元器件;2.创建测试平台文件,例化元器件,将端口对应连接,描述激励;3.连接开发板对应引脚,生成XDC与比特流文件,烧入开发板;描述语言:代码的开始与结束逻辑语言描述的开始测试平台的延时,单位取决于`timescaleinitial begin 与end :激励描述的开始与结束。
2025-02-01 18:27:06
740
原创 SRAM,寄存器,锁存器,触发器的理解(学习笔记)
触发器可以由锁存器以主从结构构成,但不是所有触发器都是锁存器构成;SRAM由锁存器构成;:SRAM>寄存器>锁存器=触发器。寄存器由触发器构成;
2025-02-01 16:24:29
314
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人