![](https://img-blog.csdnimg.cn/2021042416260281.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Verilog
文章平均质量分 77
语法知识总结,代码分享
徐晓康的博客
本硕毕业于南京航空航天大学电气工程专业,现从事控制硬件相关工作,健康工作,热爱生活。
展开
-
Verilog功能模块——读写位宽不同的同步FIFO
前面的博文已经讲了异步FIFO、读写位宽不同的异步FIFO与同步FIFO,本文使用纯Verilog实现了读写位宽不同的同步FIFO,并仿真验证了设计的正确性。原创 2023-10-24 16:32:05 · 1129 阅读 · 0 评论 -
Verilog功能模块——读写位宽不同的异步FIFO
前面的博文已经讲了异步FIFO和同步FIFO,但并没有实现FIFO的读写位宽转换功能,此功能是FIFO的主要功能之一,应用十分广泛,因此,在前面两个模块的基础上,本文使用纯Verilog实现了读写位宽不同的FIFO,并仿真验证了设计的正确性。原创 2023-10-24 11:18:21 · 2199 阅读 · 4 评论 -
Verilog功能模块——同步FIFO
实现了纯Verilog的同步FIFO,包含FWFT功能与almost信号功能原创 2023-10-12 22:23:38 · 716 阅读 · 1 评论 -
Verilog功能模块——异步FIFO
Verilog自编实现异步FIFO,并实现了FWFT、Almost_full与Almost_empty功能原创 2023-10-12 11:24:39 · 918 阅读 · 2 评论 -
Verilog功能模块——标准FIFO转FWFT FIFO
我使用FWFT FIFO作为读端口的接口,但是在使用安路的EG4系列FPGA时,开发工具TD(TangDanasty)只提供了标准FIFO,没有FWFT FIFO选项。为了解决这个问题,我设计了一个名为standardFIFO2FWFTFIFO.v的模块,可以将标准FIFO的读端口转换为FWFT FIFO的读端口,以确保模块逻辑正常工作。原创 2023-09-21 21:21:59 · 1056 阅读 · 0 评论 -
Verilog功能模块——Uart收发
本文分享了一种通用的Uart收发模块,可实现Uart协议所支持的任意波特率,任意位宽数据(5~8),任意校验位(无校验、奇校验、偶校验、1校验、0校验),任意停止位(1、1.5、2)的数据传输。此模块需要搭配FIFO使用,以消除发送端和接收端波特率不一致导致的累计误差。此模块经过多次测试与实际使用验证,可实现连续10万+数据无间隔连续发送与接收无错误。原创 2022-11-09 17:28:44 · 2768 阅读 · 5 评论 -
避免重复造轮子,我们去哪找FPGA IP或是HDL功能模块?
FPGA开源IP网站原创 2022-02-27 16:30:13 · 8180 阅读 · 0 评论 -
Verilog功能模块 —— 按键消抖
SystemVerilog编写的按键消抖模块, 能实现自动检测按键是否按下的功能, 不用关心初始电平。原创 2021-12-21 22:39:06 · 11750 阅读 · 0 评论 -
Verilog功能模块——AXI4-Lite协议主机-单次写-使用FIFO
模块功能:AXI4-Lite协议主机,从FWFT FIFO(首字直通FIFO)中读取地址和数据,实现将数据写入到设定的地址中的操作。原创 2021-12-11 14:14:07 · 2831 阅读 · 1 评论 -
Verilog编程陷阱——数组的声明和使用
Verilog数组声明和使用时很可能会遭遇的陷阱原创 2021-12-10 21:39:31 · 19150 阅读 · 3 评论 -
Verilog自编函数clog2替代SV中的系统函数$clog2
先放函数,已验证和$clog2输出一致,注意需满足输入n ≥ 1。// 返回以2为底的n的对数function integer clog2 (input integer n); n = n - 1; for (clog2 = 0; n > 1; clog2 = clog2 + 1) n = n >> 1;endfunction一.为什么需要以2为底n的对数的函数在Verilog编写代码过程中,经常需要根据一个常量来定义一个变量的位宽,例如,要编写一个计数器,计.原创 2021-11-07 22:22:22 · 12682 阅读 · 10 评论 -
Verilog功能模块——取滑动平均值(使用FIFO)
模块功能:对输入信号取滑动平均值。滑动平均值:又名移动平均值,在简单平均值的基础上,通过顺序逐期增加新数据、减去旧数据求算移动平均值,借以消除偶然变动因素。参考百度百科:[滑动平均法](https://baike.baidu.com/item/%E6%BB%91%E5%8A%A8%E5%B9%B3%E5%9D%87%E6%B3%95/22657430?fr=aladdin)应用场景:- 对平均值会变化,但变化速度较慢的信号求平均值- 数字滤波中去除信号的直流偏置原创 2021-05-21 00:19:05 · 5966 阅读 · 6 评论 -
Verilog功能模块——AXI4-Lite协议主机-连续区间写-使用FIFO
模块功能:AXI4-Lite协议主机,从FWFT FIFO(首字直通FIFO)中不断读取数据,写入到一段地址中。应用场景:DDR读写,BRAM读写等AXI接口的存储器件读写。原创 2021-05-19 00:10:32 · 1285 阅读 · 0 评论 -
Verilog功能模块——符号位扩展
模块功能:符号位扩展应用场景:DDR等存储器通常是32/64位的,数据需要转为合适的位数再存入。原创 2021-05-14 23:47:55 · 7807 阅读 · 0 评论 -
Verilog功能模块——取滑动平均值(使用寄存器组)
模块功能:对输入信号取滑动平均值。滑动平均值:又名移动平均值,在简单平均值的基础上,通过顺序逐期增加新数据、减去旧数据求算移动平均值,借以消除偶然变动因素。参考百度百科:[滑动平均法](https://baike.baidu.com/item/%E6%BB%91%E5%8A%A8%E5%B9%B3%E5%9D%87%E6%B3%95/22657430?fr=aladdin)应用场景:- 对平均值会变化,但变化速度较慢的信号求平均值- 数字滤波中去除信号的直流偏置原创 2021-05-06 21:29:32 · 6046 阅读 · 29 评论 -
Verilog功能模块——降采样
模块功能:对输入信号进行降采样。应用场景:- 输入数据量太大,后级难以处理,需要减小信号量而不丢失关键信息原创 2021-05-05 16:01:25 · 3145 阅读 · 1 评论 -
Verilog功能模块——时钟分频
模块功能:对输入时钟进行任意倍数分频。应用场景:- 需要对时钟进行分频,而PLL不能满足要求或者使用起来不方便- 需要固定倍数关系的时钟原创 2021-04-30 16:58:47 · 12885 阅读 · 1 评论 -
Verilog功能模块——串行数据转并行数据
模块功能:接收串行数据,转为并行数据。应用场景:在SPI,Uart等串行协议接收侧均有应用。原创 2021-04-24 16:28:57 · 6109 阅读 · 6 评论