自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Exams/ece241 2014 q5a

2.在负数时候,补码是由负数的原码取反之后+1获得(可以理解为:从低位到高位(不包括最高位),当遇到第一个1之后,其余的高位全部取反,最后再加上最高位1)分析: 三个状态:初始状态、接收到第一个1,开始接收取反。举例:原码:1001100。1.正数下,补码就是原码。

2024-11-12 14:43:43 324

原创 Fsm serialdata

现在您有了一个有限状态机,可以识别串行比特流中何时正确接收字节,添加一个数据路径,输出正确接收的数据字节。当done为1时,out_byte必须有效,否则为not。1、像Fsm ps2data 例题输出接收到的三个字节一样,输出赋值必须在时序逻辑中实现,而且必须在next_state 状态下。2、输入bit存储在高位中,所以赋值应写为 a<= {in,a[7:1]},即右移一位。请注意,串行协议首先发送最低有效位。

2024-11-06 17:55:58 383

原创 Fsm serial

【代码】Fsm serial。

2024-11-06 14:43:59 145

原创 Fsm ps2data

此题数据输出值mid_vale 的赋值必须在时序逻辑下。写在组合逻辑下不通过。输出可以写在组合逻辑下。

2024-11-06 13:38:18 340

原创 FSM onehot

【代码】FSM onehot。

2024-11-05 11:24:00 169

原创 Exams/ece241 2013 q4

错误代码 在研究ing。

2024-11-04 19:38:32 253

原创 Lemmings4

【代码】Lemmings4。

2024-11-04 18:14:32 200

原创 Lemmings3

输出两种写法代码:(组合逻辑与时序逻辑)

2024-11-04 15:22:22 314

原创 Lemmings2

除了左右行走以及在颠簸时改变方向外,当ground=0时,旅鼠会摔倒并说“啊啊!当地面重新出现(地面=1)时,旅鼠将恢复向与坠落前相同的方向行走。在跌倒时被撞击不会影响行走方向,在与地面相同的周期中被撞击消失(但尚未下落),或者当地面在仍然下落时重新出现时,也不会影响行走方向。除了左右走动之外,如果脚下的土地消失,莱明斯还会摔倒(大概还会掉下来“啊!分为三个状态 左走 、右走 、跌落。所以类似于蓄水池将跌落设置为2个状态。构建一个有限状态机来模拟这种行为。

2024-11-04 13:35:39 175

原创 Fsm3

注意定义A B C D为 parameter。

2024-10-31 10:13:43 262

原创 Fsm3comb&Fsm3onehot

(简单的状态转换3)以下是具有一个输入、一个输出和四个状态的 Moore 状态机的状态转换表。

2024-10-30 11:41:38 329

原创 Fsm1s

从图中可以看出,输出晚了1拍,假设in从1—>0时状态从A->B,根据第二段组合逻辑判断状态转移 next_state立刻变成了 B。根据第一段 同步时序描述状态转移,则在下一个上升沿到来时 present_state 变为 B。如果case中写pre的话就会晚一个时钟周期。2、三段式书写过程中,第三段 本题既可以按组合逻辑赋值也可以按时序逻辑赋值,但在使用时序逻辑赋值的时候,注意case 中的条件为次态(next_state)。1、三段式 和两段式书写中 状态机第二段 需要写 always@(*)

2024-10-29 15:25:47 235

原创 Fsm1

在两个 always 模块描述方法的基础上,使用三个always 模块,一个always 模块采用。不同于一段式状态机的是,它需要定义两个状态,现态和次态,然后通过现态和次态的转换来实现时序逻辑。用两个 always 模块来描述状态机,其中一个 always模块采用同步时序。为了处理有时间上先后的事件,在FPGA中采用状态机的形式完成事件处理。,描述状态转移规律,另一个。,一个 always 采用。

2024-10-29 10:58:34 281

原创 Rule110

根据公式 : A + A' = 1;A · 1 = A 得 CR'(L + L') = CR';红圈 :LCR' | L'CR' | LC'R | L'C'R。黄圈: CRL' | CR'L' 同理可得 结果为 L'C。所以 红圈可得 CR' | C'R 即为 C^R。所以卡诺图最终结果为 C^R | L'C。因为 X^0 = X。

2024-10-28 11:37:53 341

原创 基于STM32F103ZET6的TM1638点亮

首先配置引脚 PD8,PD9,PD10分别对应 DIO,CLK,STB。CLK与STB引脚配置为推挽输出,DIO设为开漏输出。

2024-10-24 18:13:05 427

原创 Exams/ece241 2014 q7b

为啥等于q0 == 8 还是延一拍。

2024-10-21 19:59:56 364

原创 Exams/m2014 q4k

以上代码是根据逻辑写的,细看好像是循环左移位。

2024-10-15 13:52:04 341

原创 Lfsr32

注意到图中有两个触发器的输入为前级输出与q[0]的异或,这些位置被称为 tap position.通过观察上图,所谓抽头点指的就是第5个,第3个寄存器的输入经过了异或逻辑。位30 至 21 为9.所以 可写为 q[31 : 23 ], q[21] 替换为q[22]^q[0],,q[20]~q[2] 有19个bit,所以。或者写:q[31:31-9+1],[5:3]是[3],[4],[5]三个bit。此题为 q

2024-10-15 13:22:29 434

原创 Shift18

算术右移将移位寄存器(在本例中为q[63] )中数字的符号位移位,而不是像逻辑右移那样移入零。考虑算术右移的另一种方法是,它假设被移位的数字是带符号的并保留符号,因此算术右移将带符号的数字除以 2 的幂。构建一个具有同步加载功能的 64 位算术移位寄存器。移位器可以左右移动,移动 1 位或 8 位,由amount选择。需要考虑符号位,右移一位,若符号位为1,就在左边补1,;逻辑右移就是不考虑符号位,右移一位,左边补零即可。例如,8位二进制数11001101分别右移一位。逻辑右移就是[0]1100110。

2024-10-15 10:17:46 583

原创 Count clock

构成hours(01~12), minutes(00~59) , second(00~59)。Reset信号比enable信号有更高的优先级,即使没有enable信号也可以进行复位操作。(Binary-Coded Decimal‎),用4位二进制数来表示1位十进制中的0~9这10个数码,是一种二进制的数字编码形式,用二进制编码的十进制代码。该计数器通过一个CLK进行计时,用ena使能信号来驱动时钟的递增。reset信号将时钟复位为12:00 AM。信号pm为0代表AM,为1代表PM。

2024-10-14 16:55:32 414

原创 复位电路的亚稳态

直到下一个时钟有效沿到来之后,前一级亚稳态大概率输出稳定(可能为低电平也可能为高电平),使得第二级触发器能够稳定输出,若此时第二级触发器输出高电平,即实现同步释放,若输出为低电平且此时复位信号仍然保持无效状态,则在第三个时钟输出高电平,实现同步释放。是在第二个触发沿到来时,前一级亚稳态输出已经稳定且稳定为高电平情况下的时序,如果在第二个触发沿到来时,前一级输出的亚稳态还未达到稳定,则电路还是处于亚稳态状态(概率不大),所以两级触发器电路并不能完全消除亚稳态问题,但是可以极大改善亚稳态。

2024-10-12 10:43:33 816

原创 FPGA中的亚稳态

综上所述,异步复位同步释放机制解决了异步复位和同步复位固有的缺陷,因此将这种方法作为系统复位是极好的选择。这种模型大部分资料都说的是第一级寄存器产生亚稳态后,第二级寄存器稳定输出概率为90%,第三极寄存器稳定输出的概率为99%,如果亚稳态跟随电路一直传递下去,那就会另自我修护能力较弱的系统直接崩溃。对于复位情况下的亚稳态,常常是由于恢复时间和移除时钟不满足造成的,因此,最常用的处理方式是采用异步复位、同步释放。保持时间就是时钟触发沿到来之后,数据需要保持稳定的最小时间,方便数据被电路准确传输。

2024-10-11 14:20:37 2292

原创 Countbcd

因为always 有延一拍的效果,所以在q[3:0]==9的时候,十位计数器使能位置1。那么q[7:4]为什么是在==9的时候呢?在q[11:8] ==0,此时百位使能位置1。为什么q [3:0] 要等于8呢?

2024-10-10 11:29:47 234

原创 Countslow

【代码】Countslow。

2024-10-06 18:21:08 331

原创 Dualedge

【代码】Dualedge。

2024-09-30 15:23:01 136

原创 阻塞赋值与非阻塞赋值

前言: 非阻塞赋值也会有延一拍的现象。阻塞赋值 此时只有out 一个寄存器 仿真图:分析: 首先中间变量in_reg赋值为in前一时刻的值,所以会比输入信号in延迟一拍,而中间变量in_reg和输出信号out却没有延迟一拍的关系了,而是在同一时刻同时变化的,因为我们使用的是阻塞赋值,也就是说只要赋值号右边的表达式的值有变化, 赋值号左边的表达式的值也将立刻变化,所以我们最终看到的结果是中间变量in_reg和输出信号out是同时变化的。根据上面RTL代码综合出的R

2024-09-30 11:18:52 547

原创 时序逻辑-延一拍/打一拍?

如图 15‑5所示最右边的三根红色的竖线表达的就是这种效果,sys_rst_n被拉低后led_out没有立刻变为0,而是当syc_clk的上升沿到来的时候led_out才复位成功,在复位释放的时候也是相同原因。key_in在复位后的第一个时钟的上升沿来到时拉高,我们可以发现此时led_out并没有在同一时刻也跟着拉高,而在之前的组合逻辑中输出是在输入变化的同一时刻立刻变化的。我们这种分析最后的现象完全契合了延一拍的效果(直观上看到的波形是对齐的,其实我们要取的值是时钟上升沿前一时刻得值)

2024-09-30 10:27:02 2473 1

原创 Exams/ece241 2014 q4

因为always 内语句是同时执行所以存在 z 输出不对的情况。

2024-09-29 15:39:30 267

原创 Exams/m2014 q4a

【代码】Exams/m2014 q4a。

2024-09-29 13:51:34 294

原创 Exams/2012 q1g

【代码】Exams/2012 q1g。

2024-09-26 11:30:32 286

原创 Exams/ece241 2013 q2

具有四个输入(A、b、c、d)的单输出数字系统在输入上出现2、7或15时生成逻辑-1,在出现0、1、4、5、6、9、10、13或14时生成逻辑-0。在卡诺图中,要得到POS形式,可以想象将SOP形式中的1和0互换,然后再次应用SOP的圈定方法,得到的圈将代表OR门的求和项。- 在卡诺图中,SOP通常通过将1(真值)所在的单元格圈起来,然后找到这些圈能够覆盖的最小数量的单元格,每个圈代表一个AND门的乘积项。”,是一种将逻辑函数表示为AND(与)门的输出进行OR(或)连接的形式。假值)的单元格来实现。

2024-09-26 11:09:22 418

原创 Kmap4

2024-09-26 09:43:40 404

原创 Bcdadd4

实例化bcd_fadd的4个副本,以创建一个4位bcd波纹进位加法器。加法器应该将两个4位BCD数字(打包成16位向量)和一个进位相加,得到一个4位和并执行。您将获得一个名为BCD_fadd的BCD(二进制编码十进制)一位加法器,它将两个BCD数字相加并进位,然后产生一个和并进位。bcd_fadd模块(输出[3:0]和);

2024-09-24 11:54:43 213

原创 Exams/ece241 2014 q1c

1、当符号位相异时,两个数相加一定不会产生符号溢出,以4位2进制a,b为例(最高位为符号位)2、当符号位相同时,可通过a+b的结果的符号位与a或b的符号位进行比较,若相同未溢出,即。如上式所示,a+b的结果在4位二进制可表示的范围内,即不会产生数据溢出,即。

2024-09-23 16:01:41 242

原创 Adder3

【代码】Adder3。

2024-09-23 11:31:55 185

原创 Mux256to1v

这种表达式通常是用于拼接操作。当sel为0时,out = in[3:0];

2024-09-23 10:06:57 241

原创 Gatesv

out_both:此输出向量的每个比特都应该指示相应的输入比特及其左侧的邻居(较高索引)是否都是“1”。例如,out_both[2]应该指示在[2]和[3]中是否都是1。由于in[3]在左边没有邻居,所以答案很明显,所以我们不需要知道out_both[3]。例如,out_any[2]应指示[2]或[1]中的任何一个是否为1。由于in[0]在右边没有邻居,所以答案很明显,所以我们不需要知道out_any[0]。例如,out_didifferent[2]应指示in[2]是否不同于in[3]。

2024-09-20 17:15:55 316

原创 Popcount3

【代码】Popcount3。

2024-09-20 16:01:04 122

原创 Thermostat

恒温器可以处于两种模式之一:加热(模式=1)和冷却(模式=0)。在加热模式下,当温度过低(too_cold=1)时打开加热器,但不要使用空调。在制冷模式下,当空调太热(too_hot=1)时打开空调,但不要打开加热器。当加热器或空调打开时,也要打开风扇使空气循环。此外,即使加热器和空调关闭,用户也可以请求打开风扇(fan_on=1)。加热/冷却恒温器控制加热器(冬季)和空调(夏季)。实施一个电路,根据需要打开和关闭加热器、空调和鼓风机风扇。分析:输出可以作为其他输出的输入吗?

2024-09-20 15:47:35 901

原创 Bcdadd100

【代码】Bcdadd100。

2024-09-19 19:27:16 241

基于STM32F103ZET6的TM1638点亮

基于STM32F103ZET6的TM1638点亮

2024-10-28

空空如也

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

TA关注的人

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