lora fsm内总共有多少个状态_Verilog序列产生的多种方法——FSM状态机、移位寄存器、计数器...

【Verilog必做题】

9. 序列产生

产生序列“11010110”,串行循环输出该序列;

给出WORD或PDF版本的报告,包括但不限于文字说明、代码、仿真测试图等。

【解答】:

序列产生有多种实现方式,常用的有状态机、移位寄存器、计数器等。

1. 状态机:不考虑状态简化的情况下,要输出的序列多少位,就用多少个状态,每次状态跳转后输出对应的1/0,实现序列的循环输出,当序列位数较多时,需要的状态也多,程序复杂,占用的资源多,可以通过对状态进行化简来简化逻辑和节省资源;

0146c1e977820c37b049825d42f51076.png

状态机序列产生在视频的最后:

https://www.bilibili.com/video/BV1yC4y1h7rH​www.bilibili.com
/************************************************************

2. 移位寄存器方式

移位寄存器方式,最简单最方便,序列N位,就使用N位的移位寄存器,即用N个触发器。如果想要节省资源,就需要对序列进行化简,看最少使用多少个触发器能够正确输出整个序列。

比如:

1fd710b4740cc7323b39104262cdd0db.png

视频讲解:

https://www.bilibili.com/video/BV1hk4y1B7Nb​www.bilibili.com

关键代码如下:

always 

a4a8f3203abf084a7001ef90e636ee91.png

3. 计数器方式

每个计数值对应一个输出,对于8位输出的序列,计数0-7共8个数,只需要3-bit位宽的计数器,即使用3个触发器即可。每个计数值对应一个输出,画出对应的真值表,画出卡诺图,化简卡诺图。

2707740ac38e90838c814a334ba7ac37.png

关键代码:

always 

474a8235fd9f0f12e2b15ed16a9f22c8.png

可以看到,综合出的计数器只消耗了3个触发器(右边的两个触发器是输出寄存,也可以不寄存就输出),使用组合逻辑对输出的计数值进行逻辑运算,得到输出。这样是最节省资源的,对N位的输出序列,需要的触发器个数只需要以2为底的logN并向上取整。

https://www.bilibili.com/video/BV1yC4y1h7rH​www.bilibili.com https://www.bilibili.com/video/BV1hk4y1B7Nb​www.bilibili.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值