
verilog
zhaomingfan95
一枚小菜鸡,虽然很菜,但是莫名的热爱。
展开
-
HDLbits刷题记录之Mt2015 q4b
题目是给出了波形图,这个和前面真值表那个题目类似,同样可以由真值表的输出为1的地方入手,最后得到逻辑表达式。可以参考我前面的那道题目的。原创 2024-01-25 18:07:35 · 456 阅读 · 0 评论 -
HDLbits刷题记录之Truthtable1
我们可以在网上搜索将真值表化为表达式的方法,也就是先找到输出为1的那几行,然后由这几行写出表达式(利用输入相与,1取原值,0取输入的非值),再将所有的表达式加起来(利用或表达式连起来)。如何化简呢,就是找三个里面有两个相同的,然后另外一个不同的,提出了,提出来的那个元素肯定是1,就化简了。题目分析:给出了真值表,然后让写逻辑表达式。由表可知,第3、4、6、8行的值为1,原创 2024-01-25 17:54:02 · 571 阅读 · 0 评论 -
HDLbits刷题记录之Adder100i
题目:通过实例化 100 个全加器来创建 100 位二进制纹波进位加法器。加法器将两个 100 位数字和一个进位输入相加,产生 100 位和并输出。为了鼓励您实际实例化全加器,还可以输出纹波进位加法器中每个全加器的进位。cout[99] 是最后一个全加器的最终进位,也是您通常看到的进位。分析:像题目要求中那样说的,但是有个问题在于,这个网页的输入模式并不支持两个模块。反正我没有运行成功。下面是没法运行的代码,不过是例化的思想,按理说在别处应该可以运行成功。原创 2024-01-21 00:44:18 · 690 阅读 · 1 评论 -
HDLbits刷题记录之Popcount255
虽然但是,后面的题目咋越刷越简单了,本菜鸡。。。。。。。。。官方代码确实高效太多。原创 2024-01-20 00:10:05 · 452 阅读 · 0 评论 -
HDLbits刷题记录之Vector100r
bits()函数是获取位宽,在循环中利用位宽作为循环的总数,这样可以使得代码更灵活。原创 2024-01-19 23:56:56 · 519 阅读 · 1 评论 -
HDLbits刷题记录之Conditional
想我一个年纪渐长的老码农,竟然在这道题上花费了二十分钟。害,我一开始为啥写了个if else语句,结果把自己给绕进去了,这不是直接比较就可以吗,然后我部分答案是对的,只有少数不对,然后我思前想后,然后解决了问题。害,真是菜鸡本鸡。原创 2023-12-19 17:53:00 · 80 阅读 · 1 评论 -
HDLbits刷题记录之Always nolatches
近日被课程缠身,更新的速度慢了些,回宿舍睡觉了,明天再更。原创 2023-12-09 01:10:38 · 110 阅读 · 0 评论 -
HDLbits刷题记录之Always casez
这里的关键字是casez,重要的事情说三遍casez casez casez!!!,我前面竟然没看见,真的是菜鸡本鸡。。。。。。原创 2023-12-07 00:43:23 · 146 阅读 · 1 评论 -
HDLbits刷题记录之Always case2
菜鸡本鸡。。。。。。原创 2023-12-06 23:56:33 · 132 阅读 · 1 评论 -
HDLbits刷题记录之Always case
我是没有注意到题目中说的除了5个之外,都是为0,然后没有写case的default,然后结果是部分出错,对比了波形图,写了default。然后回头看题目要求,确实是有default。感觉出来了 case还是尽量写上default。因为不写的话,有时候会停留在上面的某一个case满足的条件当中,从而造成错误。菜鸡本鸡。原创 2023-12-06 15:14:47 · 130 阅读 · 1 评论 -
HDLbits刷题记录之Always if2
题目要求是修改一下代码中的错误,就直接安装字面意思,加上else即可。原创 2023-12-06 14:55:14 · 63 阅读 · 1 评论 -
HDLbits刷题记录之Always if
菜鸡本鸡。原创 2023-12-06 14:41:33 · 66 阅读 · 1 评论 -
HDLbits刷题记录之Alwaysblock2
算是基础知识总结吧,第一点:assign后面是用阻塞赋值,赋值等号左侧必须是wire。第二点:always@(*)的赋值,也是用阻塞赋值,等号坐标必须是reg。第三点:always@(posedge clk)中,用非阻塞赋值,左侧变量必须是reg。菜鸡本鸡的废话连篇。。。。。。原创 2023-12-06 14:24:50 · 181 阅读 · 1 评论 -
HDLbits刷题记录之Alwaysblock1
assign与always块的不同,只是在赋值左侧变量的类型上有差异。assign只能用wire类型,always块只能用reg类型。这只是来源于硬件设计语言的遗留问题。always@(*)与assign相当于一模一样?那这是我之前意会错了。菜鸡本鸡没错了。。。。。。原创 2023-12-06 11:48:24 · 68 阅读 · 1 评论 -
HDLbits刷题记录之Module addsub
在写的过程中,犯了一个错误,在开头声明wire的时候,使用了这句“wire sub_16 = {16{sub}};”,然后把这个sub_16与b进行异或,那这样的话,就相当于之后的sub_16的没有更新的,因此当sub=1的时候,结果与真实值不一样。所以更改为现在这个样子,这样每次就能更新这个sub_16。本以为这个程序总能一遍过了吧,没想到路还远着呢。革命尚未成功,同志仍需努力。写着竟然有点喜欢Verilog语言了,虽然菜,但是热爱呀,可能这就是人菜瘾大的乐趣吧。原创 2023-12-06 01:06:58 · 126 阅读 · 1 评论 -
HDLbits刷题记录之Module fadd
利用逻辑表达式可能效率确实高一些,但是我的思想也没错哈哈哈,也能成功其实,而且用{}的话,都不需要中间的临时wire变量。原创 2023-12-05 22:21:53 · 200 阅读 · 1 评论