- 博客(94)
- 收藏
- 关注
原创 verilog HDLBits刷题[Counters]“Exams/ece241 ”---Counter 100
摘要:本文设计了一个将1000Hz时钟分频为1Hz信号的数字电路,用于驱动数字钟表计时。采用三级BCD计数器级联实现1000分频(10×10×10),每个计数器在特定条件下使能:最低位始终计数,中间位在个位为9时计数,最高位在十位和个位均为9时计数。最终1Hz信号在三个计数器同时为9时产生。电路使用同步复位,所有计数器共享同一1000Hz时钟源,通过使能信号(c_enable)控制各级计数器工作,实现了高效的分频功能。
2025-07-29 22:40:59
274
原创 verilog HDLBits刷题[Counters]“Exams/ece241 ”---Counter 1-12
一、题目input clk,The, and, and。
2025-07-29 22:16:34
376
原创 verilog HDLBits刷题[Counters]“Countslow”---Slow decade counter
本文设计了一个0-9的同步十进制计数器,具有复位和暂停功能。计数器在时钟上升沿触发,当reset为高电平时同步复位到0;当slowena为低电平时暂停计数;正常计数到9后自动归零。代码采用Verilog实现,通过时序逻辑确保计数器的同步操作。该设计满足10个时钟周期的完整计数周期,并提供了灵活的控制接口。
2025-07-28 22:12:27
351
原创 verilog HDLBits刷题[Counters]“Count1to10”---Decade counter again
本文实现了一个同步十进制计数器模块,计数范围为1到10。当检测到高电平复位信号时,计数器同步重置为1;否则在每个时钟上升沿时,计数器数值递增,达到10后自动循环回到1。代码采用了Verilog硬件描述语言,通过always块检测时钟上升沿和复位信号,使用条件语句控制计数逻辑。该设计实现了简单的循环计数功能,可作为数字系统中的基础时序元件。
2025-07-28 21:52:20
106
原创 verilog HDLBits刷题[Counters]“Count15”---Four-bit binary counter
本文实现了一个4位二进制同步计数器模块,从0计数到15(共16个周期)。模块采用同步高电平复位,当reset信号有效时计数器清零。代码使用Verilog HDL编写,通过时钟上升沿触发计数,复位时cnt寄存器赋值为0,否则每个时钟周期cnt自增1。输出q直接连接cnt寄存器的值。该设计实现了基本的同步计数功能,满足16个计数周期的时序要求。
2025-07-22 22:04:31
226
原创 verilog HDLBits刷题[Latches and Flip-Flops]“Dualedge”---Dual-edge triggered flip-flop
本文提出了一种在FPGA上实现双沿触发D触发器的替代方案。由于FPGA不支持原生的双沿触发器,该方案通过分别使用上升沿和下降沿触发器采样输入信号,再通过时钟信号控制的多路选择器输出当前边沿采样的值。具体实现为:用两个触发器分别在时钟上升沿和下降沿采样输入d,产生q_pos和q_neg信号,再根据时钟状态(clk)选择输出其中一个值。这种设计虽然可能在组合逻辑部分产生毛刺,但功能上模拟了双沿触发器的行为。
2025-07-20 20:14:16
190
原创 verilog HDLBits刷题[Latches and Flip-Flops]“Edgecapture”---Edge capture register
本文设计了一个32位向量检测电路,用于捕捉输入信号从1到0的跳变。电路采用同步复位,当复位信号有效时输出清零;复位无效时,每个输出位在检测到对应输入位出现下降沿后置1并保持。Verilog实现中,通过寄存器in_1存储输入信号的上一拍值,在时钟上升沿时比较当前输入与上一拍值来检测下降沿。当复位与置位同时发生时,复位具有优先权。该电路适用于需要捕捉信号下降沿并保持标志位的应用场景。
2025-07-20 19:59:00
121
原创 verilog HDLBits刷题[Latches and Flip-Flops]“Edgedetect2”---Detect both edges
一、题目。
2025-07-20 16:36:46
101
原创 verilog HDLBits刷题[Latches and Flip-Flops]“Edgedetect”---Detect an edge(边沿检测)
一、题目。
2025-07-20 16:08:25
288
原创 verilog HDLBits刷题[Latches and Flip-Flops]“Exams/ece241 2013 q7”---Create circuit from truth table
一、题目。
2025-07-20 15:09:07
183
原创 verilog HDLBits刷题[Latches and Flip-Flops]“Exams/ece241 2014”---DFFs and gates
一、题目。
2025-07-16 21:55:29
306
原创 verilog HDLBits刷题[Latches and Flip-Flops]“Exams/2014 q4a”---Mux and DFF
本文实现了一个n位移位寄存器电路的单级Verilog模块。该模块包含一个D触发器(flip_flop)和两个多路选择器(multiplexer)。顶层模块通过例化这些子模块构建电路,其中第一个选择器在输入w和当前状态Q间选择,第二个选择器在前级输出和R信号间选择,最终输出由D触发器在时钟上升沿锁存。代码结构清晰,使用组合逻辑实现选择器,时序逻辑实现触发器,完整实现了指定功能。
2025-07-16 21:45:13
511
原创 verilog HDLBits刷题[Latches and Flip-Flops]“Mt2015 muxdff”---Mux and DFF
一、题目。
2025-07-16 21:27:17
252
原创 verilog HDLBits刷题[Latches and Flip-Flops]“Exams/m2014 q4d”---DFF +gate
一、题目。
2025-07-14 22:08:38
184
原创 verilog HDLBits刷题[Latches and Flip-Flops]“Exams/m2014 q4a”---D Latch
一、题目。
2025-07-14 21:57:40
200
原创 verilog HDLBits刷题[Latches and Flip-Flops]“DFF16e”---DFF with byte enable
一、题目。
2025-07-14 21:51:03
412
原创 verilog HDLBits刷题[Latches and Flip-Flops]“DFF8ar”---DFF with asynchronous reset
一、题目。
2025-07-14 21:37:47
338
原创 verilog HDLBits刷题[Latches and Flip-Flops]“DFF8p”---DFF with reset value
一、题目。
2025-07-09 20:04:17
128
原创 verilog HDLBits刷题[Latches and Flip-Flops]“DFF8”---D flip-flops(D 触发器)
一、题目。
2025-07-09 19:46:35
212
原创 verilog HDLBits刷题[Latches and Flip-Flops]“DFF”---D flip-flop(D 触发器)
D触发器,时钟上升沿触发,使用always语句,上升沿来了将d赋值给q。
2025-07-09 18:35:01
184
原创 成功生成比特流,但是观察不了ILA
调试ILA时钟时遇到问题:初始使用10M时钟报错,后改为100M但需每个信号单独probe。最终发现是ILA时钟频率过低导致问题,尝试调整JTAG频率后,将下载器频率从15M降至500Hz,解决了10M时钟报错问题。调试过程表明需要合理匹配ILA时钟与JTAG频率才能正常观测信号。
2025-07-09 11:23:02
199
原创 verilog HDLBits刷题[Karnaugh Map to Circuit]“Kmap1”---3-variable
摘要:题目要求根据卡诺图实现电路,尝试用积之和与和之积两种形式简化卡诺图后编写代码。分析表明当所有输入为0时输出才为0,可用或逻辑实现。代码实现了一个三输入或门电路,输出为输入a、b、c的或运算结果。时序分析未提供具体内容。
2025-07-08 21:13:48
149
原创 verilog HDLBits刷题[算术电路]“Bcdadd4”---4-digit BCD adder(4位BCD加法器)
摘要:该设计实现了一个4位BCD码加法器,通过级联4个1位BCD加法器模块(bcd_fadd)构成。顶层模块(top_module)将16位输入分解为4个4位BCD数,通过进位链(cin1-3)实现串行进位,最终输出16位求和结果和进位标志。代码采用模块实例化方式,将低4位结果作为下一级进位输入,完成4位BCD数的加法运算。
2025-07-08 21:08:09
140
原创 verilog HDLBits刷题[算术电路]“Adder100”---100-bit binary adder
摘要:实现一个100位二进制加法器模块,输入包括两个100位二进制数(a,b)和进位输入(cin),输出为100位和(sum)及进位输出(cout)。该设计采用Verilog HDL编写,通过单行assign语句实现加法运算:将a、b与cin相加,高位进位自动赋值给cout,低位结果赋给sum。代码简洁高效,模块声明与实现仅需4行,完美满足设计要求。
2025-07-08 20:59:25
181
原创 verilog HDLBits刷题[算术电路]“Exams/ece241 2014 q1c”---Signed addition overflow
摘要:本文实现了一个8位2's补码加法器模块,包含溢出检测功能。模块输入两个8位有符号数a和b,输出相加结果s和溢出标志overflow。溢出判断逻辑为:当两个输入的最高位(符号位)相同,但结果符号位与输入符号位不同时发生溢出。提供了两种等效的实现方式,第一种通过符号位直接比较,第二种使用异或运算实现。该模块适用于数字电路设计中需要处理有符号数运算的场景。
2025-07-08 20:55:27
100
原创 verilog HDLBits刷题[算术电路]“Exams/m2014 q4j”---Adder
本文实现了一个4位加法器的Verilog模块。模块包含两个4位输入x和y,以及一个5位输出sum。由于sum需要包含可能的进位位,所以输出位宽比输入多1位。代码采用行为级建模方式,直接用assign语句将x和y相加的结果赋给sum。这种实现方式简洁高效,利用Verilog的加法运算符自动处理进位。该设计适用于需要4位二进制数相加的数字电路应用。
2025-07-08 20:22:09
127
原创 verilog HDLBits刷题[算术电路]“Adder3”---3-bit binary adder(半加器)
本文实现了一个3位二进制波纹进位加法器,通过实例化3个全加器模块完成。该模块接收两个3位输入a、b和进位输入cin,输出3位和sum及各级进位cout。关键点在于:1) 将前级进位输出作为后级进位输入;2) 最终进位cout[2]作为最高位进位。代码采用Verilog实现,通过wire信号连接各级进位,并使用assign语句组合输出各级进位值。时序上体现了波纹进位的特点,进位信号从低位向高位逐级传递。
2025-07-08 19:59:43
234
原创 verilog HDLBits刷题[算术电路]“Fadd”---Full adder(全加器)
本文实现了一个全加器电路模块。与半加器不同,全加器考虑了初始进位输入。模块采用Verilog HDL语言编写,通过连续赋值语句将两个输入位和进位位相加,直接输出求和结果和进位位。该实现简洁高效,仅用一行代码就完成了全加器的核心功能。关键词:全加器、Verilog、数字电路、进位。
2025-07-08 19:31:27
121
原创 verilog HDLBits刷题[算术电路]“Hadd”---Half adder(半加器)
摘要:本文实现了一个半加器模块,该模块接受两个1位输入a和b,输出它们的和sum与进位cout。通过简单的Verilog赋值语句{cout,sum}=a+b完成功能,其中sum表示a和b的异或结果,cout表示a和b的与结果。该实现简洁高效,符合半加器的基本设计要求。
2025-07-08 19:27:48
135
原创 verilog HDLBits刷题[多路复用器]“Mux256to1v”---256-to-1 4-bit multiplexer
摘要:该设计实现了一个4位宽、256选1的多路选择器。输入为1024位向量(包含256个4位输入),通过8位选择信号sel指定输出哪一组4位数据。当sel=0时输出in[3:0],sel=1时输出in[7:4],以此类推。解决方案采用位拼接方式,通过计算4*sel的偏移量来选取对应4位数据。核心代码仅用1行assign语句实现,简洁高效地完成了多路选择功能。
2025-07-06 21:33:45
129
原创 verilog HDLBits刷题[多路复用器]“Mux256to1”---256-to-1 multiplexer
摘要:本文实现了一个256选1的1位宽多路复用器。输入为256位向量in和8位选择信号sel,输出为选中的1位数据out。当sel=x时,输出in[x]。解决方案简洁高效,仅需1行代码:assign out = in[sel]。该设计通过直接索引实现多路选择功能。
2025-07-06 21:18:10
116
原创 verilog HDLBits刷题[多路复用器]“Mux9to1v”---9-to-1 multiplexer
本文实现了一个16位宽、9选1的多路选择器模块。当选择信号sel为0-8时,分别输出输入a-i;当sel为9-15时,所有输出位设置为1。模块采用case语句实现选择逻辑,输入为16位数据和4位选择信号,输出通过always组合逻辑块生成。
2025-07-06 21:08:30
186
原创 verilog HDLBits刷题[多路复用器]“Mux2to1v”---2-to-1 bus multiplexer
摘要:该设计实现了一个100位宽的二选一多路复用器。当选择信号sel=0时输出a,sel=1时输出b。通过Verilog HDL的连续赋值语句"assign out = sel ? b : a"简洁实现,适用于任意位宽的输入信号。模块接口包含两个100位输入a、b,1位选择信号sel和100位输出out。
2025-07-06 20:59:55
137
原创 verilog HDLBits刷题[多路复用器]“Mux2to1”---2-to-1 multiplexer
本文实现了一个1位宽的2选1多路复用器模块。当选择信号sel=0时输出a,sel=1时输出b。提供了三种Verilog HDL实现方案:1)使用三目运算符的最简洁实现;2)基于逻辑与或门的布尔表达式实现;3)采用always块和case语句的时序逻辑实现。
2025-07-06 20:54:22
187
原创 verilog HDLBits刷题[基本逻辑门]“Gatesv100”---Even longer vectors
摘要:该模块实现了一个100位输入向量与相邻位关系的检测电路。out_both[98:0]检测当前位与左邻居是否均为1;out_any[99:1]检测当前位或右邻居是否存在1;out_different[99:0]检测当前位与左邻居(循环处理)是否不同。通过位运算实现:按位与检测同时为1,按位或检测存在1,异或操作检测差异。代码简洁高效地完成了三种相邻位关系判断。
2025-07-06 20:45:54
412
原创 verilog HDLBits刷题[基本逻辑门]“Gatesv”---Gates and vectors
摘要:该设计实现了一个4位输入向量[3:0]的邻位关系检测电路。输出包括:out_both[2:0]检测当前位与左侧位是否同为1;out_any[3:1]检测当前位或右侧位是否存在1;out_different[3:0]检测当前位与左侧位是否不同(循环左邻)。代码使用位操作实现:按位与检测双1,按位或检测存在1,异或检测位差异。电路采用组合逻辑实现,无时序要求。
2025-07-06 20:39:18
223
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人