使用vhdl设计--moore machine.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用vhdl设计--moore machine

使用VHDL設計--Moore Machine 通訊ㄧ甲 楊穎穆 目錄 目的 設計原理 程式 實驗結果 參考資料 目的 試用VHDL設計一Moore Machine 需求: 1. 有一輸入reset, x及同步脈波Clock,輸出為3位元的Y 2. 當reset=0一下,進入初始狀態,輸出為000 3. 當x輸入為1,且在脈波上升後進入另一狀態,輸出值為加1,當輸出為111後,下一狀態為000 4. 當x輸入為0,且在脈波上升後進入另一狀態,輸出值為減1,當輸出為000後,下一狀態為111 設計原理 Moore Machine:輸出之狀態在狀態穩定時 當x輸入為‘1’時,y輸出值為上一狀態y值加‘1’ 當x輸入為‘0’時,y輸出值為上一狀態y值減‘1’ 設計原理 狀態變遷圖 程式 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity moore is --ic內部要做的電路名稱 port( --接腳 clock,reset,x:in std_logic; --輸入腳位clock,reset,x y :out std_logic_vector(2 downto 0) --輸出腳位 y,且內部有三個位元數 ); end; architecture behav of moore is --電路內部結構 type state is(s0,s1,s2,s3,s4,s5,s6,s7); signal ps,ns: state; begin sq:process(reset,ps) --處理內部要處理的輸入訊號 begin if(reset=‘0’)then --當reset=‘0’時,則進行狀態初始化 ns=s0; --設定初始狀態 y=“000”; --輸出設定為“000” else case ps is --利用case…is寫法來做狀態處理 when s0=y=“000”; --當目前狀態是s0時,輸出為“000” if x=‘1’ then ns=s1; --如果x=‘1’,則下一狀態是s1 else ns=s7; --否則下一狀態是s7 end if; when s1=y=001; --當目前狀態是s1時,輸出為“001” if x=1 then ns=s2; --如果x=‘1’,則下一狀態是s2 else ns=s0; --否則下一狀態是s0 end if; when s2=y=010; --當目前狀態是s2時,輸出為“010” if x=1 then ns=s3; --如果x=‘1’,則下一狀態是s3 else ns=s1; --否則下一狀態是s1 end if; when s3=y=011; --當目前狀態是s3時,輸出為“011” if x=1 then ns=s4; --如果x=‘1’,則下一狀態是s4 else ns=s2; --否則下一狀態是s2 end if; when s4=y=100; --當目前狀態是s4時,輸出為“100” if x=1 then ns=s5; --如果x=‘1’,則下一狀態是s5 else ns=s3; --否則下一狀態是s3 end if; when s5=y=101; --當目前狀態是s5時,輸出為“101” if x=1 then ns=s6; --如果x=‘1’,則下一

您可能关注的文档

文档评论(0)

wujianz + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档