完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
如题,状态机本身好写,但是具体怎么用,没用过状态机真是感觉很低端。
比如用状态机产生一个波形,除了输入输出还有很多寄存器用于控制,都写在一起呢,还是把状态机独立出来为一个module,然后再根据这个module来控制电路。 我是状态机小白,请大家交流交流。 |
|
相关推荐
10个回答
|
|
|
|
|
|
学习中,多谢分享
|
|
|
|
自己顶,资料查阅中
|
|
|
|
自己顶,资料查阅中
|
|
|
|
状态机在需要时序的时候作用巨大
在时序电路中,很多芯片的操作都有一定的时序图,如何才能正确的控制这些芯片。在FPGA设计中,不使用状态机也可以实现,但可读性、可维护性极差。这时你需要想起状态机,状态机可以让你的设计具有更强的可读性、可维护性。 给个简单的例子吧。 操控FLASH,一般情况是:1.发送控制. 2.发送地址. 3.操作数据 这三个动作,如果单纯用逻辑电路写,问题不算太难; 但如果用状态机写,分成3个状态,状态跳转就很容易实现功能。 如果某天换一块芯片,增加了一个状态操作,只要在状态机中添加非常方便。 引申. 如果操作更为复杂的芯片(如SDRAM)。状态会更多,不用状态机,工程师很容易进入一个死胡同。很多没有考虑的因素都可能导致设计的失败。 写那么多,不知道有没有帮助。不懂就当作吹牛吧. |
|
|
|
虽然没太懂,但科普很大。能不能再说具体一点,我想说的是,实际中会需要产生很多的信号用于控制,是都作为输入到状态机的module里产生状态,还是可以直接在状态机的module里建寄存器(比如计数器)来作为状态切换的条件。 |
|
|
|
状态机可以让FPGA程序更加走流程化,比如 STATE_1 -> STATE_2 ->STATE_3 -- STATE_4 这些状态的跳转我们一般可以是输入产生,也可以该模块某些寄存器、组合等等产生。这并不能影响什么,关键是你状态的跳转正确与否而已。 举个例子吧,近段时间再做以太网通信,链路层的产生: 链路层分为几个: 空闲->同步码->目标MAC->源MAC->类型->数据->CRC校验->包间隙 上面个流程可以划分为8个状态,在没有输入使能的情况下,状态在<空闲>,一旦模块输入有使能信号,空闲状态->同步码。 等发送完同步码后(这需要逻辑来控制),同步码->目标MAC,等发送完目标MAC后 ........(以此类推)。 所以说,状态跳转并不是只有外部才可以做触发的,多数情况是内部触发,形成一个流程。 |
|
|
|
有一本书《设计与验证verilogHDL》,这本书里的状态机一节写的非常好,你看看,直接在论坛里搜索.
|
|
|
|
camp 发表于 2014-2-27 14:23 谢谢,懂了。。。。。。。。。。。。。。。 |
|
|
|
状态机说白了就是时序逻辑电路的一种表示或者说设计方法,大部分情况下的时序逻辑电路用状态机来描述较好
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-28 12:44 , Processed in 0.706503 second(s), Total 87, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号