
HDLBits学习记录
文章平均质量分 95
银河旅客_
清风明月我
展开
-
【HDLBits】Circuits—Combinational Logic合集(包含答案推导过程)
第一步:从真值表内找输出端为“1”的各行,把每行的输入变量写成**乘积(&)**形式;遇到“0”的输入变量上加非号。卡诺图的相关知识可以去这里看:https://zhuanlan.zhihu.com/p/158535749。实现8位有符号数据的二进制补码加法,并通过检测符号位变化来判断是否发生溢出。与上题不同的是,该卡诺图中出现d,其值可以有自己随意设定来方便化简。第二步:把各乘积项相加( | )原创 2025-03-22 21:08:48 · 703 阅读 · 0 评论 -
【HDLBits】More Verilog Features合集(Conditional,for loop)
定义genvar,作为generate种的循环变量。generate语句中定义的for语句,必须要有begin,为后续增加标签做准备。begin必须要有名称,也就是必须要有标签,因为标签会作为generate循环的实例名称。i < 100;原创 2025-03-20 16:09:32 · 657 阅读 · 0 评论 -
【HDLBits】Procedures合集
由于数字电路是由用导线连接的逻辑门组成的,因此任何电路都可以表示为模块和赋值语句的某种组合。然而,有时这不是最方便的方式来描述电路。过程(以always块为例)为描述电路提供了另一种语法。对于综合硬件,两种类型的 always 块是相关的:Combinational:始终为 @( * )Clocked:总是 @(posedge clk)例如,赋值和组合总是块描述相同的电路。两者都创建了相同的组合逻辑。每当任何输入(右侧)改变值时,两者都将重新计算输出。原创 2025-03-18 21:00:42 · 700 阅读 · 0 评论 -
【HDLBits】Module合集(练习均用两种方法解决)
因此,ripple carry adder随着位宽的增加,延迟逐渐增大。构成的,每个全加器负责计算两个二进制位的和,并考虑进位输入和进位输出。根据它的功能,可以列出它的真值表。CI:前一次运算后是否有进位,有进位则为1,无进位则为0.(如果忘记全加器的知识,题干中间有我对这部分内容的补充)即使端口顺序改变,通过名字连接信号和端口也是正确的。在实例化一个模块时,端口根据模块位置的声明从左到右。本质上是在上一个练习的基础上加一个全加器模块。语法:.端口名(信号名)CO:输出本次运算的进位。原创 2025-03-17 13:31:06 · 867 阅读 · 0 评论 -
【HDLBits】Vectors合集
逻辑运算符具有短路特性,即如果前面的表达式已经确定了结果,后面的表达式将不会被执行。例如,在 False && (b = 30) 中,由于 False 已经确定了结果,b = 30 不会被执行。位运算没有短路特性,即使前面的表达式已经确定了结果,后面的表达式仍然会被执行。:宽度为1位的变量,变量声明中没有指定位宽,默认标量(1位)用·default_nettype none 禁用隐式网络。在代码中没有明确声明但被使用的信号,在设计中会导致错误。:向量的宽度大于1位(如net型和variable型)原创 2025-03-16 13:21:37 · 759 阅读 · 0 评论