版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VHDL語言語言組合邏輯電路設計
一、邏輯門電路設計例1:用數據流描述方式設計一個4輸入“與或非”邏輯門LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYyhf4IS PORT(A,B,C,D: INSTD_LOGIC; Y: OUTSTD_LOGIC);ENDyhf4;ARCHITECTUREdata_flowOFyhf4ISBEGIN Y<=NOT((AANDB)OR(CANDD));ENDdata_flow;請畫出電路圖例2:設計一雙向8位匯流排驅動器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYqd8IS PORT( A,B: INOUTSTD_LOGIC_VECTOR(7DOWNTO0); EN,DIR:INSTD_LOGIC);ENDqd8;ARCHITECTUREbehaviorOFqd8ISSIGNALAOUT,BOUT:STD_LOGIC_VECTOR(7DOWNTO0);BEGINAB:PROCESS(A,EN,DIR) IF((EN=‘0’)AND(DIR=‘1’)THEN BOUT<=A; ELSE BOUT<=“ZZZZZZZZ”; ENDIF;B<=BOUT;ENDPROCESSAB;為什麼定義信號?BA:PROCESS(B,EN,DIR) IF((EN=‘0’)AND(DIR=‘0’)THEN AOUT<=B; ELSE AOUT<=“ZZZZZZZZ”; ENDIF;ENDPROCESSBA;A<=AOUTENDbehavior;例2:設計一雙向8位匯流排驅動器二編碼器設計例1:設計8-3優先權編碼器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYbmq83IS PORT(D: INSTD_LOGIC_VECOR(7DOWNTO0); Y: OUTSTD_LOGIC_VECTOR(2DOWNTO0));ENDbmq83;ARCHITECTUREbehaviorOFbmq83ISBEGINPROCESS(D) BEGIN IFD(7)=‘0’THENY<=“000”; ELSIFD(6)=‘0’THENY<=“001”; ELSIFD(5)=‘0’THENY<=“010”; ELSIFD(4)=‘0’THENY<=“011”; ELSIFD(3)=‘0’THENY<=“100”; ELSIFD(2)=‘0’THENY<=“101”; ELSIFD(1)=‘0’THENY<=“110”; ELSIFD(0)=‘0’THENY<=“111”; ELSY<=“XXX”;ENDPROCESS;ENDbehavior;該描述具有優先順序三解碼器設計例1:設計3-8線解碼器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYymq83IS PORT(A,B,C: INSTD_LOGIC; Y:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDymq83;請注意數據類型的聲明ARCHITECTUREbehaviorOFymq83ISSIGNALINDATA:STD_LOGIC_VECTOR(2DOWNTO0);BEGININDATA<=C&B&A; PROCESS(INDATA) BEGIN CASEINDATAIS WHEN“000”=>Y<=“11111110”; WHEN“001”=>Y<=“11111101”; WHEN“010”=>Y<=“11111011”; WHEN“011”=>Y<=“11110111”; WHEN“100”=>Y<=“11101111”; WHEN“101”=>Y<=“11011111”; WHEN“110”=>Y<=“10111111”; WHEN“111”=>Y<=“01111111”; WHENOTHERS=>Y<=“XXXXXXXX”; ENDCASE;ENDPROCESS;ENDbehavior;該描述不具有優先順序例1:設計3-8線解碼器解碼器設計四、運算器設計例1:設計4位二進位加法器數據類型必須一致才能賦值LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYjfq4IS PORT(a,b: INSTD_LOGIC_VECOR(3DOWNTO0); sum: OUTSTD_LOGIC_VECTOR(4DOWNTO0));ENDjfq4;ARCHITECTUREbehaviorOFjfq4ISBEGINPROCESS(a,b) BEGIN sum<=(‘0’&a)+(‘0’&b);ENDPROCESS;ENDbehavior;例2:設計8位整數加法器將數據類型轉換為一致LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYjfq8IS PORT(op1,op2:INUNSIGNED(3DOWNTO0); result: OUTINTEGER);ENDjfq8;ARCHITECTUREbehaviorOFjfq8ISBEGINresult<=CONV_INTEGER(OP1+OP2);ENDbehavior;四、運算器設計五、奇偶校驗電路設計例1:設計9位奇偶校驗電路,輸入數據中“1”的個數為奇數時輸出為“0”,否則輸出為“1”。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYjou9IS PORT(a: INSTD_LOGIC_VECTOR(8DOWNTO0); y: OUTSTD_LOGIC);ENDjou9;ARCHITECTUREbehaviorOFymq83ISBEGINPROCESS(a) VARIABLEtemp:STD_LOGIC;BEGINtemp:=1;FORiIN0TO8LOOPtemp:=tempXORa(i);ENDLOOP;ENDPROCESS;y<=temp;ENDbehavior;能否定義為信號?例1:設計9位奇偶校驗電路,輸入數據中“1”的個數為奇數時輸出為“0”,否則輸出為“1”。奇偶校驗電路設計六、已知真值表邏輯設計方法例1:設計4選1數據選擇器。方法一:採用CASE語句LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYxzq4_1IS PORT(a,b: INSTD_LOGIC; i0,i1,i2,i3: INSTD_LOGIC; f: OUTSTD_LOGIC);ENDxzq4_1;ARCHITECTUREbehaviorOFymq83ISSIGNALsel:STD_LOGIC_VECTOR(1DOWNTO0);BEGIN
sel<=B&A;PROCESS(sel) BEGIN CASEselIS WHEN“00”=>F<=i0; WHEN“01”=>F<=i1; WHEN“10”=>F<=i2; WHEN“11”=>F<=i3; WHENOTHERS=>NULL; ENDCASE;ENDbehavior;為什麼有OTHERS?已知真值表邏輯設計方法方法二:採用條件信號代入語句ARCHITECTUREbehaviorOFymq83ISSIGNALsel:STD_LOGIC_VECTOR(1DOWNTO0);BEGIN
sel<=B&A; f<=i0WHENsel=“00”ELSE i1WHENsel=“01”ELSE i2WHENsel=“10”ELSE i3WHENsel=“11”ELSE ‘X’;ENDbehavior;並行or順序描述?已知真值表邏輯設計方法方法三:採用IF語句ARCHITECTUREbehaviorOFymq83ISSIGNALsel:STD_LOGIC_VECTOR(1DOWNTO0);BEGIN
sel<=B&A;
PROCESS(sel) BEGIN IFsel=“00”THENf<=i0; ELSIFsel=“01”THENf<=i1; ELSIFsel=“10”THENf<=i2; ELSIFsel=“11”THENf<=i3; ENDIF; ENDPROCESSENDbehavior;有無優先順序?已知真值表邏輯設計方法方法四:採用選擇信號代入語句ARCHITECTUREbehaviorOFymq83ISSIGNALsel:STD_LOGIC_VECTOR(1DOWNTO0);BEGIN
sel<=B&A; WITHselSELECT f<=i0WHENsel=“00” i1WHENsel=“01” i2WHENsel=“10” i3WHENsel=“11” ‘X’WHENOTHERS;ENDbehavior;並行or順序描述?已知真值表邏輯設計方法七、已知邏輯運算式設計方法例1:設計1位全加器。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYqjq1IS PORT(A,B,C,CIN: INSTD_LOGIC; SUM,COUT: OUTSTD_LOGIC);ENDqjq1;ARCHITECTUREdata_flowOFqjq1ISBEGINPROCESS(A,B,CIN)BEGINCOUT<=(AANDB)OR(AANDCIN)OR(BANDCIN);ENDPROCESS;SUM<=AXORBXORCIN;ENDdata_flow;注意優先順序八、已知邏輯電路設計方法例1:已知2-4線解碼器電路。請用數據流的方式設計LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYymq24IS PORT(A0,A1: INSTD_LOGIC; Y0,Y1,Y2,Y3: OUTSTD_LOGIC);ENDymq24;ARCHITECTUREdata_flowOFymq24ISBEGIN PROCESS(A0,A1) BEGIN Y0<= Y1<= Y2<= Y3<= ENDPROCESS;ENDdata_flow; Y0<=NOT((NOTA1)AND(NOTA0)); Y1<=NOT((NOTA1)ANDA0); Y2<=NOT(A1AND(NOTA0)); Y3<=NOT(A1ANDA0);已知邏輯電路設計方法L1L2L3L4添加中間信號已知邏輯電路設計方法ARCHITECTUREdataflowOFymq24IS COMPONENTGINV PORT(A:INSTD_LOGIC; C:OUTSTD_LOGIC); ENDCOMPONENT; COMPONENTGNAND2 PORT(A,B:INSTD_LOGIC; C:OUTSTD_LOGIC); ENDCOMPONENT; SIGNALL1,L2,L3,L4:STD_LOGIC;BEGIN
U1:GINVPORTMAP(A0,L1); U2:GINVPORTMAP(A1,L
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个税征管标准化模拟题库卷含完整答案
- 山东公务员行测历年真题(附答案)
- 市政绿化仿真模拟摸底题库卷含完整答案
- 行政单位会计仿真模拟摸底题库卷含完整答案
- 放射防护全真模拟冲刺题库卷含完整答案
- 行政单位决算摸底测评检测卷含完整答案
- 护理专业护理与跨文化护理
- 头部受伤的家庭急救处理
- 产后疼痛管理方法
- 晚期乳腺癌指南骨转移更新总结2026
- 护理学临床实习手册(2025版)
- GB/T 44980-2024冻虾滑
- DB3301T 0328-2020 杭州12345 政务热线服务规范
- TSG 07-2019电梯安装修理维护质量保证手册程序文件制度文件表单一整套
- 风电场、一次调频技术方案
- 《新能源汽车动力电池及充电管理》课件-任务10 充电系统认知
- 医院培训课件:《中暑的预防与急救》
- 第六届全国农业行业职业技能大赛(农机驾驶操作员)理论考试题库(含答案)
- 2023年8月26日全国事业单位联考A类《职业能力倾向测验》试题及答案
- GB/T 35081-2018机械安全GB/T 16855.1与GB/T 15706的关系
- GA/T 72-2013楼寓对讲电控安全门通用技术条件
评论
0/150
提交评论