




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,程序處理與狀態機電路設計,第九章,儒林圖書公司TB061,VHDL數位電路設計實務教本使用QuartusII,Case-when敘述指令,2,Case-when指令本身是敘述組合邏輯的,但它卻必須在Process指令中執行,因此它是序向邏輯指令之一,其語法如下:,Case選擇訊號ISWhen選擇訊號1=敘述命令1;When選擇訊號2=敘述命令2;:WhenOthers=敘述命令N;EndCase;,Case-when敘述指令Example:四對一的多工器設計,3,libraryIEEE;useIEEE.STD_LOGIC_1164.all;ENTITYmux4to1_caseISPORT(S:INSTD_LOGIC_VECTOR(1downto0);D0,D1,D2,D3:INSTD_LOGIC;Y:OUTSTD_LOGIC);ENDmux4to1_case;,ARCHITECTUREaOFmux4to1_caseISBEGINprocess(S)BeginCaseSISWhen00=YYYY=D3;EndCase;EndProcess;ENDa;,Case-when敘述指令Example:一對四的解多工器設計,4,libraryIEEE;useIEEE.STD_LOGIC_1164.all;ENTITYdemux1to4_caseISPORT(data:INSTD_LOGIC;S:INSTD_LOGIC_VECTOR(1downto0);D0,D1,D2,D3:OUTSTD_LOGIC);ENDdemux1to4_case;,ARCHITECTUREaOFdemux1to4_caseISBEGINprocess(S,data)BeginD0D0D1D2D3=data;EndCase;EndProcess;ENDa;,Case-when敘述指令Example:JK正反器設計,5,libraryieee;useieee.std_logic_1164.all;entityJK_ffisport(clk:instd_logic;J,K:instd_logic;rst:instd_logic;Q,Qbar:outstd_logic);endJK_ff;architectureaofJK_ffissignaltemp:std_logic;signalx:std_logic_vector(1downto0);beginx=J,process(clk,rst)beginif(rst=1)thentemptemptemptempnull;endcase;endif;endprocess;Q=temp;QbarFFFFFFFFFFFFFpresent_state:=110;WHEN110=present_state:=100;WHEN100=present_state:=011;WHEN011=present_state:=010;WHEN010=present_state:=000;WHENOTHERS=present_state:=000;ENDCASE;endif;op=present_state;ENDPROCESS;ENDa;,ENTITYmoore_3ISPORT(CLK:INSTD_LOGIC;OP:OUTstd_logic_vector(2downto0);ENDmoore_3;,Assignmentstatement,Variablename,狀態機(StateMachine)電路設計Example:計數器設計,11,ARCHITECTUREaOFmoore_ssISsignalop:std_logic_vector(2downto0);BEGINPROCESS(clk)BEGINIFreset=1thenopopopopopopifx=1thenpresent_state:=011;elsepresent_state:=000;endif;WHEN011=ifx=1thenpresent_state:=010;elsepresent_state:=001;endif;,狀態機(StateMachine)電路設計Example:計數器設計(續),13,WHEN010=ifx=1thenpresent_state:=110;elsepresent_state:=011;endif;WHEN110=ifx=1thenpresent_state:=111;elsepresent_state:=010;endif;WHEN111=ifx=1thenpresent_state:=101;elsepresent_state:=110;endif;WHEN101=ifx=1thenpresent_state:=100;elsepresent_state:=111;endif;,WHEN100=ifx=1thenpresent_state:=000;elsepresent_state:=101;endif;WHENothers=ifx=1thenpresent_state:=000;elsepresent_state:=000;endif;ENDCASE;endif;opIFX=0THENnext_stateIFX=0THENnext_state=s3;ELSEnext_state=s2;ENDIF;OPIFX=0THENnext_stateIFX=0THENnext_state=s3;ELSEnext_state=s0;ENDIF;OP=0;ENDCASE;ENDPROCESSstate_comp;state_clocking:PROCESS(CLK)BEGINIFCLKEVENTANDCLK=1THENpresent_stateIFX=0THENnext_state=s0;ELSEnext_state=s1;ENDIF;IFX=0THENop=0;ELSEopIFX=0THENnext_stateIFX=0THENnext_state=s2;ELSEnext_state=s3;ENDIF;IFX=0THENop=0;ELSEopIFX=0THENnext_state=s3;ELSEnext_state=s0;ENDIF;IFX=0THENop=0;ELSEop=0;ENDIF;ENDCASE;ENDPROCESSstate_comp;state_clocking:PROCESS(CLK)BEGINIFCLKEVENTANDCLK=1THENpresent_state=next_state;ENDIF;ENDPROCESSstate_clocking;ENDa;,EXAMPLE:能偵測輸入位元序列之Moore狀態機設計一,22,功能說明:狀態機在不斷輸入的串入位元X出現1001字串時,能夠辨認輸入值為1001並設定輸出值為1,且該值能夠一直保持為1,直到該狀態機被重置(Reset)為止,其他狀況狀態機的輸出值均為0。,EXAMPLE:能偵測輸入位元序列之Moore狀態機設計二,23,功能說明:此狀態機在輸入串列位元X出現1011字串時,能夠辨認輸入為1011而設定輸出值為1,但與上例不同的是它的輸出值並不是一直維持為1;舉例來說,當輸出序列為“.1011011.”時,它的輸出值應為“.0001001.”。,LOOP敘述,24,FOR-LOOP敘述,While-Loop敘述,LOOP敘述,25,單純的Loop敘述,NEXT、EXIT、NULL敘述,26,NEXT敘述:NEXT敘述的目的是用來中斷某次迭代的迴圈運算,而直接跳到下一次迴圈的開頭重新執行迴圈的運算;在某些時候若我們需要直接跳出迴圈時,就可以使用EXIT敘述來完成。例如:,NEXT、EXIT、NULL敘述,27,EXIT敘述:當程式執行發生重大錯誤或是所有程序早已執行完畢時,使用EXIT敘述可以用來中斷整個迴圈敘述。例如:,NEXT、EXIT、NULL敘述,28,NULL敘述:NULL敘述就是空敘述,維持電路原來的運作狀況。例如:,以For-Loop指令敘述完成一個四位元加法器的設計,29,architectureaofFulladderisbeginprocess(a,b,ci)variablesum:bit_vector(3downto0):=0000;variablecarry:bit:=0;begincarry:=ci;foriin0to3loopsum(i):=a(i)xorb(i)xorcarry;carry:=(a(i)andb(i)or(a(i)andcarry)or(b(i)andcarry);endloop;s=sum;co=carry;endprocess;enda;,LibraryIEEE;useIEEE.std_logic_1164.all;entityFulladderISport(a,b:inbit_vector(3downto0);ci:inbit;co:outbit;s:outbit_vector(3downto0);endfulladder;,以For-Loop指令敘述完成一個四位元移位暫存器的設計,30,architectureaofshift4issignaltemp:std_logic_vector(3downto0);beginprocess(clk)beginIFclkeventandclk=1thentemp(3)=data;ForIIN1to3LOOPtemp(3-I)=temp(4-I);ENDLOOP;ENDIF;endprocess;Q=temp;enda;,LibraryIEEE;useIEEE.std_logic_1164.all;entityshift4ISport(data,clk:instd_logic;Q:outstd_logic_vector(3downto0);endshift4;,偶同位元產生器及檢查器,31,在四位元的資料後面加上同位元以形成五位元的偶同位元系統:,110111011111111110000000000100010001,偶同位元產生器,32,LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYeven_parityisPORT(D:INStd_Logic_Vector(3downto0);Z:OUTStd_Logic_Vector(4downto0);ENDeven_parity;,ARCHITECTUREaOFeven_parityISBEGINProcess(D)VariableTemp:Std_Logic;BeginTemp:=0;ForIIn0to3LoopTemp:=TempXORD(I);EndLoop;Z=D,偶同位元檢查器,33,ARCHITECTUREaOFeven_parity_checkISBEGINProcess(D)VariableTemp:Std_Logic;Begi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 青海地区中储粮2025秋招笔试性格测评题专练及答案
- 国家能源仙桃市2025秋招面试典型题目及答案
- 张家界市中石油2025秋招面试半结构化模拟题及答案机械与动力工程岗
- 国家能源滁州市2025秋招半结构化面试模拟30问及答案
- 中国移动大同市2025秋招笔试行测题库及答案综合管理类
- 中国广电绵阳市2025秋招企业文化50题速记
- 2025年健康管理师考试试题及答案
- 辽阳市中储粮2025秋招综合管理岗高频笔试题库含答案
- 聊城市中石油2025秋招笔试英语专练题库及答案
- 忻州市中储粮2025秋招机电维修岗高频笔试题库含答案
- 2026年高考作文备考训练之“自我接纳-自我认知-自我超越”作文讲评
- 2025年河北石家庄交通投资发展集团有限责任公司公开招聘操作类工作人员336人考试参考题库及答案解析
- 明清传奇小说
- 荐五年级上册第三单元习作猎人海力布故事缩写两个基本方法
- 初中生物学教材解读人教八年级上册生物圈中的其他生物江艾佳细菌八年级上册生物
- GA 1809-2022城市供水系统反恐怖防范要求
- 2022年全国工会财务知识大赛参考题库精简600题(含各题型)
- GB/T 2072-2007镍及镍合金带材
- GB/T 13460-2016再生橡胶通用规范
- 基础观感验收自评报告
- 班级管理(第3版)教学课件汇总全套电子教案(完整版)
评论
0/150
提交评论