
刷题记录
文章平均质量分 90
这个栏目将记录在牛客Verilog题库刷题过程
xlinxdu
佛系分享数字芯片前端设计的日常学习笔记、资料、面经和后续的工作经验…
展开
-
VL11 4位数值比较器电路
用Verilog语言采用门级描述方式,实现此4位数值比较器。介绍了门级电路的设计流程,代码覆盖率达到100%原创 2022-10-16 20:26:19 · 9032 阅读 · 2 评论 -
VL10 使用函数实现数据大小端转换
使用函数实现一个4bit数据大小端转换的功能,实现对两个不同的输入分别转换并输出。原创 2022-10-04 22:08:47 · 2469 阅读 · 1 评论 -
VL9 使用子模块实现三输入数的大小比较
在数字芯片设计中,通常把完成特定功能且相对独立的代码编写成子模块,在需要的时候再在主模块中例化使用,以提高代码的可复用性和设计的层次性,方便后续的修改。请编写一个子模块,将输入两个8bit位宽的变量data_a,data_b,并输出data_a,data_b之中较小的数。并在主模块中例化,实现输出三个8bit输入信号的最小值的功能。原创 2022-10-03 23:30:23 · 2485 阅读 · 5 评论 -
VL8 使用generate_for语句简化代码
使用generate…for语句编写代码,替代该语句,要求不能改变原module的功能,列巨额了generate的几种用法,最终搭建的Testbench代码覆盖率达到100%原创 2022-10-02 13:42:55 · 9604 阅读 · 3 评论 -
VL7 求两个数的差值
根据输入信号a,b的大小关系,求解两个数的差值:输入信号a,b为8bit位宽的无符号数。如果a>b,则输出a-b,如果a≤b,则输出b-a。可以使用if - else if - else实现三个条件的输出。注意:在Testbench中,无符号数随机数产生和有符号数随机数产生的范围不一样。原创 2022-09-27 20:09:42 · 6280 阅读 · 0 评论 -
VL6 多功能数据处理器
根据指示信号select的不同,对输入信号a,b实现不同的运算。输入信号a,b为8bit有符号数,当select信号为0,输出a;当select信号为1,输出b;当select信号为2,输出a+b;当select信号为3,输出a-b,经过测试,覆盖率良好,结果与预期计算值一致原创 2022-09-25 18:52:57 · 5032 阅读 · 2 评论 -
VL5 位拆分与运算
位拆分与运算。该模块采用同步复位且复位信号在低电平有效;可以使用时序逻辑对输入数据d进行锁存到data_buff;输出信号out和validout可使用组合逻辑输出,输出信号根据sel的变化进行变化。原创 2022-09-20 20:21:50 · 3252 阅读 · 1 评论 -
VL4 移位运算与乘法
已知d为一个8位数,在每个时钟周期分别输出该数乘1/3/7/8的结果,并输出一个信号通知此时刻输入的d有效(d给出的信号的上升沿表示写入有效),相关覆盖率达到100%原创 2022-09-14 18:06:33 · 4480 阅读 · 3 评论 -
VL3 奇偶校验
对输入的32位数据进行奇偶校验,根据输入的sel情况(0是奇校验,1是偶校验),进行校验位(check)的输出。(`时钟下降沿变化`),对RTL进行了仿真和覆盖率收集。原创 2022-09-14 08:40:10 · 5537 阅读 · 1 评论 -
VL2 异步复位的串联T触发器
用verilog实现两个串联的异步复位的T触发器的逻辑,附带完整的RTL、TestBench并进行了覆盖率收集。原创 2022-09-12 11:39:55 · 5514 阅读 · 2 评论 -
VL1_四选一多路器(完整RTL、Testbench和覆盖率)
有两种实现方法,一是使用if-else,二是使用case语句。实现的方式有三种,一是使用四输入查找表case方式;二是使用if-else if-else;三是使用两个二输入的查找表方式原创 2022-09-05 17:42:53 · 7915 阅读 · 0 评论