- 博客(6)
- 问答 (1)
- 收藏
- 关注
原创 Verilog实现常见电路(三)
目录:一、边沿检测二、串并转换三、分频器四、异步复位同步释放五、序列信号产生器六、序列检测器七、双端口RAM八、同步FIFO九、异步FIFO常见电路系列连接:CSDNhttps://mp.csdn.net/mp_blog/creation/editor/122940873CSDNhttps://mp.csdn.net/mp_blog/creation/editor/122991113七、双端口RAMmodule dualram#( parameter
2022-03-01 12:03:07 659
原创 Verilog实现常见电路(二)
常见电路系列连接https://blog.csdn.net/weixin_40634481/article/details/122940873?spm=1001.2014.3001.5501https://blog.csdn.net/weixin_40634481/article/details/122940873?spm=1001.2014.3001.5501目录:一、边沿检测二、串并转换三、分频器四、异步复位同步释放五、序列信号产生器六、序列检测器四、异步复位同步
2022-02-17 20:17:22 455
原创 Verilog实现常见电路(一)
计划将常见电路的verilog实现进行总结,如有不对的地方,欢迎大家批评指正,先放目录一、边沿检测二、串并转换三、分频器一、边沿检测首先对数据打两拍,然后通过两拍数据之间的逻辑关系来判断出是上升沿还是下降沿module edge_detect( input clk, input rst_n, input data, output pos_edge, output neg_edge);reg data_d0,data_d1;alw
2022-02-15 11:29:39 1903 1
原创 Verilog中阻塞赋值和非阻塞赋值的区别?
阻塞赋值“=”对应组合逻辑电路赋值(无存储功能,立即赋值),并且会阻塞后面的赋值操作,非阻塞赋值“<=”对应时序逻辑电路赋值(有存储功能),所有非阻塞赋值操作在同一时刻进行赋值。下面分别通过vivado综合不同情况赋值的代码。第一种:在时序逻辑电路中使用阻塞赋值,通过综合后的电路可以看出非阻塞赋值综合出来的电路时立即执行赋值操作,和组合逻辑电路特性一致,无缓存功能,out_o直接被优化掉了。always@(posedge clk or negedge rst_n) if(~r
2022-02-12 11:22:38 2246
原创 verilog实现分频器总结
一、偶数分频偶数分频可以通过计数器或者D触发器级联方式实现,使用计数器进行N倍(偶数)分频时,当计数器计数到(N-1)/2时进行反转一次。always@(posedge clk or negedge rst_n) if(~rst_n) clk_cnt<=4'd0; else if(clk_cnt==(N/2-1)) clk_cnt<=4'd0; else clk_cnt<=clk_cnt+1'b1;a..
2022-02-12 11:20:41 6349 2
原创 一定要避免latch
在做项目的项目的时候遇到了一个很有意思的问题,功能仿真没有问题,可是在FPGA上面上板调试就是不对,最后通过检查综合后的电路发现有一处生成了latch,在实际电路中latch容易产生毛刺,导致下一级电路可能出现错误状态,如果书写不规范,仿真是发现不了这个问题的,平时书上经常看到一定要避免latch这样的字眼,自己感觉懂了,直到这次真的遇到问题时,调试好久才发现,所以就把不规范的代码都在vivado上面跑了一下综合,给自己长长记性。(由于笔者比较菜,有不对的地方,欢迎大家批评指正)
2022-01-12 15:48:12 714
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人