自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 HDLBits 刷题(Verification: Writing Testbenches)

编写一个测试平台,创建一个模块dut实例(具有任何实例名称),并创建一个时钟信号来驱动模块clk输入。时钟的周期10ps。时钟应初始化为零,其第一次转换为0到1.编写一个实例化一个tff并重置T触发器然后将其切换到“1”状态的测试台。编写一个测试平台,实例化模块q7 并生成这些输入信号,如上图所示。

2023-02-13 22:25:45 564

原创 HDL Bits刷题(Verification: Reading Simulation)

它一个指示10种情况的一种是否被识别(有效),如果是,则检测到哪个键。阅读仿真波形以确定电路的作用,然后实现它。阅读仿真波形以确定电路的作用,然后实现它。阅读仿真波形以确定电路的作用,然后实现它。阅读仿真波形以确定电路的作用,然后实现它。阅读仿真波形以确定电路的作用,然后实现它。阅读仿真波形以确定电路的作用,然后实现它。阅读仿真波形以确定电路的作用,然后实现它。阅读仿真波形以确定电路的作用,然后实现它。阅读仿真波形以确定电路的作用,然后实现它。阅读仿真波形确定电路的作用,然后实现它。

2023-02-04 22:17:25 309

原创 HDLBits刷题(Building Larger Circuits)

之后,状态机断言其计数输出,以指示它正在计数。这应该等于1000个周期的延迟,然后1000个周期的延迟-1,以此类推,1000个周期的延迟是0。例如,一旦读取了1101和delay[3:0],电路就不再查看输入的数据,直到在所有其他事情都完成后才恢复搜索。此时,状态机必须断言done以通知用户计时器已超时,并等待直到输入ack为1,然后重置以查找开始序列(1101)的下一个出现。此时,电路必须断言done来通知用户计时器已经超时,并等待直到输入ack为1,然后重置以寻找开始序列(1101)的下一个出现。

2023-01-29 17:17:03 333

原创 8线-3线优先编码器

为了防止多条线信号同时有效,规定只对序号最高的有效信号线进行编码,相当于该线的优先级别最高,称为优先编码器。

2023-01-25 23:14:32 8987

原创 Verilog HDL系统任务说明语句task

用两种不同的方法设计一个功能相同的模块,完成一个四个8位2进制输入数据冒泡排序。一种方法是组合逻辑实现,另一种是时钟触发任务实现,每个时钟周期完成一次数据交换。如果传给任务的变量和任务完成后接受任务的变量已定义,就可以用一条语句启动任务,任务完成以后控制传回启动的过程。1.2任务的调用及变量的传递。

2022-12-16 20:41:13 1482

原创 简单的状态机设计——序列检测器

对串行输入的数据进行检测,检测“10010”。设X为数字码流输入,Z为检出标记输出,高电平表示“发现指定序列”,低电平表示“没有发现指定序列”。考虑码流为“1100100100001001001…对串行数据进行检测,检测到连续4个1 、5个1、6个1Z输出为高电平,连续7个或者7个以以上报错,即ERRO输出高电平。序列检测器是时序数字电路中非常常见的设计之一。它的逻辑功能是将一个指定的序列从数字码流中识别出来。

2022-12-15 19:38:07 5593

原创 HDLBits刷题(Q8:Design a Mealy FSM ~Q2b:Another FSM)

3.2.5.20 Design a Mealy FSM问题陈述:Verilog代码:3.2.5.21 Q5a:Serial two’s complementer (Moore FSM)问题陈述:Verilog代码:3.2.5.22 Serial two’s complementer (Mealy FSM)问题陈述:Verilog代码:3.2.5.23 FSM问题陈述:Verilog代码:3.2.5.24 Q3b:FSM问题陈述:Verilog代码:3.2.5.25 Q3c:FSM log

2022-12-03 14:14:43 355

原创 HDLBits刷题(PS/2 packet parser~Sequence recognition)

现在,您有了一个状态机,它将识别PS/2字节流中的3字节消息,添加一个数据路径,它也将在接收到数据包时输出24位(3字节)消息(out_bytes[23:16]是第一个字节,out_bytes[15:8]是第二个字节,等等)。然而,在连续的字节流中,消息的开始和结束位置并不明显。唯一的指示是,每个三字节消息的第一个字节总是bit[3]=1(但其他两个字节的bit[3]可能是1或0,这取决于数据)。预期的用途是,应该给它输入位流,并在适当的时间重置,以便它计算每个字节中1位的数量。

2022-11-30 14:00:41 397

原创 HDLBits刷题(Design a Moore FSM~One-hot FSM)

除了行走和跌倒,旅鼠有时还会被告知做一些有用的事情,比如挖(当dig=1时,旅鼠开始挖)。如果旅鼠正在地面上行走(ground=1且没有下落),它可以挖洞,并会继续挖掘直到另一边(ground=0)。),然后当它再次着地时,继续朝原来的方向走。特别地,如果旅鼠下落超过20个时钟周期撞到地面,它会飞溅并停止行走、下落或挖掘(所有4个输出都变成0),直到永远(或直到FSM重置)。下落时被碰撞并不影响行走方向,在地面消失(但尚未下落)的同一周期中被碰撞,或在下落时地面再次出现,也不影响行走方向。

2022-11-18 17:37:15 316

原创 HDL Bits刷题(Simple FSM 1(asynchronous reset)~Simple FSM 3(Synchronous reset))

下面是一输入一输出四个状态的摩尔状态机的状态转换表。下面是一输入一输出四个状态的摩尔状态机的状态转换表。使用以下 状态编码:A=2’b00,B=2’b01,C=2’b10,D=2’b11。下面是一输入一输出四个状态的摩尔状态机的状态转换表。下面是一输入一输出四个状态的摩尔状态机的状态转换表。这是一个摩尔状态机,有两个状态,一个输入,一个输出。这是一个摩尔状态机,有两个状态,一个输入,一个输出。这是一个摩尔状态机,有两个状态,一个输入,一个输出。这是一个摩尔状态机,有两个状态,一个输入,一个输出。

2022-11-14 21:03:44 319

原创 HDLBits刷题Day20(More Circuits)

在这个电路中,创建一个512单元系统(q[511: 0]),每个时钟周期前进一个时间步。假设边界(q[-1]和q[512])都为零(关闭)。在这个电路中,创建一个512单元系统(q[511:0]),每个时钟周期前进一个时间步。假设边界(q[-1]和q[512])都为零(关闭)。“游戏”是在二维空间上进行的,其中每个单元格不是1(活着)就是0(死去)。在每个时间步,每个单元的下一个状态是单元的两个当前邻居的。(“规则110”这个名字来自于阅读“下一个状态”列:01101110是十进制110。

2022-11-13 20:04:57 875

原创 HDLBits刷题 Day19(Shift Register)

Q[7] 的触发器输出。电路的行为应该如下:当 ABC 为 000 时,Z=Q[0],当 ABC 为 001 时,Z=Q[1],依此类推。伽罗瓦 LFSR 是一种特殊的安排,其中带有“抽头”的位位置与输出位进行异或运算以产生其下一个值,而没有抽头移位的位位置。在这个问题中,您将为 8x1 存储器设计一个电路,其中写入存储器是通过移入位来完成的,而读取是“随机访问”,就像在典型的 RAM 中一样。考虑算术右移的另一种方法是,它假设被移动的数字是有符号的并保留符号,因此算术右移将带符号的数字除以 2 的幂。

2022-09-28 10:52:36 316

原创 HDLbits 刷题Day18(Counters)

从 1000 Hz 时钟导出一个称为OneHertz的 1 Hz 信号,该信号可用于驱动一组小时/分钟/秒计数器的启用信号,以创建数字挂钟。还要从您使用的每个 BCD 计数器输出使能信号(c_enable[0] 为最快的计数器,c_enable[2] 为最慢的)。您的计数器由快速运行的clk计时,只要您的时钟应该增加(即每秒一次),就会 在ena上显示一个脉冲。复位输入是同步的,应将计数器复位为 0。, **c_d[3:0]**控制信号进入提供的 4 位计数器,因此可以验证正确的操作。

2022-09-27 12:08:18 272

原创 HDLbits刷题Day17(Create circuit from truth table~ Dual-edge triggered flip-flop)

对于 8 位向量中的每一位,检测输入信号何时从一个时钟周期的 0 变为下一个时钟周期的 1(类似于上升沿检测)。对于 8 位向量中的每一位,检测输入信号何时从一个时钟周期的 0 变为下一个时钟周期的 1(类似于上升沿检测)。对于 32 位向量中的每一位,在输入信号从一个时钟周期的 1 变为下一个时钟周期的 0 时进行捕捉。每个输出位的行为类似于 SR 触发器:输出位应在 1 到 0 转换发生后的周期设置(为 1)。在下面的示例波形中,为清楚起见,reset、in[1] 和 out[1] 再次分别显示。

2022-09-13 21:59:40 365

原创 HDLBits刷题Day16(D flip-flop~DFFs and gates)

假设您要为此电路实现分层 Verilog 代码,使用其中具有触发器和多路复用器的子模块的三个实例化。当使用时钟控制的always 块时,逻辑合成器会创建 D 触发器AD触发器是“组合逻辑块后接触发器”的最简单形式,其中组合逻辑部分只是一条线。创建 8 个具有高电平有效同步复位的 D 触发器。为该电路的一个阶段编写一个名为 top_module 的 Verilog 模块,包括触发器和多路复用器。所有 DFF 都应由clk的上升沿触发。AD触发器是一种存储位并定期更新的电路,在时钟信号的(通常)上升沿。...

2022-08-25 22:39:55 838

原创 HDLBits刷题Day15(Karnaugh Map to Circuit)

具有四个输入(a、b、c、d)的单输出数字系统在输入上出现 2、7 或 15 时生成逻辑 1,当输入上出现 0、1、4、5、6 、9、10、13 或 14时生成逻辑 0 出现。例如,7 对应于 a、b、c、d 分别设置为 0、1、1、1。(存在仅使用 2 对 1 多路复用器的要求,因为原始考试问题还想测试使用 K-map 的逻辑函数简化以及如何仅使用多路复用器来合成逻辑函数。对于下面的卡诺图,给出使用一个 4 对 1 多路复用器和尽可能多的 2 对 1 多路复用器的电路实现,但使用尽可能少。

2022-08-22 23:12:39 337

原创 HDLBits刷题Day14

加法器将两个 3 位数字和一个进位相加以产生一个 3 位和并进位。您的加法器应该将两个 4 位 BCD 数字(打包成 16 位向量)和一个进位相加,以产生一个 4 位和并执行。假设您有两个 8 位 2 的补码,a[7:0] 和 b[7:0]。为您提供了一个名为bcd_fadd的 BCD(二进制编码的十进制)一位加法器,它将两个 BCD 数字和进位相加,并产生一个和和进位。~a[7]&& ~b[7] && s[7]:验证正正相加的符号溢出;a[7]&& b[7] &&~s[7]:验证负负相加的符号溢出。...

2022-08-13 17:34:40 423

原创 HDLBits刷题Day13

创建一个 4 位宽、256 对 1 的多路复用器。sel=0 应该选择[3:0]中的位, sel=1 选择[7:4]中的位, sel=2 选择[11:8]中的位等。创建一个 1 位宽、256 对 1 的多路复用器。sel=0 应该选择in[0], sel=1 选择[1]中的位, sel=2 选择[2]中的位,等等。sel=0 选择 a,sel=1 选择 b,等等。对于未使用的情况(sel=9 到 15),将所有输出位设置为“1”。当 sel=1 时,选择 b。当 sel=1 时,选择 b。...

2022-08-09 22:43:15 254

原创 HDLBits刷题Day12

out_both:此输出向量的每个位都应指示相应的输入位及其左侧的邻居(较高的索引)是否都是“1”。例如,out_both[2]应该表明in[2]和in[3]是否都为1。例如,out_diff[98]应该指示in[98]是否与in[99]不同。例如,out_diff[2]应该指示in[2]是否与in[3]不同。对于这部分,将向量视为环绕,因此in[3]左侧的邻居是in[0]。例如,out_any[2]应该指示in[2]或in[1]是否为1。例如,out_any[2]应该指示in[2]或in[1]是否为。..

2022-08-03 22:54:38 321 1

原创 HDLBits刷题Day11

3.1.1.8 Two-bit equality问题陈述:Verilog代码:3.1.1.9 Simple circuit A问题陈述:Verilog代码:这里是先让我们实例化模块A,再在顶层模块调用。3.1.1.10Simple circuit B问题陈述:Verilog代码:由图可知z为高电平时,x、y同为高电平或低电平,所以z输出为x、y的同或。3.1.1.11 Combine circuit A and B问题陈述:Verilog代码:...

2022-07-30 17:10:04 211

原创 HDLBits刷题Day10

创建一个与7420芯片功能相同的模块。它有8个输入和2个输出。构建具有两个输入a和b的组合电路。创建一个实现上述真值表的组合电路。

2022-07-27 15:41:31 187

原创 HDLBits刷题Day9

加法器将两个100位数字和一个进位相加,产生一个100位和并执行。创建一个电路,计算8位字节的奇偶校验位(这将向字节添加第9位)。实例化100个bcd_fadd副本以创建一个100位BCD波纹进位加法器。您的加法器应将两个100位BCD数字(打包成400位向量)和一个进位相加,以产生一个100位和并执行。out_and100输入与门的输出。为您提供了一个名为bcd_fadd的BCD一位加法器,该加法器将两个BCD数字和进位相加,并产生一个和和进位。...

2022-07-26 11:32:36 300

原创 HDLBits刷题Day8

假设您正在构建一个电路来处理来自游戏的PS/2键盘的扫描码。鉴于收到的扫描码的最后两个字节,您需要指出是否已按下键盘上的箭头键之一。这涉及到一个相当简单的映射,它可以实现为具有四个案例的案例语句(或if-elseif)。否则,选择.做同样的事情两次,一次使用分配语句,一次使用过程if语句。为了避免verilog代码出综合后的电路中的生成锁存器,如果用到if语句,最好写上else项;对于这个问题,如果没有一个输入位为高(即输入为零),则输出零。给定一个8位向量,输出应报告向量中的第一位1。...

2022-07-24 22:38:01 275

原创 HDLBits刷题Day7

但是always语句后跟着的过程块是否执行,则要看它的触发条件是否满足,如满足则运行过程块一次;请注意,时钟始终块产生的电路与其他两个不同有一个触发器,因此输出被延迟。end"的多行赋语句,先执行当前行的赋值语句,再执行下一行的赋值语句。2)在描述时序逻辑的always块中用非阻塞赋值,则综合成时序逻辑的电路结构。1)在描述组合逻辑的always块中用阻塞赋值,则综合成组合逻辑的电路结构。1)多个信号或者事件中任意一个发生的变化都能触发语句或语句块执行。end"的多行赋语句,在同一时间内同时赋值。...

2022-07-23 17:40:52 243

原创 HDLBits刷题Day6

一个add16模块计算加法结果的低16位,而第二个add16模块在接收到第一个加法器的进位后计算结果的高16位。纹波进位加法器的一个缺点是加法器计算进位的延迟(从进位开始,在最坏的情况下)相当慢,并且第二级加法器在第一级加法器完成之前无法开始计算其进位.这使加法器变慢。一个add16模块计算加法结果的低16位,而第二个add16模块计算结果的高16位。在本练习中,您将获得与上add16一个练习相同的模块,该模块将两个16位数字与进位相加,并产生一个进位和16位和。...

2022-07-20 23:08:48 829

原创 HDLBits刷题Day5

这将实例化一个类型的模块mod_a并为其提供实例名称“instance1”,然后将信号wa(在新模块之外)连接到新模块的第一个端口(in1)、wb第二个端口(in2)和wc第三个端口(out)。上面的行实例化了一个mod_a名为“instance2”类型的模块,然后将信号wa(模块外部)连接到名为in1的端口、名为的wb端口和名为in2的端口。在本练习中,创建一个module实例mod_a,然后将模块的三个引脚(in1、in2和out)连接到顶层模块的三个端口(电线a、b和out)。...

2022-07-18 23:36:51 522

原创 HDLBits刷题Day4

给定几个输入向量,将它们连接在一起,然后将它们分成几个输出向量。有六个5位输入向量a、b、c、d、e和f,总共30位输入。有四个8位输出向量w、x、y和z,用于32位输出。给定五个1位信号(a、b、c、d和e),计算25位输出向量中的所有25个成对的一位比较。这需要连接24个符号位副本(即复制位[7]24次),然后是8位数字本身。1)在为表达式中不允许存在没有指明位数的信号,这是因为在计算拼接信号位宽的大小时必须知道其中每个信号的位宽。...

2022-07-17 23:01:55 351

原创 HDLBits每日刷题Day3

构建一个具有两个3位输入的电路,用于计算两个向量的按位或、两个向量的逻辑或以及两个向量的逆(NOT)。构建一个具有一个3位输入的电路,然后输出相同的向量,并将其拆分为三个单独的1位输出。在图中,旁边带有数字的刻度线表示向量(或“总线”)的宽度,而不是为向量中的每个位绘制单独的线。1.两个N位向量之间的按位运算复制向量的每个位的运算并产生N位输出。1)两个N位向量之间的按位运算复制向量的每个位的运算并产生N位输出。out_or4输入或门的输出。3.“按位或”的符号|...

2022-07-16 22:52:44 381

原创 HDLBits每日刷题Day2

这个值可以是任意复杂的函数,只要它是一个组合(即,无记忆,没有隐藏状态)函数。一个assign语句是一个连续赋值,因为只要它的任何输入永远改变,输出就会被“重新计算”,就像一个简单的逻辑门一样。您可以选择使用assign语句来驱动每条输出线,或者您可以选择声明(四)条线用作中间信号,其中每条内部线由一个与门的输出驱动。inputa,b,c,d和output的两条线已经定义,则需要声明的是模块内部没有定义用于传输的两根线。(是的,可以在没有中间线的情况下创建具有相同功能的电路。创建一个实现与门的模块。....

2022-07-15 22:42:54 300

原创 HDLBits每日刷题Day1

verilog小白入门刷题

2022-07-14 23:05:33 212

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除