![](https://img-blog.csdnimg.cn/c33340f8ee174adba1fe73279fb0a456.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Verilog练习
文章平均质量分 59
包括牛客网和HDLBITS练习以及笔记
刘清帆
北京大学,
深度学习,海洋探测,IC,嵌入式相关
欢迎交流(真的希望大家多多和我交流,你们的反馈也是发现自己问题重要途径~)
我们一起努力!
展开
-
verilog移位寄存器实现序列检测
请编写一个序列检测模块,检测输入信号a是否满足011XXX110序列(长度为9位数据,前三位是011,后三位是110,中间三位不做要求),当信号满足该序列,给出指示信号match。寄存器中存入的数据就表示当前连续9bit的内容,将对应位与需要检测的数据进行比较,如果满足要求则输出检测到序列的标志。,由于本题序列较多,而且默认是重复序列检测,因此考虑到重复性,需要对X进行分类讨论(有可能存在含X构成的重复序列),本题需要检测的序列总共9位,因此将移位寄存器设置为9位,clk触发,rst_n复位的同步电路。原创 2022-09-25 15:36:39 · 1226 阅读 · 0 评论 -
verilog边沿检测
这里需要注意的一点是,rise_mid由于是直接通过门与前序信号相连,因此输入a信号可能会引入x不确定态,会传输到输出。根据波形变换的思想,我们发现只要将~a_buff和a进行与运算,得到的结果就是从a上升沿开始,到下一个clk上升沿的波形。有一个缓慢变化的1bit信号a,编写一个程序检测a信号的上升沿给出指示信号rise,当a信号出现下降沿时给出指示信号down。注:rise,down应为单脉冲信号,在相应边沿出现时的下一个时钟为高,之后恢复到0,一直到再一次出现相应的边沿。testbench 如下。原创 2022-09-23 13:55:19 · 480 阅读 · 0 评论 -
Verilog练习1
只有1 xor 0=1因此当1 xor 0 时不变号,忽略0在xor中的作用。当1遇到奇数个1互相xor时结果为1,而1xor 偶数个1时结果为0,而中间遇到多少个0并不影响结果。由于这题状态转换并不复杂,因此仅仅设立单状态mini_state,而不用状态转换模型。超过2路的考虑用基本两路复用器级联。本题难在1.审题,sel的功能是当sel为0时输出check取反。这题需要注意的是串连的是T触发器而不是D触发器,审题很重要。需要注意的是每次时钟脉冲到来时,判断的是前一瞬间的值。同时不要忘记阻塞赋值的习惯。原创 2022-09-11 17:11:26 · 443 阅读 · 0 评论