【正文】
圖 共陰數(shù)碼管及其電路 三、實(shí)驗(yàn)內(nèi)容 編程實(shí)現(xiàn) 7 段數(shù)碼顯示譯碼器設(shè)計(jì); 對(duì) 7 段數(shù)碼顯示譯碼器設(shè)計(jì)進(jìn)行編輯、仿真,給出其所有信號(hào)的時(shí)序仿真波形; 參考程序: LIBRARY IEEE 。但為了簡(jiǎn)化過(guò)程,首先完成 7 段BCD 碼譯碼器的設(shè)計(jì)。 十進(jìn)制計(jì)數(shù)器 仿真波形 兩位十進(jìn)制計(jì)數(shù)器 仿真波形 兩位十進(jìn)制計(jì)數(shù)器 管腳鎖定 實(shí)驗(yàn)?zāi)J剑?NO: 5 設(shè)計(jì)實(shí)體 I/O 標(biāo)識(shí) I/O 來(lái)源 /去向 信號(hào)名 芯片管腳序號(hào) enbin 鍵 1 PIO0 8 clrin 鍵 2 PIO1 9 clkin CLOCK0 CLOCK0 54 coutout 二極管 D1 PIO8 20 outlow[3..0] 數(shù)碼管 1 PIO16~PIO19 30~33 outhigh[3..0] 數(shù)碼管 2 PIO20~PIO23 36~39 實(shí)驗(yàn) 三 7 段數(shù)碼顯示譯碼器設(shè)計(jì) 一、實(shí) 驗(yàn)?zāi)康模? 學(xué)習(xí) 7 段數(shù)碼顯示譯碼器設(shè)計(jì); 學(xué)習(xí) VHDL 的多層次設(shè)計(jì)方法。 u2 : t10 PORT MAP(clk=a, clr=clrin, enb=enbin, outy=outhigh, cout=coutout)。 SIGNAL a : STD_LOGIC。 cout : OUT STD_LOGIC)。 enb : IN STD_LOGIC。 ARCHITECTURE one OF t100 IS COMPONENT t10 PORT (clk : IN STD_LOGIC。 coutout : OUT STD_LOGIC)。 outlow : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。 clrin : IN STD_LOGIC。 USE 。 兩位十進(jìn)制計(jì)數(shù)器 () LIBRARY IEEE。 END PROCESS。 outy = cqi 。 END IF。 ELSE cqi := 0000。139。139。 ELSIF CLK39。139。 ARCHITECTURE behav OF t10 IS BEGIN PROCESS(clk, clr, enb) VARIABLE cqi : STD_LOGIC_VECTOR(3 DOWNTO 0)。 cout : OUT STD_LOGIC)。 enb : IN STD_LOGIC。 ENTITY t10 IS PORT (clk : IN STD_LOGIC。 USE 。設(shè)計(jì) 有時(shí)鐘使能的兩位十進(jìn)制計(jì)數(shù)器 時(shí)要求先設(shè)計(jì)一個(gè)或門和一個(gè) 十進(jìn)制計(jì)數(shù)器 ,再由 十進(jìn)制計(jì)數(shù)器 構(gòu)成 兩位十進(jìn)制計(jì)數(shù)器 。 學(xué)習(xí)時(shí)序電路的設(shè)計(jì)、仿真和硬件測(cè)試,進(jìn) 一步熟悉 VHDL設(shè)計(jì)技術(shù)。 或門 仿真波形 半加器仿真波形 全加器仿真波形 全加器引腳鎖定 實(shí)驗(yàn)芯片: EPF10K20TC1444 選用模式:模式 5 設(shè)計(jì)實(shí)體 I/O 標(biāo)識(shí) I/O 來(lái)源 /去向 結(jié)構(gòu)圖上的信號(hào)名 芯片引腳號(hào) ain 鍵 1 PIO0 8 bin 鍵 2 PIO1 9 cin 鍵 3 PIO2 10 sum 二極管 D1 PIO8 20 cout 二極管 D2 PIO9 21 全加器真值表 ain 0 1 0 1 0 1 0 1 bin 0 0 1 1 0 0 1 1 cin 0 0 0 0 1 1 1 1 sum 0 1 1 0 1 0 0 1 cout 0 0 0 1 0 1 1 1 實(shí)驗(yàn) 二 有時(shí)鐘使能的兩位十進(jìn)制計(jì)數(shù)器 VHDL文本輸入設(shè)計(jì) 一、實(shí)驗(yàn)?zāi)康? 熟悉 Quartus II 軟件的基本使用方法。 u3 : or2a PORT MAP(a=d, b=f, c=cout)。 BEGIN u1 : h_adder PORT MAP(a=ain, b=bin, co=d, so=e)。 END COMPONENT。 COMPONENT or2a PORT (a, b : IN STD_LOGIC。 Co, so : OUT STD_LOGIC)。 END ENTITY f_adder。 ENTITY f_adder IS PORT (ain, bin, cin : IN STD_LOGIC。 1 位二進(jìn)制全加器頂層設(shè)計(jì)描述( ) LIBRARY IEEE。 co = a AND b 。 END ENTITY h_adder。 ENTITY h_adder IS PORT (a, b : IN STD_LOGIC。 半加器描述( ) LIBRARY IEEE。 ARCHITECTURE one OF or2a IS BEGIN c = a OR b 。 c : OUT STD_LOGIC )。 USE 。設(shè)計(jì) 1 位二進(jìn)制全加器時(shí)要求先設(shè)計(jì)一個(gè)或門和一個(gè) 1位二進(jìn)制半加器,再由或門和 1 位二進(jìn)制半加器構(gòu)成 1 位二進(jìn)制全加器。 了解 VHDL 文本輸入設(shè)計(jì)方法。 EDA技術(shù)實(shí)驗(yàn)教案 實(shí)驗(yàn) 一 1 位全加器 VHDL 文本輸入設(shè)計(jì) 一、實(shí)驗(yàn)?zāi)康? 熟悉 Quartus II 軟件的基本使用方法。 熟悉 EDA 實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng)的基本使用方法。 二、實(shí)驗(yàn)內(nèi)容 設(shè)計(jì)并調(diào)試好一個(gè) 1位二進(jìn)制全加器,并用 EDA 實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng)(擬采用的實(shí)驗(yàn)芯片的型號(hào)為 EPF10K20TC144- 4 或 EP1K30TC144- 3)進(jìn)行系統(tǒng)仿真、硬件驗(yàn)證。 三、實(shí)驗(yàn)條件 開(kāi)發(fā)條件: Quartus II 實(shí)驗(yàn)設(shè)備: EDA 實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng)、電腦 擬用芯片: EPF10K20TC144- 4 或 EP1K30TC144- 3 四、實(shí)驗(yàn)設(shè)計(jì) 或門邏輯描述( ) LIBRARY IEEE 。 ENTITY or2a IS PORT (a, b :IN STD_LOGIC。 END ENTITY or2a。 END ARCHITECTURE one。 USE 。 co, so : OUT STD_LOGIC)。 ARCHITECTURE fh1 OF h_adder is BEGIN so = NOT(a XOR (NOT b)) 。 END ARCHITECTURE fh1。 USE 。 Cout, sum : OUT STD_LOGIC )。 ARCHITECTURE fd1 OF f_adder IS COMPONENT h_adder PORT ( a, b : IN STD_LOGIC。 END COMPONENT 。 c : OUT STD_LOGIC)。 SIGNAL d, e, f : STD_LOGIC。 u2 : h_adder PORT MAP(a=e, b=cin, co=f, so=sum)。 END ARCHITECTURE fd1 。 熟悉 EDA 實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng)的基本使用方法。 二、實(shí)驗(yàn)內(nèi)容 設(shè)計(jì)并調(diào)試好一個(gè) 有時(shí)鐘使能的兩位十進(jìn)制計(jì)數(shù)器 ,并用 EDA 實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng)(擬采用的實(shí)驗(yàn)芯片的型號(hào)為 EPF10K20TC144- 4 或 EP1K30TC144- 3)進(jìn)行系統(tǒng)仿真、硬件驗(yàn)證。 三、實(shí)驗(yàn)條件 開(kāi)發(fā)條件: Quartus II 實(shí)驗(yàn)設(shè)備: EDA 實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng)、電腦 擬用芯片: EPF10K20TC144- 4 或 EP1K30TC144- 3 四、實(shí)驗(yàn) 設(shè)計(jì) 十進(jìn)制計(jì)數(shù)器 () LIBRARY IEEE。 USE 。 clr : IN STD_LOGIC。 outy : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。 END t10。 BEGIN IF clr = 39。 THEN cqi := 0000。EVENT AND CLK = 39。 THEN IF enb = 39。 THEN IF cqi1001 THEN cqi := cqi + 1。 END IF。 END IF。 cout=cqi(0) AND (NOT cqi(1)) AND (NOT cqi(2)) AND cqi(3)。 END behav。 USE 。 ENTITY t100 IS PORT (clkin : IN STD_LOGIC。 enbin : IN STD_LOGIC。 outhigh : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。 END ENTITY t100。 clr : IN STD_LOGIC。 outy : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。 END COMPONENT。 BEGIN u1 : t10 PORT MAP(clk=clkin, clr=clrin, enb=enbin, outy=outlow, cout=a)。 END ARCHITECTURE one。 二、實(shí)驗(yàn)原理: 7 段數(shù)碼是純組合電路,通常的小規(guī)模專用 IC,如 74 或 4000 系列的器件只能作十進(jìn)制 BCD碼譯碼,然而數(shù)字系統(tǒng)中的數(shù)據(jù)處理和運(yùn)算都是 2 進(jìn)制的,所以輸出表達(dá)都是 16 進(jìn)制的,為了滿足 16 進(jìn)制數(shù)的譯碼顯示,最方便的方法就是利用譯碼程序在 FPGA/CPLD 中來(lái)實(shí)現(xiàn)。例如輸出為 “1101101”時(shí),數(shù)碼管的 7個(gè)段: g、 f、 e、 d、c、 b、 a 分別接 0、 0、 1; 接有高電平的段發(fā)亮,于是數(shù)碼管顯示“5”。 USE 。 LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ) 。 ARCHITECTURE one OF DECL7S IS BEGIN PROCESS( A ) BEGIN CASE A IS WHEN 0000 = LED7S = 0111111 。 WHEN 0010 = LED7S = 1011011 。 WHEN 0100 = LED7S = 1100110 。 WHEN 0110 = LED7S = 1111101 。 WHEN 1000 = LED7S = 1111111 。 WHEN OTHERS = NULL 。 END PROCESS 。 仿真結(jié)果: 綜合后的 計(jì)數(shù)器和譯碼器連接電路的頂層文件原理圖 : 實(shí)驗(yàn) 四 簡(jiǎn)單組合電路和時(shí)序電路設(shè)計(jì) 一、實(shí)驗(yàn)?zāi)康模? 熟悉 QuartusⅡ的 VHDL 文本設(shè)計(jì)流程全過(guò)程,學(xué)習(xí)簡(jiǎn)單組合電路和時(shí)序電路的設(shè)計(jì)和仿真方法。 2:設(shè)計(jì)觸發(fā)器 (JK),給出程序設(shè)計(jì)、軟件編