版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
VHDL硬件描述語言及其應(yīng)用
-數(shù)字IC前端設(shè)計(jì)實(shí)例1VHDL硬件描述語言及其應(yīng)用
-數(shù)字IC前端設(shè)計(jì)實(shí)例1講授內(nèi)容數(shù)字IC設(shè)計(jì)中的前端設(shè)計(jì)內(nèi)容數(shù)字IC前端設(shè)計(jì)實(shí)例:UART文檔階段編碼階段驗(yàn)證階段2講授內(nèi)容數(shù)字IC設(shè)計(jì)中的前端設(shè)計(jì)內(nèi)容2數(shù)字IC設(shè)計(jì)流程3數(shù)字IC設(shè)計(jì)流程3initialfrontendbackendphysical
X=AandBY=CnorDABABXVVssVssVddABCDXYZXVddVSSVerification………SPEC…………ideatapeout4initialfrontendbackendphysical數(shù)字IC前端設(shè)計(jì)的層次前端設(shè)計(jì)可分3個(gè)階段:文檔階段:SPEC->設(shè)計(jì)文檔編碼階段:設(shè)計(jì)文檔->HDL代碼驗(yàn)證階段:SPEC->驗(yàn)證平臺(tái)->大量的驗(yàn)證5數(shù)字IC前端設(shè)計(jì)的層次前端設(shè)計(jì)可分3個(gè)階段:5講授內(nèi)容數(shù)字IC設(shè)計(jì)中的前端設(shè)計(jì)內(nèi)容數(shù)字集成電路前端設(shè)計(jì)實(shí)例:UART文檔階段編碼階段驗(yàn)證階段6講授內(nèi)容數(shù)字IC設(shè)計(jì)中的前端設(shè)計(jì)內(nèi)容6實(shí)例來源:某SoC平臺(tái)7實(shí)例來源:某SoC平臺(tái)7數(shù)字集成電路前端設(shè)計(jì)實(shí)例:UARTUART預(yù)期操作環(huán)境8數(shù)字集成電路前端設(shè)計(jì)實(shí)例:UARTUART預(yù)期操作環(huán)境8數(shù)字集成電路前端設(shè)計(jì)實(shí)例:UART實(shí)例:通用異步收發(fā)器UARTAPB外圍總線的從設(shè)備硬件流控制模式:CTSN/RTSN握手協(xié)議采用的數(shù)據(jù)格式是8個(gè)數(shù)據(jù)位,1個(gè)可選的奇偶校驗(yàn)位以及1個(gè)停止位UART數(shù)據(jù)格式9數(shù)字集成電路前端設(shè)計(jì)實(shí)例:UART實(shí)例:通用異步收發(fā)器UAR文檔階段SPEC->設(shè)計(jì)說明定義接口:表格形式->接口一致性子模塊劃分子模塊設(shè)計(jì)文檔:設(shè)計(jì)描述:子模塊設(shè)計(jì)指導(dǎo)->設(shè)計(jì)文檔實(shí)現(xiàn)方法說明:流程圖、狀態(tài)圖、時(shí)序圖寄存器描述10文檔階段SPEC->設(shè)計(jì)說明101.SPEC模塊功能:數(shù)據(jù)接收功能數(shù)據(jù)發(fā)送功能波特率生成器APB總線接口數(shù)據(jù)流模式控制……預(yù)期環(huán)境:APB總線其他UART……111.SPEC模塊功能:111.SPECUART數(shù)據(jù)發(fā)送功能描述當(dāng)UART發(fā)送器被使能可進(jìn)行發(fā)送操作。其操作為將待發(fā)送8位數(shù)據(jù)轉(zhuǎn)換成一個(gè)串行數(shù)據(jù),按位時(shí)鐘輸出到發(fā)送器的串行輸出端口上。在停止位發(fā)送完成后,如果沒有新的數(shù)據(jù)傳送到發(fā)送保持寄存器中,則發(fā)送器串行數(shù)據(jù)輸出端保持高電平。數(shù)據(jù)發(fā)送完成置發(fā)送移位寄存器空標(biāo)識(shí)位為1。當(dāng)有新數(shù)據(jù)傳送到空的發(fā)送保持寄存器中時(shí),發(fā)送重新開始,發(fā)送移位寄存器空標(biāo)識(shí)位被清0。假如發(fā)送器被禁止,則它將繼續(xù)工作直到當(dāng)前數(shù)據(jù)被完全發(fā)送完成。此時(shí)發(fā)送保持寄存器不能夠重新裝載數(shù)據(jù)。如果采用流控制方式,CTSN輸入必須保持低電平,這樣數(shù)據(jù)才能被發(fā)送。如果在發(fā)送過程中,被設(shè)置成高,移位寄存器中的數(shù)據(jù)被發(fā)送,完成后發(fā)送端保持不變直到CTSN被重新設(shè)置成0。121.SPECUART數(shù)據(jù)發(fā)送功能描述122.定義接口APB接口:PSEL: 輸入--slaveselectPENABLE: 輸入--strobe(選通脈沖)PADDR(7downto0):輸入--addressbus(byte)PWRITE: 輸入--writePWDATA(31downto0):輸入--writedatabusPRDATA(31downto0):輸出--readdatabusUART接口:RXD: 輸入TXD: 輸出CTSN: 輸入RTSN: 輸出其他接口:IRQ: 輸出132.定義接口APB接口:133.子模塊劃分按功能劃分按層次劃分143.子模塊劃分按功能劃分144.子模塊設(shè)計(jì)文檔:設(shè)計(jì)描述例:數(shù)據(jù)發(fā)送子模塊功能設(shè)計(jì)描述輸入信號(hào):發(fā)送時(shí)鐘(txtick):由波特率發(fā)生部件產(chǎn)生的基準(zhǔn)時(shí)鐘*8得到的位時(shí)鐘,高電平有效發(fā)送器使能(TE):高電平有效發(fā)送器中斷使能(TI):高電平有效奇偶校驗(yàn)選擇(PS):“0”表示偶校驗(yàn),“1”表示奇校驗(yàn)奇偶校驗(yàn)使能(PE):高電平有效流控制使能(FL):高電平有效。復(fù)位信號(hào)(rst):高電平有效輸出信號(hào):發(fā)送移位寄存器空(TS):說明發(fā)送移位寄存器中的數(shù)據(jù)已經(jīng)發(fā)送完畢發(fā)送保持寄存器空(TH):說明先前的數(shù)據(jù)已經(jīng)發(fā)送完畢,目前沒有新的數(shù)據(jù)待發(fā)送。數(shù)據(jù)發(fā)送輸出端(TXD)中斷輸出信號(hào)(IRQ)154.子模塊設(shè)計(jì)文檔:設(shè)計(jì)描述例:數(shù)據(jù)發(fā)送子模塊功能設(shè)計(jì)描述14.子模塊設(shè)計(jì)文檔:設(shè)計(jì)描述數(shù)據(jù)發(fā)送:UART發(fā)送器的使能位(TE)控制,高電平有效。數(shù)據(jù)由發(fā)送保持寄存器(thold)傳送到發(fā)送移位寄存器(tshift)中,并且將其轉(zhuǎn)換成一個(gè)串行隊(duì)列,輸出到發(fā)送器的串行輸出端口TXD上。它將自動(dòng)在8位有效數(shù)據(jù)前添加開始位,并在數(shù)據(jù)后添加一位可選的奇偶校驗(yàn)位和一位停止位。在停止位發(fā)送完成后,如果沒有新的數(shù)據(jù)傳送到發(fā)送保持寄存器中,則發(fā)送器串行數(shù)據(jù)輸出端保持高電平,并且設(shè)置發(fā)送移位寄存器空標(biāo)識(shí)位(TSRE)為1。當(dāng)有新數(shù)據(jù)傳送到發(fā)送保持寄存器中時(shí),判斷發(fā)送保持寄存器空標(biāo)識(shí)位(THRE)是否為1,如果為1且TI=1,則發(fā)出irq中斷;如果TSRE=0,則發(fā)送開始,TSRE被清除。假如發(fā)送器被禁止,則它將繼續(xù)工作直到當(dāng)前數(shù)據(jù)被完全發(fā)送完成。此時(shí)發(fā)送保持寄存器不能夠重新裝載數(shù)據(jù)。流控制方式:CTSN輸入必須保持低電平,這樣數(shù)據(jù)才能被發(fā)送。如果在發(fā)送過程中,CTSN被設(shè)置成高,移位寄存器tshift中的數(shù)據(jù)被發(fā)送,完成后發(fā)送端保持高電平不變,直到CTSN被重新設(shè)置成0。164.子模塊設(shè)計(jì)文檔:設(shè)計(jì)描述數(shù)據(jù)發(fā)送:UART發(fā)送器的使能位4.子模塊設(shè)計(jì)文檔:模塊實(shí)現(xiàn)方法數(shù)字IC=數(shù)據(jù)通路+控制邏輯數(shù)據(jù)通路:寄存器提??;存儲(chǔ)器?控制邏輯:有限狀態(tài)機(jī):狀態(tài)圖,狀態(tài)表……硬連邏輯:流程圖,時(shí)序圖……174.子模塊設(shè)計(jì)文檔:模塊實(shí)現(xiàn)方法數(shù)字IC=數(shù)據(jù)通路+控制邏輯例:發(fā)送控制狀態(tài)機(jī)18例:發(fā)送控制狀態(tài)機(jī)18當(dāng)前態(tài)次態(tài)轉(zhuǎn)移條件操作輸出IDLEIDLErst=1寄存器復(fù)位TXD=tshift(0)DATAtxen,txtick=1且thempty,ctsn=0thold->tshiftDATAIDLErst=1寄存器復(fù)位DATAtxtick=1求校驗(yàn)位;tshift移位PARITYtshift數(shù)據(jù)移空;txtick=1且paren=1求校驗(yàn)位;tshift移位tshift(0)=tparSTOPBITtshift數(shù)據(jù)移空;txtick=1且paren=0tshift移位tshift(0)=1PARITYIDLErst=1寄存器復(fù)位STOPBITtxtick=1tshift移位STOPBITIDLErst=1txtick=1寄存器復(fù)位tshift移位19當(dāng)前態(tài)次態(tài)轉(zhuǎn)移條件操作輸出IDLEIDLErst=1寄存器復(fù)4.子模塊設(shè)計(jì)文檔:寄存器描述寄存器的功能:保持歷史值數(shù)據(jù)通路:寄存器,計(jì)數(shù)器,移位器控制輸出信號(hào)的行為:命令、控制寄存器如實(shí)反映當(dāng)前電路工作狀態(tài):狀態(tài)寄存器方法:保存采樣信號(hào)值->歷史值和當(dāng)前值比較必要中間值:例如有限狀態(tài)機(jī)的狀態(tài)、跨周期信號(hào)等模塊輸出信號(hào)寄存器輸出204.子模塊設(shè)計(jì)文檔:寄存器描述寄存器的功能:保持歷史值20控制寄存器該寄存器用來控制UART的操作第0位:接收器使能(RE),高電平有效。第1位:發(fā)送器使能(TE),高電平有效。第2位:接收器中斷使能(RI),高電平有效。第3位:發(fā)送器中斷使能(TI),高電平有效。第4位:奇偶校驗(yàn)選擇(PS),“0”表示偶校驗(yàn),“1”表示奇校驗(yàn)。第5位:奇偶校驗(yàn)使能(PE),高電平有效。第6位:流控制使能(FL),高電平有效。第7位:回送使能(LB),高電平有效。第8位:外部時(shí)鐘使能(EC),高電平有效,此時(shí)PIO[3]用作時(shí)鐘。21控制寄存器該寄存器用來控制UART的操作21UART狀態(tài)寄存器用來反映UART的狀態(tài)第0位:接收數(shù)據(jù)就緒(DR),說明在接收保持寄存器中,數(shù)據(jù)已經(jīng)準(zhǔn)備就緒。第1位:發(fā)送移位寄存器空(TS),說明發(fā)送移位寄存器中的數(shù)據(jù)已經(jīng)發(fā)送完畢。第2位:發(fā)送保持寄存器空(TH),說明先前的數(shù)據(jù)已經(jīng)發(fā)送完畢,目前沒有新的數(shù)據(jù)待發(fā)送。第3位:接收到暫停(BR),說明在數(shù)據(jù)接收過程接收到暫停信息。第4位:溢出(OV),說明由于超出限度一個(gè)或多個(gè)字符而丟失。第5位:奇偶錯(cuò)(PE),說明檢測(cè)到奇偶錯(cuò)。第6位:格式錯(cuò)(FE),說明檢測(cè)到格式錯(cuò)。22UART狀態(tài)寄存器用來反映UART的狀態(tài)22編碼階段編程前準(zhǔn)備設(shè)計(jì)思路:設(shè)計(jì)文檔->RTL代碼?編碼風(fēng)格編碼實(shí)例文件層次化管理23編碼階段編程前準(zhǔn)備23編程前準(zhǔn)備遵守工程指定命名及格式規(guī)則版本、設(shè)計(jì)日期、編者信息以及注釋的使用標(biāo)識(shí)符對(duì)應(yīng)具體功能含義:如thempty(transmitholdempty)標(biāo)識(shí)符表明信號(hào)/變量屬性:如cts_n,cts_,ctsn24編程前準(zhǔn)備遵守工程指定命名及格式規(guī)則24設(shè)計(jì)思路模塊設(shè)計(jì):考慮電路結(jié)構(gòu)串行:對(duì)輸入的處理分步驟進(jìn)行(process)并行:對(duì)到達(dá)的信號(hào)同時(shí)處理(多個(gè)等價(jià)process)流水線:多步驟、每個(gè)步驟同時(shí)處理設(shè)計(jì)考慮:在內(nèi)部模塊之間的輸入輸出可采用組合邏輯,不同芯片之間必須采用寄存器輸入輸出(否則增加后端實(shí)現(xiàn)難度)盡量將組合電路和時(shí)序電路分開25設(shè)計(jì)思路模塊設(shè)計(jì):考慮電路結(jié)構(gòu)25編碼風(fēng)格自頂向下規(guī)劃并發(fā):并行等價(jià)進(jìn)程規(guī)劃順序:串行進(jìn)程規(guī)劃自底向上編碼獨(dú)立功能順序編碼:順序語句->process并發(fā)進(jìn)程:協(xié)調(diào)信號(hào)通信關(guān)系26編碼風(fēng)格自頂向下規(guī)劃26自頂向下:并行等價(jià)進(jìn)程規(guī)劃baudop:process(rst,r_p,uarti_p)--baudrate/bitclockprocess--baudrategenerate--rx/txclock--resetoperationendprocess;apbop:process(rst,r_p,apbi) --apboperation--read/writeregisters(APBslaveInterface)--resetoperation--updateregisters--driveoutputsendprocess;txrxop:process(rst,r_p,apbi) --transmit/receiveroperation--filterrxdata--transmitteroperation--receiveroperation--resetoperation--updateregisters--driveoutputsendprocess;27自頂向下:并行等價(jià)進(jìn)程規(guī)劃baudop:process(自頂向下:串行進(jìn)程的規(guī)劃在最小信號(hào)間隔(clk)內(nèi)更新信號(hào)及輸出uartop:process(rst,r,apbi,uarti)--serialprocess variablev:uartregs;--baudrategenerate--read/writeregisters(APBslaveInterface)--rx/txclock--filterrxdata--transmitteroperation--receiveroperation--resetoperation--updateregisters rin<=v;--driveoutputsendprocess;28自頂向下:串行進(jìn)程的規(guī)劃在最小信號(hào)間隔(clk)內(nèi)更新信號(hào)及編碼實(shí)例:有限狀態(tài)機(jī)實(shí)現(xiàn)
發(fā)送控制狀態(tài)機(jī)29編碼實(shí)例:有限狀態(tài)機(jī)實(shí)現(xiàn)
發(fā)送控制狀態(tài)機(jī)29caser.txstateis
whenidle=> --idlestateif(r.txtick='1')thenv.tsempty:='1';endif;
if((r.txenand(notr.thempty)andr.txtick)and (notctsn))='1'then
v.tshift:="10"&r.thold&'0'; v.txstate:=data; v.tpar:=r.parsel;v.irq:=r.tirqen; v.thempty:='1';v.tsempty:='0'; v.txclk:="00"&r.tick;v.txtick:='0';endif;數(shù)據(jù)發(fā)送代碼段編碼實(shí)例:有限狀態(tài)機(jī)實(shí)現(xiàn)30caser.txstateis數(shù)據(jù)發(fā)送代碼段編碼實(shí)例:whendata=> --transmitdataframeifr.txtick='1'then v.tpar:=r.tparxorr.tshift(1); v.tshift:='1'&r.tshift(10downto1);
ifr.tshift(10downto1)="1111111110"then
ifr.paren='1'then v.tshift(0):=r.tpar;v.txstate:=parity; else v.tshift(0):='1';v.txstate:=stopbit; endif; endif;endif;數(shù)據(jù)發(fā)送代碼段(續(xù))編碼實(shí)例:有限狀態(tài)機(jī)實(shí)現(xiàn)31whendata=> --transmitdatawhenparity=> --transmitparitybitifr.txtick='1'then v.tshift:='1'&r.tshift(10downto1); v.txstate:=stopbit;endif;whenstopbit=> --transmitstopbitifr.txtick='1'then v.tshift:='1'&r.tshift(10downto1); v.txstate:=idle;endif;endcase;數(shù)據(jù)發(fā)送代碼段(續(xù))編碼實(shí)例:有限狀態(tài)機(jī)實(shí)現(xiàn)32whenparity=> --transmitpa
scaler:=r.scaler-1; --baudrategenerate(tick)if(r.rxenorr.txen)='1'thenv.scaler:=scaler;v.tick:=scaler(11)andnotr.scaler(11);ifv.tick='1'thenv.scaler:=r.brate;endif;endif;txclk:=r.txclk+1; --txclkgenerate(8*tick)ifr.tick='1'thenv.txclk:=txclk;v.txtick:=r.txclk(2)andnottxclk(2);endif;發(fā)送定標(biāo)代碼段:位時(shí)鐘編碼實(shí)例:控制信號(hào)33scaler:=r.scaler-1; --b編碼實(shí)例:記錄的使用->信號(hào)鎖存typeuartregsisrecordrxen :std_logic; --receiverenabledtxen :std_logic; --transmitterenabledrirqen :std_logic; --receiverirqenabletirqen :std_logic; --transmitterirqenableparsel :std_logic; --parityselectparen:std_logic; --parityselectflow :std_logic; --flowcontrolenabledready :std_logic; --datareadyrsempty :std_logic; --receivershiftregisterempty(internal)tsempty :std_logic; --transmittershiftregisteremptythempty :std_logic; --transmitterholdregisteremptybreak :std_logic; --breakdetectedrhold :std_logic_vector(7downto0);rshift :std_logic_vector(7downto0);tshift :std_logic_vector(10downto0);34編碼實(shí)例:記錄的使用->信號(hào)鎖存typeuartregs編碼實(shí)例:記錄的使用->信號(hào)鎖存
thold :std_logic_vector(7downto0);irq :std_logic; --tx/rxinterrupt(internal)tpar :std_logic; --txdataparity(internal)txstate :txfsmtype;txclk :std_logic_vector(2downto0);--txclockdividertxtick:std_logic; --txclock(internal)rxstate :rxfsmtype;rxclk :std_logic_vector(2downto0);--rxclockdividerrxdb :std_logic_vector(1downto0);--rxdelaydpar:std_logic; --rxdataparity(internal)rxtick :std_logic; --rxclock(internal)tick :std_logic; --rxclock(internal)scaler :std_logic_vector(11downto0);brate :std_logic_vector(11downto0);rxf :std_logic_vector(7downto0);--rxdatafilteringbufferendrecord;35編碼實(shí)例:記錄的使用->信號(hào)鎖存thold :編碼實(shí)例:時(shí)鐘同步architecturertlofuartistyperxfsmtypeis(idle,startbit,data,parity,stopbit);typetxfsmtypeis(idle,data,parity,stopbit);typeuartregsisrecord……signalr,rin:uartregs;begin uartop:process(rst,r,apbi,uarti)--serialprocess variablev:uartregs; ……
rin<=v; endprocess; regs:process(clk) --signalregisteredbybaseclk beginifrising_edge(clk)thenr<=rin;endif;endprocess;endarchitecture;36編碼實(shí)例:時(shí)鐘同步architecturertlofu文件層次化管理設(shè)計(jì)的層次化:頂層->底層:結(jié)構(gòu)描述->行為描述不同用途文件:命名規(guī)則區(qū)分,如_top,_package等目錄的層次化:工作目錄不同目的文件->不同目錄,如src,sim,doc……37文件層次化管理設(shè)計(jì)的層次化:37文件層次化管理
testbenchSourcetopTestbenchgeneratetestcaseharnesspackagesource38文件層次化管理testbenchSourcetopTe驗(yàn)證階段驗(yàn)證環(huán)境和測(cè)試方案->testbench根據(jù)設(shè)計(jì)文檔確定驗(yàn)證點(diǎn)(testcase)->驗(yàn)證文檔:描述每個(gè)驗(yàn)證點(diǎn)的目的、具體實(shí)現(xiàn)步驟驗(yàn)證文檔->testcase提取覆蓋率分析->不理想->回到第2階段記錄驗(yàn)證結(jié)果->.log文件39驗(yàn)證階段驗(yàn)證環(huán)境和測(cè)試方案->testbench39驗(yàn)證環(huán)境架構(gòu)及建立方式基于軟件模擬的層次式架構(gòu)testcase層:由過程(procedure)調(diào)用組成行為模型以及BFM:不可綜合的代碼,描述系統(tǒng)環(huán)境中可能的其他電路模型或行為testbench:驗(yàn)證配置testbench組織:configurations裝配testcase,行為模型,BFM以及待測(cè)模塊DUT40驗(yàn)證環(huán)境架構(gòu)及建立方式基于軟件模擬的層次式架構(gòu)40UART驗(yàn)證環(huán)境架構(gòu)41UART驗(yàn)證環(huán)境架構(gòu)41確定驗(yàn)證點(diǎn)testcase提?。簆rocedures激勵(lì):從單一功能到復(fù)雜功能,輔以覆蓋率工具響應(yīng):針對(duì)具體testcase描述檢查相關(guān)響應(yīng)42確定驗(yàn)證點(diǎn)testcase提?。簆rocedures42例:數(shù)據(jù)發(fā)送進(jìn)程testcase生成
testcase1:驗(yàn)證UART是否能夠正確發(fā)送數(shù)據(jù) a.保持發(fā)送時(shí)鐘基準(zhǔn)時(shí)鐘*8得到的位時(shí)鐘txtick; b.調(diào)用APB_write過程向UART控制寄存器寫入“000101010”; c.調(diào)用APB_write過程向UART發(fā)送保持寄存器thold寫入“10101010”; d.調(diào)用TXD_verify過程,并檢測(cè)是否正確接收“10101010”
testcase2:驗(yàn)證UART能否檢驗(yàn)出奇偶校驗(yàn)錯(cuò),并據(jù)此發(fā)出中斷請(qǐng)求 a.保持發(fā)送時(shí)鐘基準(zhǔn)時(shí)鐘*8得到的位時(shí)鐘txtick; b.調(diào)用APB_write過程向UART控制寄存器寫入“000101010”; c.調(diào)用APB_write過程向UART發(fā)送保持寄存器thold寫入“10101010”; d.調(diào)用TXD_verify過程,并檢測(cè)是否正確接收“10101010”,偶校驗(yàn)無誤,并接收到IRQ信號(hào); e.調(diào)用APB_write過程向UART控制寄存器寫入“000111010”; f.調(diào)用APB_write過程向UART發(fā)送保持寄存器thold寫入“10101010”; g.調(diào)用TXD_verify過程,并檢測(cè)是否正確接收“10101010”,奇校驗(yàn)無誤,并接收到IRQ信號(hào);
testcase3:溢出錯(cuò)誤檢查 testcase4:發(fā)送過程清TE testcase5:流控制檢查testcase提取43例:數(shù)據(jù)發(fā)送進(jìn)程testcase生成testcase提取43testcase實(shí)例-接收過程--readRXDprocedurefortestbenchprocedurerxc(signalrxd:instd_logic; d:outstd_logic_vector)isvariablerxdata:std_logic_vector(7downto0);beginwaituntilrxd='0';waitforTXPERIOD/2;foriin0to7loop waitforTXPERIOD; rxdata(i):=rxd;endloop;waitforTXPERIOD;d:=rxdata;end;--endrxctestcase->procedure44testcase實(shí)例-接收過程testcase->procetestcase實(shí)例-發(fā)送過程(續(xù))--transmittd(data)totxdprocedurefortestbenchproceduretxc(signaltxd:outstd_logic; td:integer)isvariabletxdata:std_logic_vector(10downto0);begintxdata:="11"&std_logic_vector(conv_unsigned(td,8))&'0';foriin0to10loop waitforTXPERIOD; txd<=txdata(i);endloop;end;--endtxc45testcase實(shí)例-發(fā)送過程(續(xù))--transmitttestcase實(shí)例-APB寫數(shù)據(jù)過程(續(xù)) --readRXDprocedurefortestbenchprocedureapbwr(signalpclk:inbit; signalpaddr:outstd_logic_vector; signalpwdata:outstd_logic_vector; signalpwrite:outstd_logic; signalpsel:outstd_logic; signalpenable:outstd_logic; tadd:instd_logic_vector; twdata:outstd_logic_vector)isbeginwaitonpclk;
ifpclk’eventandpclk=‘0’thenpaddr<=taddr;pwdata<=twdata;pwrite<=‘1’;psel<=‘1’;penable<=‘0’;endif;
waitonpclk;
ifpclk’eventandpclk=‘0’thenpenable<=‘1’;endif;
waitonpclk;
溫馨提示
- 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 沈陽理工大學(xué)《構(gòu)成藝術(shù)》2021-2022學(xué)年第一學(xué)期期末試卷
- 沈陽理工大學(xué)《單片機(jī)原理與接口技術(shù)》2021-2022學(xué)年期末試卷
- 廣東省預(yù)拌混凝土買賣合同
- 孩子上學(xué)購(gòu)房合同摘抄表
- 合同變更及終止管理辦法
- 2024-2025學(xué)年高中政治第四單元認(rèn)識(shí)社會(huì)與價(jià)值選擇11.2社會(huì)歷史的主體作業(yè)含解析新人教版必修4
- 2024《秦皇島市勞動(dòng)合同》
- 2024年泰安客運(yùn)資格證模擬考試題
- 2024工程樁基檢測(cè)合同書
- 第23課《黃繼光》第一課時(shí)(分層作業(yè))-【上好課】四年級(jí)語文下冊(cè)部編版
- 急腹癥診斷與鑒別診斷課件
- 2022年四川天府銀行校園招聘試題題庫(kù)及答案解析
- 腦梗死病人護(hù)理查房ppt
- 新外研版八年級(jí)下冊(cè)英語 Module 6 Unit 1 教案(教學(xué)設(shè)計(jì))
- 學(xué)校體育學(xué)(第三版)ppt全套教學(xué)課件
- 公共管理碩士(MPA)在讀證明
- Q-FT B039-2006汽車產(chǎn)品油漆涂層技術(shù)條件
- 留守兒童談心記錄留守兒童談心記錄
- 美術(shù)領(lǐng)域知識(shí)講座
- 邊坡監(jiān)測(cè)合同(與甲方)
- 《等邊三角形》教學(xué)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論