利用状态机的状态机实现层次结构化设计.doc

利用状态机的状态机实现层次结构化设计.doc

ID:27857371

大小:28.00 KB

页数:8页

时间:2018-12-06

利用状态机的状态机实现层次结构化设计.doc_第1页
利用状态机的状态机实现层次结构化设计.doc_第2页
利用状态机的状态机实现层次结构化设计.doc_第3页
利用状态机的状态机实现层次结构化设计.doc_第4页
利用状态机的状态机实现层次结构化设计.doc_第5页
资源描述:

《利用状态机的状态机实现层次结构化设计.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、利用状态机的状态机实现层次结构化设计  练习九.利用状态机的嵌套实现层次结构化设计目的:1.运用主状态机与子状态机产生层次化的逻辑设计; 2.在结构化设计中灵活使用任务(task)结构。在上一节,我们学习了如何使用状态机的实例。实际上,单个有限状态机控制整个逻辑电路的运转在实际设计中是不多见,往往是状态机套用状态机,从而形成树状的控制核心。这一点也与我们提倡的层次化、结构化的自顶而下的设计方法相符,下面我们就将提供一个这样的示例以供大家学习。该例是一个简化的EPROM的串行写入器。事实上,它是一

2、个EPROM读写器设计中实现写功能的部分经删节得到的,去除了EPROM的启动、结束和EPROM控制字的写入等功能,只具备这样一个雏形。工作的步骤是:1.地址的串行写入;2.数据的串行写入;3.给信号源应答,信号源给出下一个操作对象;4.结束写操作。通过移位令并行数据得以一位一位输出。模块源代码:modulewriTIng(reset,clk,address,data,sda,ack);inputreset,clk;input[7:0]data,address;outputsda,ack; //s

3、da负责串行数据输出;  //ack是一个对象操作完毕后,模块给出的应答信号。reglink_write; //link_write决定何时输出。reg[3:0]state; //主状态机的状态字。reg[4:0]sh8out_state; //从状态机的状态字。reg[7:0]sh8out_buf;//输入数据缓冲。regfinish_F;//用以判断是否处理完一个操作对象。regack;parameteridle=0,addr_write=1,data_write=2,stop_ack=3;

4、parameterbit0=1,bit1=2,bit2=3,bit3=4,bit4=5,bit5=6,bit6=7,bit7=8;assignsda=link_write?sh8out_buf[7]:1’bz;always@(posedgeclk)beginif(!reset)//复位。beginlink_write<=0;state<=idle;finish_F<=0;sh8out_state<=idle;ack<=0;sh8out_buf<=0;endelsecase(state)idle:

5、beginlink_write<=0;state<=idle;finish_F<=0;sh8out_state<=idle;ack<=0;sh8out_buf<=address;state<=addr_write;endaddr_write://地址的输入。beginif(finish_F==0)beginshift8_out;endelsebeginsh8out_state<=idle;sh8out_buf<=data;state<=data_write;finish_F<=0;endendd

6、ata_write://数据的写入。beginif(finish_F==0)beginshift8_out;endelsebeginlink_write<=0;state<=stop_ack;finish_F<=0;ack<=1;endendstop_ack://完成应答。beginack<=0;state<=idle;end  endcaseendtaskshift8_out;//串行写入。begincase(sh8out_state)idle:beginlink_write<=1;sh8ou

7、t_state<=bit0;endbit0:beginlink_write<=1;sh8out_state<=bit1;sh8out_buf<=sh8out_buf<<1;endbit1:beginsh8out_state<=bit2;sh8out_buf<=sh8out_buf<<1;endbit2:beginsh8out_state<=bit3;sh8out_buf<=sh8out_buf<<1;endbit3:beginsh8out_state<=bit4;sh8out_buf<=sh8o

8、ut_buf<<1;endbit4:beginsh8out_state<=bit5;sh8out_buf<=sh8out_buf<<1;end  bit5:beginsh8out_state<=bit6;sh8out_buf<=sh8out_buf<<1;endbit6:beginsh8out_state<=bit7;sh8out_buf<=sh8out_buf<<1;endbit7:beginlink_write<=0;finish_F<=finish_F+1;end  endcaseende

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。