數(shù)字系統(tǒng)設(shè)計與實現(xiàn)_第1頁
數(shù)字系統(tǒng)設(shè)計與實現(xiàn)_第2頁
數(shù)字系統(tǒng)設(shè)計與實現(xiàn)_第3頁
數(shù)字系統(tǒng)設(shè)計與實現(xiàn)_第4頁
數(shù)字系統(tǒng)設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩54頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第九章數(shù)字系統(tǒng)設(shè)計與實現(xiàn)

9.1時鐘電路的設(shè)計與實現(xiàn)

9.2UART數(shù)據(jù)接收發(fā)送電路設(shè)計與實現(xiàn)

9.3人機接口電路的設(shè)計與實現(xiàn)

9.48255并行接口電路的設(shè)計與實現(xiàn)9.1時鐘電路的設(shè)計與實現(xiàn)

9.1.1模24計數(shù)器的VHDL設(shè)計

9.1.2模60計數(shù)器的原理圖設(shè)計

9.1.3頂層文件設(shè)計9.1時鐘電路的設(shè)計與實現(xiàn)

數(shù)字系統(tǒng)設(shè)計一般采用自頂向下的層次化設(shè)計方法,在MAX+plusⅡ環(huán)境下可利用層次化設(shè)計方法實現(xiàn)自頂向下的設(shè)計。電路設(shè)計時,分析設(shè)計要求,劃分模塊,進行低層設(shè)計,然后進行頂層設(shè)計的連接。下面以圖形和文本混合輸入為例,設(shè)計一個時鐘電路,時鐘電路由模60計數(shù)器構(gòu)成秒、分電路,模24計數(shù)器構(gòu)成小時電路,生產(chǎn)各模塊的符號文件,最后用時、分、秒模塊構(gòu)成頂層時鐘電路。9.1.1模24計數(shù)器的VHDL設(shè)計

1.實體端口定義模24的計數(shù)器的實體端口定義如下:ENTITYcntm24vIS

PORT(en:INstd_logic;

clr:in

std_logic;

clk:in

std_logic;

cont:out

std_logic;

qh:bufferstd_logic_vector(3downto0);

ql:bufferstd_logic_vector(3downto0));END;輸入端口為計數(shù)使能en、清零clear和時鐘clk,其數(shù)據(jù)類型為std_logic標準邏輯類型;輸出端口cont的數(shù)據(jù)類型為std_logic標準邏輯類型;小時信號qh、ql的數(shù)據(jù)類型為std_logic_vector(3downto0)向量標準邏輯類型。2.模24計數(shù)器VHDL設(shè)計LIBRARYieee; --調(diào)用程序包USEieee.std_logic_1164.ALL;USEieee.std_logic_unsigned.ALL;--------------------ENTITYcntm24vIS --定義實體端口

PORT(en:INstd_logic;

clr:in

std_logic;

clk:in

std_logic;

cont:out

std_logic;

qh:bufferstd_logic_vector(3downto0);

ql:bufferstd_logic_vector(3downto0));END;-----------------------------ARCHITECTUREbehOFcntm24vIS --結(jié)構(gòu)體設(shè)計

BEGINcont<='1'when(qh="0010"andql="0011"anden='1')else'0';

PROCESS(CLK,clr)BEGIN

IF(clr='0')THEN

qh<="0000";

ql<="0000";

elsif(clk'eventandclk='1')then

IF(en='1')THEN

if(ql=3)then

ql<="0000";

if(qh=2)then

qh<="0000";else

qh<=qh+1;endif;else

ql<=ql+1;endif;endif;endif;endprocess;endbeh;完成模24計數(shù)器的設(shè)計,且仿真通過之后,執(zhí)行菜單File下的CreateDefaultSymbol命令,生成符號cntm24v,該符號將成為當前項目庫中的一個元件。9.1.2模60計數(shù)器的原理圖設(shè)計這里采用原理圖輸入方式設(shè)計模60計數(shù)器,輸入信號有計數(shù)使能en、清零clear、時鐘clk;輸出信號有ql0、ql1、ql2、ql3、qh0、qh1、qh2以及進位輸出。調(diào)用庫中已有的元件符號74161、三輸入與非門nand3、非門not等,構(gòu)成符合要求的計數(shù)器,圖9.1是模60計數(shù)器的原理圖。

圖9.1模60計數(shù)器原理圖

9.1.3頂層文件設(shè)計

執(zhí)行菜單File下的建立新文件,文件名為clock.gdf。在clock.gdf空白處雙擊鼠標左鍵,打開Entersymbol對話框選擇調(diào)用的元件,在元件列表區(qū)可看到已經(jīng)生成的兩個元件cntm24和cntm60,調(diào)用cntm24和cntm60,連接構(gòu)成時鐘電路的頂層設(shè)計文件,clock.gdf文件如圖9.2所示。

圖9.2頂層clock.gdf文件對頂層設(shè)計文件clock.gdf進行編譯和仿真,調(diào)整仿真時間和柵格尺寸,觀察仿真波形。在Option菜單下選擇GridSize調(diào)整顯示柵格的大小。在File菜單下選擇EndTime設(shè)置仿真時間。利用左側(cè)工具欄上的波形繪制圖標,可以方便地對波形文件進行編輯,如輸入時鐘信號clk,en和clr設(shè)置為高電平等。波形文件保存為clock.scf,接下來對該文件進行仿真。打開仿真器窗口,單擊Start按鈕,開始仿真,得到如圖9.3所示的仿真波形,觀察時、分、秒之間的進位關(guān)系。選擇芯片,分配引腳,再次進行編譯,正確后將設(shè)計配置到芯片。圖9.3clock.gdf仿真波形完成全部設(shè)計后,在菜單MAX+plusⅡ下選擇HierarchyDisplay命令,顯示clock文件層次結(jié)構(gòu)如圖9.4所示。圖9.4clock.gdf的層次結(jié)構(gòu)

由圖9.4可見,頂層clock.gdf調(diào)用cntm24v符號和cuntm60符號,cntm24v符號是文本編輯生成的符號文件;cuntm60符號是圖形編輯生成的符號文件。符號cntm24v和cuntm60又各自調(diào)用了LPM庫中的宏單元LMP-ADD-SUB:120和74160符號。9.2UART數(shù)據(jù)接收發(fā)送電路設(shè)計與實現(xiàn)9.2.1UART程序設(shè)計9.2.2UART程序仿真9.2UART數(shù)據(jù)接收發(fā)送電路設(shè)計與實現(xiàn)

通用異步數(shù)據(jù)接收發(fā)送方式UART(UniversalAsynchronousReceiverTransmitter)不僅能實現(xiàn)接收發(fā)送方相互之間通訊,同時還能滿足PC機、微處理器等設(shè)備之間的數(shù)據(jù)通信。串行外設(shè)都會用到RS232串行接口,傳統(tǒng)上采用專用的集成電路即UART專用芯片實現(xiàn),如TI、EXAR、EPIC的550、452等系列芯片。有時,人們不需要使用完整的UART的功能,而對于多串口的設(shè)備或需要加密通訊的場合使用UART也不是最佳選擇。如果采用FPGA/CPLD器件,那么就可以將所需要的UART功能集成到FPGA內(nèi)部,使用VHDL集成UADT的核心功能,從而使整個設(shè)計更加緊湊,更小巧、穩(wěn)定、可靠。

分析UART結(jié)構(gòu),可以看出UART主要由數(shù)據(jù)總線接口和控制邏輯、波特率發(fā)生器、發(fā)送和接受等部分組成,各部分間關(guān)系如圖9.5所示。圖9.5UART結(jié)構(gòu)框圖了解UART的基本組成結(jié)構(gòu)后,需要對各部分的功能進行詳細的分析。假定所要設(shè)計的UART功能為:數(shù)據(jù)位7位、8位可選,波特率可選,校驗方式有奇、偶、無等多種方式。1.波特率的設(shè)定UART的接收和發(fā)送可以采用相同的波特率進行,當然也可以實現(xiàn)不同波特率的收發(fā),這里采用相同波特率的收發(fā),波特率可以通過CPU的總線接口進行設(shè)置。假設(shè)UART收發(fā)的每一個數(shù)據(jù)寬度都是波特率發(fā)生器輸出時鐘周期的16倍,假定按照9600bps的波特率進行收發(fā),那么波特率發(fā)生器輸出的時鐘頻率應(yīng)為9600×16Hz。假定系統(tǒng)提供的時鐘為1.8432MHz,那么可以用CPU寫入不同的數(shù)值到波特率保持寄存器,然后用計數(shù)器方式生成所需要的各種波特率,該數(shù)值計算原則是1843200/(16×所期望的波特率)。如果希望獲得9600Hz的波特率,計算數(shù)值為1843200/(16×9600)=12(0CH)。

2.數(shù)據(jù)發(fā)送數(shù)據(jù)發(fā)送過程中,需要解決幾個關(guān)鍵問題:CPU要判斷何時可以向發(fā)送保持寄存器(THR)寫入數(shù)據(jù)?也就是說CPU要寫入數(shù)據(jù)到THR之前必須判斷當前是否可寫?很明顯如果不判斷,發(fā)送的數(shù)據(jù)會出錯,除非CPU寫入THR的頻率低于當前數(shù)據(jù)傳輸?shù)牟ㄌ芈?,這種情況是極少出現(xiàn)的。CPU寫入數(shù)據(jù)到THR后,何時THR的數(shù)據(jù)傳送到發(fā)送移位寄存器(TSR)進行移位?即處理THR和TSR的關(guān)系。數(shù)據(jù)位有7、8位兩種,校驗位有三種,因此發(fā)送的數(shù)據(jù)可能有9、10、11位三種長度,所以需要按照所設(shè)置的傳輸情況分別進行處理。可以通過CPU寫一個端口數(shù)據(jù)設(shè)置數(shù)據(jù)位、校驗方式,發(fā)送和接受根據(jù)該數(shù)據(jù)設(shè)置進行處理。根據(jù)以上分析,UART的數(shù)據(jù)發(fā)送定義如下信號:txhold:數(shù)據(jù)發(fā)送保持信號,標準邏輯向量型:std_logic_vector(0TO7);txreg

:數(shù)據(jù)發(fā)送存儲器,標準邏輯向量型:std_logic_vector(0TO7);txtag2:查找數(shù)據(jù)標志位,標準邏輯型:std_logic;txtag1:清空寄存器,標準邏輯型:std_logic;txparity:存儲器產(chǎn)生奇偶校驗,標準邏輯型:std_logic;txclk:數(shù)據(jù)發(fā)送時鐘信號,標準邏輯型:std_logic;txdone:數(shù)據(jù)發(fā)送結(jié)束,標準邏輯型:std_logic;paritycycle:數(shù)據(jù)發(fā)送位校驗,標準邏輯型:std_logic;txdatardy:數(shù)據(jù)發(fā)送讀操作,標準邏輯型:std_logic;圖9.6給出了一個奇校驗8bit數(shù)據(jù)的發(fā)送時序圖。

圖9.6UART數(shù)據(jù)發(fā)送時序圖3.數(shù)據(jù)接收數(shù)據(jù)接收同樣存在9、10、11位三種串行數(shù)據(jù)長度的問題,必須根據(jù)設(shè)置的不同情況將數(shù)據(jù)完整地取下來。接收數(shù)據(jù)時還有一個特殊情況,移位時鐘不是始終存在,移位時鐘在接受到起始位的中間開始產(chǎn)生,到停止位的中間時結(jié)束。接受到停止位后,給出中斷信號,并提供相應(yīng)的校驗出錯、幀出錯以及溢出等。數(shù)據(jù)接收時,需引入hunt和idle兩個信號,hunt為高電平時表示捕捉到起始位,idle為高電平時表示不在移位狀態(tài),利用這兩個信號就可以產(chǎn)生接收所需要的移位時鐘。根據(jù)上述分析,UART的數(shù)據(jù)接收過程定義如下信號:rxhold:數(shù)據(jù)接收保持信號,標準邏輯向量型:std_logic_vector(0TO7);rxreg

:數(shù)據(jù)接收存儲器,標準邏輯向量型:

std_logic_vector(0TO7);rxparity:數(shù)據(jù)接收校驗位,標準邏輯型:std_logic;paritygen:產(chǎn)生數(shù)據(jù)接收校驗位,標準邏輯型:

std_logic;rxstop:數(shù)據(jù)接收停止位,標準邏輯型:std_logic;rxclk:數(shù)據(jù)接收時鐘,標準邏輯型:std_logic;rxidle:數(shù)據(jù)接收空操作,標準邏輯型:std_logic;rxdatardy:數(shù)據(jù)接收準備讀操作,標準邏輯型:

std_logic;圖9.7是一個8bit奇校驗的接收數(shù)據(jù)時序圖,假定接收正確,因此沒有給出校驗、溢出、幀出錯等信號。圖9.7UART數(shù)據(jù)接收時序圖9.2.1UART程序設(shè)計1.庫與實體端口的定義UART的設(shè)計中,調(diào)用的庫文件有IEEE庫,打開的程序包有:std_logic_1164、

std_logic_arith、

std_logic_unsigned。實體端口的定義如下:

PORT(clkx16:INstd_logic; --時鐘

read:INstd_logic; --接收數(shù)據(jù)讀操作

write:INstd_logic; --發(fā)送數(shù)據(jù)寫操作

rx:INstd_logic; --接收數(shù)據(jù)

reset:INstd_logic; --復(fù)位清零

tx:OUTstd_logic; --發(fā)送數(shù)據(jù)

rxrdy:OUTstd_logic; --準備接收數(shù)據(jù)

txrdy:OUTstd_logic; --準備發(fā)送數(shù)據(jù)

parityerr:OUTstd_logic; --接收數(shù)據(jù)校驗錯誤

framingerr:OUTstd_logic; --接收幀數(shù)據(jù)錯誤

overrun:OUTstd_logic; --接收溢出錯誤data:INOUTstd_logic_vector(0TO7)); --雙向數(shù)據(jù)總線2.UART程序設(shè)計UART的程序設(shè)計分為5部分。第一部分是CLOCK時鐘設(shè)計,第二部分是發(fā)送數(shù)據(jù)設(shè)計,第三部分是接收數(shù)據(jù)設(shè)計,第四部分是異步控制設(shè)計,第五部分是發(fā)送與接收異步控制設(shè)計。結(jié)構(gòu)體采用“IF…THEN…ELSE(ELSIF)”順序語句設(shè)計,結(jié)構(gòu)體命名為exemplar,項目名為UART。下面提供的是UART的VHDL設(shè)計參考程序,圖9.8是UART的參考程序生成的UART符號文件。圖9.8UART符號文件9.2.2UART程序仿真編譯UART程序,正確后開始進行仿真。仿真前信號的設(shè)置如下:rx端口設(shè)置為時鐘周期信號,周期為20us、clkx16端口設(shè)置為時鐘周期信號,周期為40us、reset端口設(shè)置為邏輯1、read端口設(shè)置為邏輯0、data端口設(shè)置數(shù)據(jù)為01、02、03、04、05、06…。仿真通過后可以看到對應(yīng)輸出端口data數(shù)據(jù)發(fā)生的變化,UART的仿真波形如圖9.9所示。作者使用Altera公司的MAX7000SEPM7128SLC84-6完成項目設(shè)計,打開UART.RPT報告文件,可以了解詳細的集成電路資源利用與分配情況。圖9.9UART的仿真波形

9.3人機接口電路的設(shè)計與實現(xiàn)

9.3.1接口電路的分析

9.3.2接口電路的設(shè)計

9.3人機接口電路的設(shè)計與實現(xiàn)

人機接口電路在微機系統(tǒng)中應(yīng)用非常廣泛,主要接口有數(shù)碼管顯示、鍵盤和VGA顯示器等。在CPLD系統(tǒng)設(shè)計中人機接口電路的設(shè)計與開發(fā)也是一個重要的環(huán)節(jié),例如,數(shù)碼管的靜態(tài)和動態(tài)掃描顯示;矩陣方式的鍵盤掃描、按鍵去抖動、鍵碼識別等。這里主要討論矩陣方式的鍵盤接口電路的設(shè)計與實現(xiàn)。9.3.1接口電路的分析矩陣方式的鍵盤接口電路的設(shè)計主要包含的矩陣掃描、去抖動、鍵碼識別及顯示功能的設(shè)計,下面以4×4鍵盤接口電路的設(shè)計為例。接口電路的系統(tǒng)時鐘inclk頻率為22MHz,接口電路的主要功能是分頻和掃描。利用系統(tǒng)時鐘22MHz的inclk分頻產(chǎn)生5ms的鍵查詢時鐘keyclkout,keyclkout十分頻后產(chǎn)生50ms的觸發(fā)時鐘chuclkout。在觸發(fā)時鐘chuclkout的高電平期間送出列掃描數(shù)據(jù),將得到的行數(shù)據(jù)送去抖動電路,去抖動后讀入,根據(jù)行、列數(shù)據(jù)之間的關(guān)系確定其鍵值。鍵盤布局如圖9.10所示,圖9.11是設(shè)計電路KEY2編譯通過后生產(chǎn)的符號文件。圖9.10KBC鍵盤電路示意圖圖9.11KEY2的符號文件9.3.2接口電路的設(shè)計1.去抖動電路設(shè)計去抖動電路的基本設(shè)計原理:電路采用5ms的時鐘接收輸入數(shù)據(jù)A,如果連續(xù)三次數(shù)據(jù)為零,可以確認數(shù)據(jù)是穩(wěn)定的,且可以接收。如圖9.12所示是去抖動電路的設(shè)計,采用圖形設(shè)計輸入。圖9.12鍵盤去抖動電路以上是通用的抖動消除電路設(shè)計,由D觸發(fā)器構(gòu)成。信號穩(wěn)定時間由D觸發(fā)器的個數(shù)決定。該單元電路命名為tinglmove,該電路作為元件將在下面的VHDL程序中調(diào)用。2.鍵盤掃描顯示電路的設(shè)計下面是鍵盤串行掃描顯示電路實體的VHDL描述,具體程序中采用元件例化語句調(diào)用鍵盤去抖動電路tinglmove。LIBRARYieee;USEieee.std_logic_1164.all;USEieee.std_logic_arith.all;USEieee.std_logic_unsigned.all;-----------------------------------------ENTITYkey2ISPORT(inclk:INstd_logic;--時鐘信號

inkey:INstd_logic_vector(0to3);--按鍵信號

outkey:OUTstd_logic_vector(0to3); --鍵盤掃描輸出信號

outled:OUTstd_logic_vector(7downto0) --LED顯示輸出信號

);ENDkey2;---------------------------------------------圖9.13是key2.vhd文件的層次結(jié)構(gòu)。圖9.13key2.vhd文件的層次結(jié)構(gòu)圖9.14是key2的仿真波形,可以看到輸入clk端口的設(shè)置,inkey端口設(shè)置邏輯信號,仿真通過后可以看出對應(yīng)輸出口outkey數(shù)據(jù)發(fā)生的變化。圖9.14key2.scf文件的仿真波形

9.48255并行接口電路的設(shè)計與實現(xiàn)9.4.18255接口電路的分析9.4.28255接口電路的設(shè)計

9.48255并行接口電路的設(shè)計與實現(xiàn)

8255是典型的可編程并行接口芯片,廣泛用于各種外設(shè)接口電路中。用可編程邏輯器件,如FLEX和MAX系列設(shè)計可以實現(xiàn)8255的設(shè)計,設(shè)計具有24個可編程I/O接口、靜態(tài)讀/寫模式、同步處理設(shè)計模式等功能的并行接口電路。9.4.18255接口電路的分析可編程并行接口芯片8255從結(jié)構(gòu)上看主要有四部分組成:控制寄存器和邏輯分配單元;數(shù)據(jù)輸出多路選通單元;AB端口輸入輸出單元以及C端口輸入輸出控制選擇單元。圖9.15是8255的結(jié)構(gòu)框圖。表9.2是8255的接口引腳功能類型及其說明。圖9.158255結(jié)構(gòu)框圖名稱類型屬性功能說明Clkinput/時鐘Ncsinput“0”片選Nrdinput“0”讀數(shù)據(jù)控制Nwrinput“0”寫數(shù)據(jù)控制Resetinput“1”復(fù)位A[1..0]input“1”積存器地址總線Din[7..0]input“1”數(shù)據(jù)輸入總線Pain[7..0]input“1”A口輸入總線Pbin[7..0]input“1”B口輸入總線Pcin[7..0]input“1”C口輸入總線Paenoutput“1”A口數(shù)據(jù)使能Pbenoutput“1”B口數(shù)據(jù)使能Dout[7..0]output“1”數(shù)據(jù)輸出總線Paout[7..0]output“1”A口輸出總線Pbout[7..0]output“1”B口輸出總線Pcent[7..0]output“1”C口數(shù)據(jù)使能總線Pcout[7..0]output“1”C口輸出總線表9.28255的引腳功能及類型說明8255三種工作方式的時序波形不同,圖9.16給出工作方式0的時序波形。讀者如果需要了解方式1和2的時序波形可以查閱相關(guān)資料。(a)方式0輸入時序波形(b)方式0輸出時序波形圖9.16工作方式0的時序波形

9.4.28255接口電路的設(shè)計

8255的VHDL程序中的前幾條語句說明調(diào)用的IEEE庫及其相關(guān)的程序包;接著是8255的端口描述,其中輸入輸出端口的定義與A8255定義相同;其他語句是8255的功能描述。這里采用元件例化的設(shè)計方法,主程序包含相對獨立的7個例化的子程序,這些子程序分別是dout_mux、cntl_log、partaout、partain、partbin、partbout和partcout。圖9.17給出主程序與子程序之間的層次關(guān)系。圖9.17主程序與子程序的層次關(guān)系圖9.18是CNTL-LOG.SCF文件仿真波形。由圖可以看出,輸入RESET端口設(shè)置邏輯0、PCIN端口設(shè)置邏輯0、nRD端口設(shè)置邏輯0、CLK端口設(shè)置時鐘40ns、nWR端口設(shè)置寫信號,可以看到輸出端口PortAoouLd數(shù)據(jù)發(fā)生的變化。圖9.18cntl_log仿真波形圖9.19是cntl_log生成的符號文件。圖9.19cntl_log的符號文件圖9.20是dout_mux的仿真波形。輸入UTSelect端口設(shè)置邏輯0、ontrlReg端口設(shè)置邏輯00、rtAinReg端口設(shè)置邏輯00、PAIN端口設(shè)置邏輯01、02、03、04、05、06…,仿真后,可以看出輸出端口DOUT數(shù)據(jù)發(fā)生的變化。圖9.20dout_mux的仿真波形圖9.21是dout_mux.vhd文件編譯后生成的符號文件。圖9.21dout_mux的符號文件圖9.22是portain的仿真波形。輸入RESET端口設(shè)置邏輯0,復(fù)位時RESET設(shè)置為邏輯1;PortALnLd端口設(shè)置邏輯0、PAIN端口設(shè)置為00、01、02、03、04、05、06…、CLK端口設(shè)置邏輯時鐘40ns,仿真通過后可以看出對應(yīng)輸出口PortAInReg數(shù)據(jù)變化,同時可以觀測到輸入RESET端口設(shè)置邏輯1時間段內(nèi)的復(fù)位功能。圖9.22portain的仿真波形

圖9.23是portain.vhd文件編譯后產(chǎn)生的符號文件。圖9.23portain的符號文件

圖9.24是portaout的仿真波形。輸入RESET端口設(shè)置為邏輯0,復(fù)位有效時設(shè)置RESET為邏輯1;PortAOutLd端口設(shè)置邏輯0、DIN端口設(shè)置數(shù)據(jù)00、01、02、03、04、05、06…;CLK端口設(shè)置時鐘周期40ns。仿真通過后,可以看到輸出端口PAOUT數(shù)據(jù)發(fā)生的變化,同時可以觀測到輸入RESET端口設(shè)置邏輯1時間段內(nèi),信號被復(fù)位。圖9.24portaout的仿真波形圖9.25是portout.vhd文件編譯生成的符號文件。圖9.25portout符號文件圖9.26是portbin的仿真波形。輸入RESET端口設(shè)置邏輯0,復(fù)位有效時RESET為邏輯1;PortBLnLd端口設(shè)置邏輯0、PBIN端口輸入00、01、02、03、04、05、06…;CLK端口設(shè)置時鐘周期40ns。仿真通過后,可以看到輸出端口PortBInReg數(shù)據(jù)的變化,同時可以看到輸入RESET端口為邏輯1時,信號復(fù)位功能。圖9.26portbin仿真波形圖9.27是portbin.vhd文件編譯后生成的符號文件。圖9.27portbin符號文件圖9.28portbout.vhd文件的仿真波形。輸入RESET端口設(shè)置邏輯0,復(fù)位有效時設(shè)為邏輯1、PortALnLd端口設(shè)置邏輯0、PAIN端口設(shè)置數(shù)據(jù)00、01、02、03、04、05、06…、CLK端口設(shè)置時鐘周期40ns。仿真通過后,可以看出輸出端口PBOUT數(shù)據(jù)的變化,同時可以觀測到輸入RESET為邏輯1時的信號復(fù)位功能。圖9.28portbout.vhd文件的仿真波形圖9.29是portbout.vhd文件編譯后生成的符號文件。圖9.29portbout.vhd的符號文件圖9.30是輸出端口C子程序portcout.vhd文件編譯后生成的portcout

符號文件。圖9.30portcout.vhd的符號文件圖9.31是portcout.vhd文件的仿真波形。輸入RESET端口設(shè)置邏輯0、DIN端口設(shè)置數(shù)據(jù)為00、01、02、03、04、05、06…、PCIN端口設(shè)置數(shù)據(jù)為00、01、02、03、04、05、06…、CLK端口設(shè)置時鐘周期40ns。仿真通過后,看到輸出端口COUT和Status數(shù)據(jù)按照DIN端口和PCIN端口的數(shù)據(jù)發(fā)生對應(yīng)的變化。當RESET端口設(shè)置邏輯1時,信號復(fù)位。圖9.31

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論