Verilog
文章平均质量分 79
城外南风起
这个作者很懒,什么都没留下…
展开
-
verilog逻辑移位与算术移位的区别(有仿真)
verilog中,逻辑移位与算术移位的右移符号分别为“>>”和“>>>”,左移同理。两者的区别在于:逻辑移位不考虑符号位,左移和右移都只补零;算术移位考虑符号位,左移补零,右移补符号位。仿真代码:module test(); wire [31:0] din,dout1,dout2,dout3; assign din = 32'hFF00ABC4; assign dout1 = (din<<2)>>4; assign d原创 2021-05-07 22:36:25 · 2013 阅读 · 0 评论 -
testbench编写流程的简单举例
本文首发于公众号【木叶芯】,版权所有,禁止转载。如需转载,请在评论区留言或私信申请,经同意后可转载,否则属于侵权行为。作者昵称:城外南风起原文链接:testbench编写流程的简单举例————————————————目录顶层结构生成clk_tb生成resetb初始化变量DUT例化写任务读任务测试实现仿真结果参考文献顶层结构将模块device_regs_withfunction作为DUT编写一个简单的testbench。该模块的功能是对一组寄存器进行读写操作。下图为测试平台的顶层结构。任务reg原创 2021-05-04 22:37:43 · 1273 阅读 · 0 评论 -
Reset synchronizer实现同步复位异步释放
此博客为个人博客,不涉及商业用途,仅提供学习参考,内容均来自个人原创以及互联网转载和摘录。此博客上带有原创标识的文章、图片、文件等,未经本人允许,不得用于商业用途以及传统媒体。本文首发于CSDN,版权所有,禁止转载。如需转载,请在评论区留言或私信申请,经同意后可转载,否则属于侵权行为。原博客链接:https://blog.csdn.net/qq_38305370原博主昵称:城外南风起————————————————Reset synchronizer可以实现异步复位同步释放。这种复位电路可以保原创 2021-03-28 16:22:50 · 1369 阅读 · 0 评论 -
Vivado【已解决】[Synth 8-462] no clock signal specified in event control
此博客为个人博客,不涉及商业用途,仅提供学习参考,内容均来自个人原创以及互联网转载和摘录。此博客上带有原创标识的文章、图片、文件等,未经本人允许,不得用于商业用途以及传统媒体。本文首发于CSDN,版权所有,禁止转载。如需转载,请在评论区留言或私信申请,经同意后可转载,否则属于侵权行为。————————————————写了一个异步fifo的工程,在Vivado上利用testbench仿真通过以后,想要查看RTL电路,结果出现了以下错误:[Synth 8-462] no clock signal s原创 2021-03-27 17:10:21 · 3969 阅读 · 0 评论 -
三步教你实现Sublime与Vivado编码兼容
此博客为个人博客,不涉及商业用途,仅提供学习参考,内容均来自个人原创以及互联网转载和摘录。此博客上带有原创标识的文章、图片、文件等,未经本人允许,不得用于商业用途以及传统媒体。网络媒体或个人转载请注明出处和链接,否则属于侵权行为。————————————————1.在sublime中安装package:ConvertToUTF8;2.新建文件后,按ctrl+shift+p打开命令面板,输入utf点击ConvertToUTF8使用;3.选择Chinese Simplified(GB2312)作为文原创 2021-03-27 16:28:24 · 774 阅读 · 0 评论 -
verilog实现串行通讯协议(serial communications protocols)
目录Serial receiverSerial receiver原题目:In many (older) serial communications protocols, each data byte is sent along with a start bit and a stop bit, to help the receiver delimit bytes from the stream of bits. One common scheme is to use one start bit (0),原创 2021-03-22 14:11:21 · 1013 阅读 · 0 评论 -
verilog实现格雷码(Gray Code)与二进制编码转换
此博客为个人博客,不涉及商业用途,仅提供学习参考,内容均来自个人原创以及互联网转载和摘录。此博客上带有原创标识的文章、图片、文件等,未经本人允许,不得用于商业用途以及传统媒体。本文首发于CSDN,版权所有,禁止转载。如需转载,请在评论区留言或私信申请,经同意后可转载,否则属于侵权行为。原博客链接:https://blog.csdn.net/qq_38305370原博主昵称:城外南风起————————————————目录二进制码转格雷码格雷码转二进制码testbench仿真波形参考文献格雷码(原创 2021-03-21 21:36:27 · 3761 阅读 · 2 评论 -
verilog实现鼠标协议PS/2 mouse protocol
原题目:The PS/2 mouse protocol sends messages that are three bytes long. However, within a continuous byte stream, it’s not obvious where messages start and end. The only indication is that the first byte of each three byte message always has bit[3]=1 (but b原创 2021-03-15 21:22:32 · 1102 阅读 · 0 评论 -
verilog实现Lemmings(疯狂小旅鼠)游戏
此博客为个人博客,不涉及商业用途,仅提供学习参考,内容均来自个人原创以及互联网转载和摘录。此博客上带有原创标识的文章、图片、文件等,未经本人允许,不得用于商业用途以及传统媒体。本文首发于CSDN,其他网站均为转载。网络媒体或个人转载请注明出处和链接,否则属于侵权行为。原博客链接:https://blog.csdn.net/qq_38305370原博主昵称:城外南风起————————————————目录Lemmings1Lemmings2Lemmings3Lemmings1原题目(波形demo原创 2021-03-01 15:43:22 · 886 阅读 · 0 评论 -
verilog实现简单状态机:输出保持时的latch陷阱
此博客为个人博客,不涉及商业用途,仅提供学习参考,内容均来自个人原创以及互联网转载和摘录。此博客上带有原创标识的文章、图片、文件等,未经本人允许,不得用于商业用途以及传统媒体。网络媒体或个人转载请注明出处和链接,否则属于侵权行为。————————————————这是一个简单的摩尔状态机(Moore state machine),有两个状态,一个输入,一个输出。异步复位,复位状态为B,当输入in置高时,保持当前状态。我第一次的实现代码:module top_module( input cl原创 2021-01-18 16:40:50 · 1193 阅读 · 1 评论 -
verilog实现Conwaylife二维元胞自动机(cellular automaton)
此博客为个人博客,不涉及商业用途,仅提供学习参考,内容均来自个人原创以及互联网转载和摘录。此博客上带有原创标识的文章、图片、文件等,未经本人允许,不得用于商业用途以及传统媒体。网络媒体或个人转载请注明出处和链接,否则属于侵权行为。————————————————最近在做HDLBits,做到Conwaylife,觉得还挺有意思的,记录一下。Conwaylife是要用verilog实现一种二维元胞自动机(cellular automaton)。我的实现步骤:1.由于矩阵需要toroid,对初始数据进原创 2021-01-06 16:31:18 · 1096 阅读 · 0 评论 -
verilog实现双边沿触发器Dual-edge triggered flip-flop
此博客为个人博客,不涉及商业用途,仅提供学习参考,内容均来自个人原创以及互联网转载和摘录。此博客上带有原创标识的文章、图片、文件等,未经本人允许,不得用于商业用途以及传统媒体。网络媒体或个人转载请注明出处和链接,否则属于侵权行为。————————————————最近在做HDLBits,做到双边沿触发器,觉得还挺有意思的,记录一下。verilog不支持同时触发上边沿和下边沿,因为FPGA中只有单边沿触发器,没有双边沿触发器这种器件。所以,posedge clk or negedge clk是无法综合原创 2020-12-18 21:16:03 · 5743 阅读 · 1 评论 -
【verilog 语法】always 和 always@(*) 的区别
本文转自寒泉Hq,原文链接:https://blog.csdn.net/sinat_42483341/article/details/89031964,转载时请注明出处及相应链接。————————————————always@后面内容是敏感变量,always@(*)里面的敏感变量为*,意思是说敏感变量由综合器根据always里面的输入变量自动添加,不用自己考虑。 always 如果没有@,那就是不会满足特定条件才执行,而是执行完一次后立马执行下一次,一直重复执行 比如,testbench里面产生5转载 2020-11-20 16:31:19 · 949 阅读 · 0 评论 -
阻塞与非阻塞赋值的区别,看完就理解了
本文转自romme426,原文链接:https://blog.csdn.net/fzr_en/article/details/89552323,转载时请注明出处及相应链接。———————————————— 阻塞赋值:前面语句执行完,才可执行下一条语句;即:前面语句的执行(b=a)阻塞了后面语句的执行(c=b)。即:always块内,2条语句顺序执行。 always @(posedge i_clk) begin转载 2020-11-18 20:49:33 · 1587 阅读 · 1 评论