版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、CPLD/FPGACPLD/FPGA的開發(fā)與應(yīng)用的開發(fā)與應(yīng)用第第8 8章章 VHDLVHDL應(yīng)用舉例應(yīng)用舉例n帶權(quán)表決器帶權(quán)表決器n奇數(shù)分頻器設(shè)計(jì)奇數(shù)分頻器設(shè)計(jì)n數(shù)控分頻器設(shè)計(jì)數(shù)控分頻器設(shè)計(jì)n計(jì)數(shù)計(jì)數(shù)/譯碼驅(qū)動(dòng)譯碼驅(qū)動(dòng)/掃描顯示電路掃描顯示電路n串串-并轉(zhuǎn)換與并并轉(zhuǎn)換與并-串轉(zhuǎn)換串轉(zhuǎn)換n模式可控移位寄存器模式可控移位寄存器n數(shù)字序列的產(chǎn)生與檢測數(shù)字序列的產(chǎn)生與檢測n多功能端口設(shè)計(jì)多功能端口設(shè)計(jì)n數(shù)字基帶編碼設(shè)計(jì)數(shù)字基帶編碼設(shè)計(jì)帶權(quán)表決器的帶權(quán)表決器的VHDL設(shè)計(jì)設(shè)計(jì)奇數(shù)分頻器的奇數(shù)分頻器的VHDL設(shè)計(jì)設(shè)計(jì)clkinclkoutf p_11inst奇數(shù)分頻器仿真波形奇數(shù)分頻器仿真波形分頻系數(shù)分頻
2、系數(shù)=11數(shù)控分頻器的數(shù)控分頻器的VHDL設(shè)計(jì)設(shè)計(jì)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FPQ IS PORT ( CLKIN : IN STD_LOGIC; D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); CLKOUT : OUT STD_LOGIC );END FPQ;ARCHITECTURE one OF FPQ IS SIGNAL FULL : STD_LOGIC;BEGIN P1: PROCESS(CLKIN) VARIABLE CNT8
3、 : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN IF CLKINEVENT AND CLKIN = 1 THEN IF CNT8 = 11111111 THEN CLKIND7.0CLKOUTfpqinst CNT8 := D; -當(dāng)當(dāng)CNT8CNT8計(jì)數(shù)計(jì)滿時(shí),輸入數(shù)據(jù)計(jì)數(shù)計(jì)滿時(shí),輸入數(shù)據(jù)D D被同步預(yù)置給計(jì)數(shù)器被同步預(yù)置給計(jì)數(shù)器CNT8CNT8 FULL = 1; -同時(shí)使溢出標(biāo)志信號(hào)同時(shí)使溢出標(biāo)志信號(hào)FULLFULL輸出為高電平輸出為高電平 ELSE CNT8 := CNT8 + 1; -否則繼續(xù)作加否則繼續(xù)作加1 1計(jì)數(shù)計(jì)數(shù) FULL = 0; -且輸出溢
4、出標(biāo)志信號(hào)且輸出溢出標(biāo)志信號(hào)FULLFULL為低電平為低電平 END IF; END IF; END PROCESS P1 ; P2: PROCESS(FULL) VARIABLE CNT2 : STD_LOGIC; BEGIN IF FULLEVENT AND FULL = 1 THEN CNT2 := NOT CNT2; -如果溢出標(biāo)志信號(hào)如果溢出標(biāo)志信號(hào)FULLFULL為高電平,輸出取反為高電平,輸出取反 CLKOUT 88* *25Hz)25Hz),實(shí)現(xiàn)掃描顯示的目的。,實(shí)現(xiàn)掃描顯示的目的。 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IE
5、EE.STD_LOGIC_UNSIGNED.ALL;ENTITY SCAN_LED IS PORT ( CLK : IN STD_LOGIC; -掃描時(shí)鐘掃描時(shí)鐘信號(hào)輸入信號(hào)輸入 A1,A2,A3,A4,A5,A6,A7,A8 : IN INTEGER RANGE 0 TO 15; SG: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); -段控制信號(hào)輸出段控制信號(hào)輸出(g-a)(g-a) BT: OUT STD_LOGIC_VECTOR(8 DOWNTO 1));-位控制信號(hào)輸出位控制信號(hào)輸出(k8-k1)(k8-k1) END SCAN_LED;ARCHITECTURE
6、one OF SCAN_LED ISSIGNAL CNT8:STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL A :INTEGER RANGE 0 TO 15;BEGINP1:PROCESS( CNT8 ) BEGIN 掃描譯碼顯示電路的掃描譯碼顯示電路的VHDLVHDL設(shè)計(jì)設(shè)計(jì)CLKA13.0A23.0A33.0A43.0A53.0A63.0A73.0A83.0SG6.0BT8.1SCAN_LEDinst CASE CNT8 IS WHEN 000 = BT = 00000001 ; A BT = 00000010 ; A BT = 00000100 ; A BT =
7、 00001000 ; A BT = 00010000 ; A BT = 00100000 ; A BT = 01000000 ; A BT = 10000000 ; A NULL ; END CASE ; END PROCESS P1; P2:PROCESS(CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN CNT8 SG SG SG SG SG SG SG SG SG SG SG SG SG SG SG SG NULL ; END CASE ; END PROCESS P3; END one; 共陰數(shù)碼管及其電路共陰數(shù)碼管及其電路 CASE A IS WHEN
8、 0 = SG SG SG SG SG SG SG SG SG SG SG SG SG SG SG SG NULL ; END CASE ; Library ieee;Use ieee.std_logic_1164.all;Entity c_b isPort (clr,din,clk: in std_logic; y: out std_logic_vector(4 downto 0);End c_b;Architecture behav of c_b issignal tem:std_logic_vector(5 downto 0);beginp1: process(clk) begin if
9、 (clkevent and clk=1) thenif clr=0 thentem=000000;elsif tem(0)=0 thentem=din & 01111;elsetem=din & tem(5 downto 1);end if;end if;end process p1;p2: process(tem) begin if tem(0)=0 then y=tem(5 downto 1); else y CY = REG(7); REG(7 DOWNTO 1) = REG(6 DOWNTO 0); REG(0) CY = REG(7); REG(7 DOWNTO 1) = REG(
10、6 DOWNTO 0); REG(0) CY = REG(0); REG(6 DOWNTO 0) = REG(7 DOWNTO 1); REG(7) CY = REG(0); REG(6 DOWNTO 0) = REG(7 DOWNTO 1); REG(7) REG(7 DOWNTO 0) REG = REG ; CY = CY ; -保持保持 END CASE; END IF; END PROCESS;QB(7 DOWNTO 0) = REG(7 DOWNTO 0); CN = CY; -移位后輸出移位后輸出 END BEHAV; -帶進(jìn)位左移帶進(jìn)位左移-自循環(huán)左移自循環(huán)左移-自循環(huán)右移自循
11、環(huán)右移 -帶進(jìn)位右移帶進(jìn)位右移(接上頁)(接上頁)模式可控移位寄存器仿真波形模式可控移位寄存器仿真波形(MD=001) 數(shù)字序列信號(hào)發(fā)生器的數(shù)字序列信號(hào)發(fā)生器的VHDL設(shè)計(jì)設(shè)計(jì)cpresyxxinst數(shù)字序列信號(hào)產(chǎn)生波形數(shù)字序列信號(hào)產(chǎn)生波形當(dāng)當(dāng)reg、n定義為變量時(shí),有何不同?請(qǐng)修改完善!定義為變量時(shí),有何不同?請(qǐng)修改完善!數(shù)字序列檢測器的數(shù)字序列檢測器的VHDL設(shè)計(jì)設(shè)計(jì)cpcxycxjcinst數(shù)字序列檢測數(shù)字序列檢測仿真波形仿真波形數(shù)字序列檢測數(shù)字序列檢測State MachinaState Machina Viewer Viewer分析波形,找出問題,修改完善!分析波形,找出問題,修改完
12、善!8位并行數(shù)據(jù)位并行數(shù)據(jù)“0”個(gè)數(shù)檢測器的個(gè)數(shù)檢測器的VHDL設(shè)計(jì)設(shè)計(jì)clkclrd7.0q2.0zerojcinst8 8位并行數(shù)據(jù)位并行數(shù)據(jù)“0”0”個(gè)數(shù)檢測仿真波形個(gè)數(shù)檢測仿真波形library ieee;use ieee.std_logic_1164.all;entity tri_state isport (control : in std_logic; in1: in std_logic_vector(7 downto 0); q : inout std_logic_vector(7 downto 0); x : out std_logic_vector(7 downto 0);e
13、nd tri_state;architecture body_tri of tri_state isbeginprocess(control,q,in1)beginif (control = 0) then x = q ; else q = in1; x=ZZZZZZZZ ;end if;end process;end body_tri; 雙向端口的雙向端口的VHDL設(shè)計(jì)設(shè)計(jì)1【例【例5-13】controlin17.0 x7.0q7.0qqinst 1.0s 1.5s 2.0s 2.5s 3.0s 3.5s 雙向端口仿真波形雙向端口仿真波形1 1雙向端口綜合結(jié)果雙向端口綜合結(jié)果1 1libr
14、ary ieee;use ieee.std_logic_1164.all;entity tri_state isport (control : in std_logic; in1: in std_logic_vector(7 downto 0); q : inout std_logic_vector(7 downto 0); x : out std_logic_vector(7 downto 0);end tri_state;architecture body_tri of tri_state isbeginprocess(control,q,in1)beginif (control = 0)
15、 then x = q ; q=ZZZZZZZZ ; else q = in1; x=ZZZZZZZZ ; ;end if;end process;end body_tri; 雙向端口的雙向端口的VHDL設(shè)計(jì)設(shè)計(jì)2【例【例5-14】controlin17.0 x7.0q7.0qqinst 1.0s 1.5s 2.0s 2.5s 3.0s 3.5s 雙向端口仿真波形雙向端口仿真波形2 2雙向端口綜合結(jié)果雙向端口綜合結(jié)果2 2【例【例5-15】 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY tri1 IS port ( input3, input2
16、, input1, input0 : IN STD_LOGIC_VECTOR (7 DOWNTO 0); enable : IN STD_LOGIC_VECTOR (1 DOWNTO 0); output : OUT STD_LOGIC_VECTOR (7 DOWNTO 0);END tri1 ; ARCHITECTURE multiple_drivers OF tri1 ISBEGINPROCESS(enable,input3, input2, input1, input0 ) BEGIN IF enable = 00 THEN output = input3 ; ELSE output Z
17、); END IF ; IF enable = 01 THEN output = input2 ; ELSE output Z); END IF ; (接下頁)(接下頁) 三態(tài)總線電路的三態(tài)總線電路的VHDL設(shè)計(jì)設(shè)計(jì)1input37.0input27.0input17.0input07.0enable1.0output7.0tri1inst(接上頁)(接上頁) IF enable = 10 THEN output = input1 ; ELSE output Z); END IF ; IF enable = 11 THEN output = input0 ; ELSE output Z); E
18、ND IF ; END PROCESS;END multiple_drivers; 三態(tài)總線綜合結(jié)果三態(tài)總線綜合結(jié)果1 1【例【例5-16】library ieee;use ieee.std_logic_1164.all;entity tri2 isport ( ctl : in std_logic_vector(1 downto 0); datain1, datain2,datain3, datain4 : in std_logic_vector (7 downto 0); q : out std_logic_vector(7 downto 0) );end tri2;architectur
19、e body_tri of tri2 isbegin q Z) ; q Z) ; q Z) ; q Z) ;end body_tri; 三態(tài)總線電路的三態(tài)總線電路的VHDL設(shè)計(jì)設(shè)計(jì)2注:例注:例5-15可用可用4個(gè)并行的個(gè)并行的process語句正確設(shè)計(jì)語句正確設(shè)計(jì)ctl1.0datain17.0datain27.0datain37.0datain47.0q7.0tri2inst三三態(tài)態(tài)總總線線綜綜合合結(jié)結(jié)果果2 2ttttttttt01000011000001010二進(jìn)制代碼(a)(b)(c)(d)(e)(f)(g)(h)(i)數(shù)數(shù)字字基基帶帶信信號(hào)號(hào)的的常常用用碼碼型型(a)(a) 單極性
20、單極性(NRZ)(NRZ)碼碼 ;(b) (b) 雙極性雙極性(NRZ)(NRZ)碼;碼;(c) (c) 單極性單極性(RZ)(RZ)碼;碼; (d) (d) 雙極性雙極性(RZ)(RZ)碼;碼;(e) (e) 差分碼;差分碼;(f) (f) 交替極性碼交替極性碼(AMI)(AMI); (g) (g) 三階高密度雙極性三階高密度雙極性碼碼(HDB(HDB3 3) );(h) (h) 分相碼;分相碼;( (i i) ) 信號(hào)反轉(zhuǎn)碼信號(hào)反轉(zhuǎn)碼(CMI) (CMI) 數(shù)字序列數(shù)字序列AMI編碼設(shè)計(jì)編碼設(shè)計(jì) AMI AMI碼是傳號(hào)交替反轉(zhuǎn)碼,在碼是傳號(hào)交替反轉(zhuǎn)碼,在AMIAMI碼中,二進(jìn)制碼碼中,二進(jìn)制碼0 0用用0 0電平表示,二進(jìn)制碼電平表示,二進(jìn)制碼1 1交替地用交替地用+1+1和和-1-1表示表示 。其編碼規(guī)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年經(jīng)濟(jì)理論與實(shí)務(wù)操作模擬試題
- 2026年行業(yè)職業(yè)技能筆試模擬卷
- 2026年英語四六級(jí)考試預(yù)測模擬題聽力閱讀寫作全覆蓋
- 2026年人工智能客服系統(tǒng)設(shè)計(jì)與實(shí)踐專業(yè)題目
- 2026年工業(yè)領(lǐng)域人才招聘測試模擬題及答案解析
- 危重病人的疼痛管理
- 孕期營養(yǎng)指導(dǎo)要點(diǎn)
- 2026年九江市八里湖新區(qū)國有企業(yè)面向社會(huì)公開招聘工作人員崗位計(jì)劃調(diào)整參考考試試題及答案解析
- 2026年曲靖醫(yī)學(xué)高等??茖W(xué)校高職單招職業(yè)適應(yīng)性測試備考試題及答案詳細(xì)解析
- 2026年南充科技職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試備考題庫及答案詳細(xì)解析
- 2025年黨員民主評(píng)議個(gè)人總結(jié)2篇
- 果園合伙經(jīng)營協(xié)議書
- 2026中國民營醫(yī)院集團(tuán)化發(fā)展過程中的人才梯隊(duì)建設(shè)專題報(bào)告
- 物業(yè)管理經(jīng)理培訓(xùn)課件
- 員工解除競業(yè)協(xié)議通知書
- 【語文】太原市小學(xué)一年級(jí)上冊(cè)期末試題(含答案)
- 儲(chǔ)能電站員工轉(zhuǎn)正述職報(bào)告
- 靜脈炎處理方法
- 不銹鋼護(hù)欄施工方案范文
- 商業(yè)地產(chǎn)物業(yè)管理運(yùn)營手冊(cè)
- 2025及未來5年中國天然植物粉市場調(diào)查、數(shù)據(jù)監(jiān)測研究報(bào)告
評(píng)論
0/150
提交評(píng)論