- 1、本文档共114页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
THANK YOU SUCCESS * * 可编辑 LIBRARY IEEE; USE IEEE.Std_ Logic_1164.ALL; ENTITY MealyMachine IS PORT ( Reset ,Clock,DIN:IN Std_Logic; DOUT:OUT Std_Logic_Vetor(2 DOWNTO 0)); END; ARCHITECTURE Statemachine OF MealyMachine IS TYPE State_type IS (S0,S1,S2,S3); SIGNAL State:State_type; BEGIN Change_State: PROCESS (Reset,Clock) BEGIN IF Reset=‘1’ THEN State=S0; ELSIF rising_edge(Clock) THEN CASE State IS WHEN S0=〉IF DIN=‘1’ THEN State=S1;END IF; WHEN S1=〉IF DIN=‘1’ THEN State=S2;END IF; WHEN S2=〉IF DIN=‘1’ THEN State=S3;END IF; WHEN S3=〉IF DIN=‘1’ THEN State=S0; ELSE State=S1; END IF ; END CASE; END IF; END PROCESS; Output_Process:PROCESS(State,DIN) BEGIN CASE State IS WHEN S0=IF DIN=‘0’ THEN DOUT =“000”; ELSE DOUT=“001”;END IF; WHEN S1=IF DIN=‘0’ THEN DOUT =“010”; ELSE DOUT=“011”;END IF; WHEN S2= IF DIN=‘0’ THEN DOUT =“100”; ELSE DOUT=“101”;END IF; WHEN S3= IF DIN=‘0’ THEN DOUT =“110”; ELSE DOUT=“111”;END IF; END CASE; END PROCESS; END; 3.4.3 状态机的容错设计 主要针对未定义状态(剩余状态) 单独设计一个状态(ERROR),用以处理状态机出错的情况, 用 WHEN OTHERS=State=Error; 使状态机从未定义的状态跳转到处理出错情况的状态; 直接回复到其他已设定的状态。 3.4.4 状态机设计与寄存器 对于所有可能的输入条件,当进程中的输出信号如果没有被完全地与之对应指定,此信号将自动被指定,即在未列出的条件下保持原值,这意味着引入了寄存器。 在状态机中,如果存在一个或更多的状态没有被明确指定转换方式,或者对于状态机中的状态值没有规定所有的输出值,就可能引入寄存器。 计数器: 3.5 常用电路的VHDL程序 比较器: 奇数倍分频: 8位奇偶校验电路 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY p_check IS PORT (a: IN STD_LOGIC_VECTOR (7 DOWNTO 0); y: OUT STD_LOGIC); END p_check; ARCHITECTURE opt OF p_check IS SIGNAL tmp: STD_LOGIC; BEGIN PROCESS (a) BEGIN tmp=0; FOR n IN 0 TO 7 LOOP --此循环语 句作为进程语句中的顺序语句使用 tmp = tmp XOR a(n); END LOOP; y = tmp
文档评论(0)