計(jì)算機(jī)系統(tǒng)綜合課程設(shè)計(jì)4-接口與軟件設(shè)計(jì)_第1頁(yè)
計(jì)算機(jī)系統(tǒng)綜合課程設(shè)計(jì)4-接口與軟件設(shè)計(jì)_第2頁(yè)
計(jì)算機(jī)系統(tǒng)綜合課程設(shè)計(jì)4-接口與軟件設(shè)計(jì)_第3頁(yè)
計(jì)算機(jī)系統(tǒng)綜合課程設(shè)計(jì)4-接口與軟件設(shè)計(jì)_第4頁(yè)
計(jì)算機(jī)系統(tǒng)綜合課程設(shè)計(jì)4-接口與軟件設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩53頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、2022-6-20 P.12022-6-20 P.2n為為MiniSys加加I/O功能功能n16位定時(shí)位定時(shí)/計(jì)數(shù)器計(jì)數(shù)器n16位脈沖寬度調(diào)制位脈沖寬度調(diào)制PWMn44鍵盤(pán)掃描電路鍵盤(pán)掃描電路n4位位7段段LED顯示控制顯示控制n簡(jiǎn)單簡(jiǎn)單UART控制控制n看門(mén)狗控制看門(mén)狗控制n中斷的設(shè)計(jì)中斷的設(shè)計(jì)2022-6-20 P.3nMiniSys為為I/O統(tǒng)一編址方式。統(tǒng)一編址方式。n將將DATA RAM地址分區(qū),其中高地址分區(qū),其中高256個(gè)個(gè)字節(jié)用來(lái)做字節(jié)用來(lái)做IO,一共是,一共是128個(gè)個(gè)16位端口。位端口。0000H4KBRAM0FFFHFFFFHFF00H256BYTE2022-6-20 P

2、.4nIO端口地址分配原則(可自行決定)端口地址分配原則(可自行決定)n將將8根根IO端口線(端口線(16位地址線的低位地址線的低8位,高位,高8位為全位為全1)的高)的高4位用來(lái)譯碼得到最多位用來(lái)譯碼得到最多16個(gè)接個(gè)接口電路的片選信號(hào)??陔娐返钠x信號(hào)。n低低4位組成每個(gè)接口電路的位組成每個(gè)接口電路的16個(gè)字節(jié)端口地個(gè)字節(jié)端口地址,由于址,由于Minisys只有只有16位數(shù)據(jù)處理能力。所位數(shù)據(jù)處理能力。所以每個(gè)接口電路實(shí)際上是有以每個(gè)接口電路實(shí)際上是有8個(gè)字端口地址。個(gè)字端口地址。2022-6-20 P.5n對(duì)對(duì)MiniSys的修改的修改n修改修改MemWrite和和MemRead信號(hào)的邏

3、輯。增加信號(hào)的邏輯。增加IORead和和IOWrite信號(hào),改信號(hào),改MemtoReg為為MemorIOtoReg。 assign RegWrite = (R_format | Lw | Jalc | I_data) & !(Jrn) ; / 需要寫(xiě)寄存器的指令需要寫(xiě)寄存器的指令 assign MemWrite =(Sw=1 ) & (ImmediatHigh9:2 != 8b11111111) ? 1:0 ; / 寫(xiě)存儲(chǔ)器,寫(xiě)存儲(chǔ)器, ImmediatHigh9:0 是新增的輸入信號(hào)是新增的輸入信號(hào)=instructions15.6 assign MemRead = (Lw=

4、1) & (ImmediatHigh9:2 != 8b11111111) ? 1:0 ; / 讀存儲(chǔ)器讀存儲(chǔ)器 assign MemorIOtoReg = IORead | MemRead; / 讀操作需要從端口或存儲(chǔ)器讀數(shù)據(jù)到寄存器讀操作需要從端口或存儲(chǔ)器讀數(shù)據(jù)到寄存器 assign IOWrite = (Sw=1)& (ImmediatHigh9:2 = 8b11111111) ? 1:0 ; / 寫(xiě)端口寫(xiě)端口 assign IORead = (Lw=1) & (ImmediatHigh9:2 = 8b11111111) ? 1:0 ; / 讀端口讀端口, Imme

5、diatHigh9:0 就是就是instructions15:62022-6-20 P.6n增加一個(gè)增加一個(gè)MEMorIO模塊模塊運(yùn)算運(yùn)算單元單元存儲(chǔ)存儲(chǔ)單元單元譯碼譯碼單元單元Addresswdatardata2022-6-20 P.7n增加一個(gè)增加一個(gè)MEMorIO模塊模塊運(yùn)算運(yùn)算單元單元存儲(chǔ)存儲(chǔ)單元單元譯碼譯碼單元單元mAddressMEMorIOAddressPortNumbermrdataIrdatardatawdataiwdatamwdata注意它注意它2022-6-20 P.8片選信號(hào)片選信號(hào)首地址首地址LEDCtrlFF00HKEYCtrlFF10HCTCCtrlFF20HPW

6、MCtrlFF30HUARTCtrlFF40HWDTCtrlFF50H具體端口分配具體端口分配2022-6-20 P.9n功能功能n兩個(gè)定時(shí)兩個(gè)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器CNT0和和CNT1。n具有計(jì)數(shù)和定時(shí)兩個(gè)功能。具有計(jì)數(shù)和定時(shí)兩個(gè)功能。n計(jì)數(shù)方式下可以對(duì)輸入的外部脈沖進(jìn)行計(jì)數(shù),計(jì)數(shù)方式下可以對(duì)輸入的外部脈沖進(jìn)行計(jì)數(shù),當(dāng)計(jì)數(shù)到初值寄存器的值的時(shí)候,設(shè)置狀態(tài)當(dāng)計(jì)數(shù)到初值寄存器的值的時(shí)候,設(shè)置狀態(tài)寄存器的相應(yīng)位。寄存器的相應(yīng)位。n定時(shí)方式下,在時(shí)鐘作用下計(jì)時(shí)器做減定時(shí)方式下,在時(shí)鐘作用下計(jì)時(shí)器做減1,到到1的時(shí)候設(shè)置狀態(tài)寄存器的相應(yīng)位,并在的時(shí)候設(shè)置狀態(tài)寄存器的相應(yīng)位,并在相應(yīng)的相應(yīng)的COUT腳輸出一

7、個(gè)時(shí)鐘的低電平(平腳輸出一個(gè)時(shí)鐘的低電平(平時(shí)時(shí)COUT是高電平)。是高電平)。n狀態(tài)寄存器在被讀取后被清零。狀態(tài)寄存器在被讀取后被清零。2022-6-20 P.10nCNT0方式寄存器(方式寄存器(FF20H)nCNT1方式寄存器(方式寄存器(FF22H);兩個(gè)寄存器均為只可寫(xiě);兩個(gè)寄存器均為只可寫(xiě) 01512022-6-20 P.11nCNT0狀態(tài)寄存器(狀態(tài)寄存器(FF20H)nCNT1狀態(tài)寄存器(狀態(tài)寄存器(FF22H);兩個(gè)寄存器均為只可讀,讀取后被清;兩個(gè)寄存器均為只可讀,讀取后被清0 0151:定時(shí)到定時(shí)到1:計(jì)數(shù)到計(jì)數(shù)到12022-6-20 P.12nCNT0初值寄存器初值寄存

8、器(O)/當(dāng)前值寄存器當(dāng)前值寄存器(I) (FF24H)nCNT1初值寄存器初值寄存器(O)/當(dāng)前值寄存器當(dāng)前值寄存器(I) (FF26H) 015兩個(gè)寄存器通過(guò)讀兩個(gè)寄存器通過(guò)讀/寫(xiě)線區(qū)別寫(xiě)線區(qū)別2022-6-20 P.13n輸入輸出安排輸入輸出安排nrdata15rdata0(O)用于用于CPU讀數(shù)據(jù)讀數(shù)據(jù)nwdata15wdata0(I)用于用于CPU寫(xiě)數(shù)據(jù)寫(xiě)數(shù)據(jù)nCS(I) 片選端片選端nCLK(I) 時(shí)鐘信號(hào)時(shí)鐘信號(hào)nReset(I)復(fù)位信號(hào))復(fù)位信號(hào)npulse0, pulse1(I)兩個(gè))兩個(gè)CNT的外部脈沖信號(hào)的外部脈沖信號(hào)naddress3address0(I)端口地址)端口

9、地址nIOW(I)寫(xiě)信號(hào))寫(xiě)信號(hào)nIOR(I)讀信號(hào))讀信號(hào)nCOUT0, COUT1(O)定時(shí))定時(shí)/計(jì)數(shù)器輸出計(jì)數(shù)器輸出2022-6-20 P.14n功能功能n內(nèi)部一個(gè)內(nèi)部一個(gè)16位計(jì)數(shù)器和一個(gè)位計(jì)數(shù)器和一個(gè)16位對(duì)比值,位對(duì)比值,計(jì)數(shù)器周而復(fù)始的加計(jì)數(shù)器周而復(fù)始的加1計(jì)數(shù),計(jì)數(shù)到計(jì)數(shù)器計(jì)數(shù),計(jì)數(shù)到計(jì)數(shù)器的最大值(默認(rèn)為的最大值(默認(rèn)為FFFFH)的時(shí)候轉(zhuǎn)為)的時(shí)候轉(zhuǎn)為0再再計(jì)數(shù)。當(dāng)計(jì)數(shù)器的值大于對(duì)比值,輸出端計(jì)數(shù)。當(dāng)計(jì)數(shù)器的值大于對(duì)比值,輸出端輸出低電平,否則輸出高電平。輸出低電平,否則輸出高電平。n對(duì)比值(默認(rèn)為對(duì)比值(默認(rèn)為7FFFH)的不同決定了輸)的不同決定了輸出脈沖的占空比。出

10、脈沖的占空比。n計(jì)數(shù)器的最大值可以由軟件設(shè)定,以便確計(jì)數(shù)器的最大值可以由軟件設(shè)定,以便確定定PWM的輸出脈沖的調(diào)制頻率。的輸出脈沖的調(diào)制頻率。2022-6-20 P.15n輸入輸出安排輸入輸出安排nRESET(I) 初始化初始化naddress2address0(I)端口地址)端口地址nD15D0(I)用于寫(xiě)入對(duì)比值和最大值用于寫(xiě)入對(duì)比值和最大值nCS(I) 片選端片選端nCLK(I) 時(shí)鐘信號(hào)時(shí)鐘信號(hào)nIOW(I)寫(xiě)信號(hào))寫(xiě)信號(hào)nPWM(O)輸出端)輸出端2022-6-20 P.16n內(nèi)部寄存器內(nèi)部寄存器n最大值寄存器(最大值寄存器(FF30H)(只寫(xiě))(只寫(xiě))n對(duì)比值寄存器(對(duì)比值寄存器(

11、FF32H)(只寫(xiě))(只寫(xiě))n使能寄存器(使能寄存器(FF34H)(只寫(xiě))(只寫(xiě)) 015默認(rèn)為默認(rèn)為00:不許輸出脈沖不許輸出脈沖1:允許輸出脈沖允許輸出脈沖2022-6-20 P.17n功能功能自動(dòng)掃描自動(dòng)掃描44的鍵盤(pán),當(dāng)有鍵按下的鍵盤(pán),當(dāng)有鍵按下的時(shí)候掃描鍵值,將鍵值記錄到鍵的時(shí)候掃描鍵值,將鍵值記錄到鍵值寄存器,并置位狀態(tài)寄存器中的值寄存器,并置位狀態(tài)寄存器中的“有鍵有鍵”標(biāo)志。當(dāng)標(biāo)志。當(dāng)CPU讀出鍵值后,讀出鍵值后,將將“有鍵有鍵”標(biāo)志清除。標(biāo)志清除。2022-6-20 P.18n輸入輸出安排輸入輸出安排nD15D0(O)用于讀出數(shù)據(jù)用于讀出數(shù)據(jù)nCS(I) 片選端片選端nCLK(

12、I) 時(shí)鐘信號(hào)時(shí)鐘信號(hào)nline3line0(I)鍵盤(pán)行輸出線)鍵盤(pán)行輸出線ncol3col0(O)鍵盤(pán)列輸入線)鍵盤(pán)列輸入線naddress1address0(I)端口地址)端口地址nIOR(I)讀信號(hào))讀信號(hào)2022-6-20 P.19n內(nèi)部寄存器內(nèi)部寄存器n鍵值寄存器(鍵值寄存器(FF10H)(只讀)(只讀)n狀態(tài)寄存器(狀態(tài)寄存器(FF12H)(只讀)(只讀) 0150:無(wú)鍵無(wú)鍵1:有鍵有鍵2022-6-20 P.20n功能功能通過(guò)向該控制電路寫(xiě)通過(guò)向該控制電路寫(xiě)16位數(shù)據(jù),經(jīng)位數(shù)據(jù),經(jīng)過(guò)譯碼控制共陽(yáng)極的過(guò)譯碼控制共陽(yáng)極的7段段LED顯示。顯示。16位數(shù)每半個(gè)字節(jié)控制一位位數(shù)每半個(gè)字節(jié)

13、控制一位7段段LED,從高位到地位排列。從高位到地位排列。 015LED0LED1LED2LED32022-6-20 P.21n7段共陽(yáng)極段共陽(yáng)極LED需要點(diǎn)亮的筆畫(huà)需需要點(diǎn)亮的筆畫(huà)需要輸出要輸出0。n將將ag分別接輸出分別接輸出的的7位數(shù)據(jù)的位位數(shù)據(jù)的位0位位6abcdefg2022-6-20 P.22n輸入輸出安排輸入輸出安排nReset (I) 初始化初始化nD15D0 (I)用于寫(xiě)數(shù)據(jù)用于寫(xiě)數(shù)據(jù)nCS (I) 片選端片選端nIOW(I)寫(xiě)信號(hào))寫(xiě)信號(hào)nled00led06 0位位led輸出線輸出線nled10led16 1位位led輸出線輸出線nled20led26 2位位led輸出線

14、輸出線nled30led36 3位位led輸出線輸出線n內(nèi)部寄存器內(nèi)部寄存器n數(shù)據(jù)鎖存器(數(shù)據(jù)鎖存器(FF00H)2022-6-20 P.23n功能功能負(fù)責(zé)控制將負(fù)責(zé)控制將CPU來(lái)的來(lái)的8位數(shù)據(jù)并轉(zhuǎn)串,位數(shù)據(jù)并轉(zhuǎn)串,然后按照異步串行通信數(shù)據(jù)格式輸然后按照異步串行通信數(shù)據(jù)格式輸出,將串口來(lái)的出,將串口來(lái)的8位串行數(shù)據(jù)串轉(zhuǎn)并,位串行數(shù)據(jù)串轉(zhuǎn)并,并在并在CPU請(qǐng)求的時(shí)候輸入給請(qǐng)求的時(shí)候輸入給CPU。2022-6-20 P.24n設(shè)計(jì)時(shí)注意事項(xiàng)設(shè)計(jì)時(shí)注意事項(xiàng)nXTAL可以是單獨(dú)的時(shí)鐘信號(hào),和系統(tǒng)的可以是單獨(dú)的時(shí)鐘信號(hào),和系統(tǒng)的CLK不不一樣。一樣。n假設(shè)外部時(shí)鐘假設(shè)外部時(shí)鐘XTAL的頻率是波特率的的頻

15、率是波特率的16倍(本倍(本設(shè)計(jì)采用固定波特率設(shè)計(jì)采用固定波特率9600b/s)n接收器接收數(shù)據(jù)的采樣率也是波特率的接收器接收數(shù)據(jù)的采樣率也是波特率的16倍(既倍(既XTAL頻率)采用中間值采樣的原則,也就是一頻率)采用中間值采樣的原則,也就是一個(gè)數(shù)據(jù)位占個(gè)數(shù)據(jù)位占16個(gè)接收時(shí)鐘寬度,在第個(gè)接收時(shí)鐘寬度,在第8個(gè)時(shí)鐘的時(shí)個(gè)時(shí)鐘的時(shí)候采樣。候采樣。n數(shù)據(jù)格式固定為數(shù)據(jù)格式固定為1位起始位,位起始位,8位數(shù)據(jù)位和位數(shù)據(jù)位和1位停止位停止位。起始位為位。起始位為0,停止位為,停止位為1。串行輸出線空閑狀。串行輸出線空閑狀態(tài)為態(tài)為1。2022-6-20 P.25n輸入輸出安排輸入輸出安排nrdata7

16、rdata0(O)用于用于CPU讀數(shù)據(jù)讀數(shù)據(jù)nwdata7wdata0(I)用于用于CPU寫(xiě)數(shù)據(jù)寫(xiě)數(shù)據(jù)nCS(I) 片選端片選端nXTAL(I) 外部時(shí)鐘信號(hào)外部時(shí)鐘信號(hào)nTxD(O)串行輸出)串行輸出nRxD(I)外部串行輸入)外部串行輸入naddress2address0(I)端口地址)端口地址nIOW(I)寫(xiě)信號(hào))寫(xiě)信號(hào)nIOR(I)讀信號(hào))讀信號(hào)nRESET(I)復(fù)位信號(hào))復(fù)位信號(hào)2022-6-20 P.26n內(nèi)部寄存器內(nèi)部寄存器n輸出鎖存器(輸出鎖存器(FF40H)(只用)(只用8位)位)n輸入緩沖器(輸入緩沖器(FF40H)(只用)(只用8位)位)n狀態(tài)寄存器(狀態(tài)寄存器(FF42

17、H) 0151:輸出完輸出完1:輸入完輸入完?duì)顟B(tài)寄存器在讀出輸入緩沖器后清狀態(tài)寄存器在讀出輸入緩沖器后清D1位,在寫(xiě)入輸位,在寫(xiě)入輸出鎖存器后清出鎖存器后清D0位。位。 2022-6-20 P.27n功能功能n內(nèi)含一個(gè)內(nèi)含一個(gè)16位定時(shí)器,系統(tǒng)復(fù)位后計(jì)數(shù)值位定時(shí)器,系統(tǒng)復(fù)位后計(jì)數(shù)值為為FFFFH,之后每時(shí)鐘計(jì)數(shù)值減,之后每時(shí)鐘計(jì)數(shù)值減1,當(dāng)減到,當(dāng)減到0的時(shí)候,向的時(shí)候,向CPU發(fā)發(fā)4個(gè)時(shí)鐘周期的個(gè)時(shí)鐘周期的RESET信號(hào),同時(shí)計(jì)數(shù)值恢復(fù)到信號(hào),同時(shí)計(jì)數(shù)值恢復(fù)到FFFFH并繼續(xù)計(jì)并繼續(xù)計(jì)數(shù)。數(shù)。n通過(guò)軟件不斷地定期寫(xiě)看門(mén)狗端口來(lái)復(fù)位通過(guò)軟件不斷地定期寫(xiě)看門(mén)狗端口來(lái)復(fù)位看門(mén)狗,使計(jì)數(shù)器重新從看門(mén)

18、狗,使計(jì)數(shù)器重新從FFFFH開(kāi)始計(jì)數(shù)。開(kāi)始計(jì)數(shù)。n注意增加看門(mén)狗電路后,注意增加看門(mén)狗電路后,CPU的的RESET輸輸入腳應(yīng)該是系統(tǒng)復(fù)位信號(hào)和看門(mén)狗發(fā)出的入腳應(yīng)該是系統(tǒng)復(fù)位信號(hào)和看門(mén)狗發(fā)出的復(fù)位信號(hào)的組合。復(fù)位信號(hào)的組合。2022-6-20 P.28n輸入輸出安排輸入輸出安排nwdata7wdata0(I)用于用于CPU寫(xiě)數(shù)據(jù)寫(xiě)數(shù)據(jù)nCS(I) 片選端片選端nCLK(I) 外部時(shí)鐘信號(hào)外部時(shí)鐘信號(hào)nRST(O)輸出給)輸出給CPU的復(fù)位信號(hào)的復(fù)位信號(hào)nIOW(I)寫(xiě)信號(hào))寫(xiě)信號(hào)nRESET(I)系統(tǒng)復(fù)位信號(hào))系統(tǒng)復(fù)位信號(hào)2022-6-20 P.29n內(nèi)部邏輯內(nèi)部邏輯只要只要CS, IOW同時(shí)有

19、效,看門(mén)狗電路同時(shí)有效,看門(mén)狗電路就被復(fù)位,看門(mén)狗電路訪問(wèn)的端口就被復(fù)位,看門(mén)狗電路訪問(wèn)的端口地址是地址是FF50H2022-6-20 P.30n為為Minisys增加兩個(gè)中斷功能增加兩個(gè)中斷功能中中斷斷0和中斷和中斷1,中斷,中斷0優(yōu)先級(jí)大于中斷優(yōu)先級(jí)大于中斷1,不支持同級(jí)中斷嵌套。,不支持同級(jí)中斷嵌套。n將將$26和和$27設(shè)計(jì)為兩個(gè)中斷返回地設(shè)計(jì)為兩個(gè)中斷返回地址存放寄存器,分別在中斷址存放寄存器,分別在中斷0和中斷和中斷1到來(lái)的時(shí)候存放返回地址。它們分到來(lái)的時(shí)候存放返回地址。它們分別稱(chēng)為別稱(chēng)為$i0和和$i1。這兩個(gè)寄存器也改。這兩個(gè)寄存器也改為系統(tǒng)寄存器,用戶不可訪問(wèn)。為系統(tǒng)寄存器,

20、用戶不可訪問(wèn)。2022-6-20 P.31n增加一個(gè)中斷屏蔽寄存器增加一個(gè)中斷屏蔽寄存器IMASKR。 0150:允許中斷允許中斷01:屏蔽中斷屏蔽中斷00:允許中斷允許中斷11:屏蔽中斷屏蔽中斷12022-6-20 P.32n中斷處理中斷處理n中斷向量的制定中斷向量的制定將將4KB 程序程序ROM的的FF8HFFBH作為中斷作為中斷0的向量,的向量,F(xiàn)FCHFFFH作為中斷作為中斷1的向量。的向量。用戶程序應(yīng)該在這兩個(gè)地址放上用戶程序應(yīng)該在這兩個(gè)地址放上j語(yǔ)句,跳語(yǔ)句,跳轉(zhuǎn)到真正的中斷處理程序入口,如果沒(méi)有轉(zhuǎn)到真正的中斷處理程序入口,如果沒(méi)有中斷處理程序,也要分別放上中斷處理程序,也要分別放

21、上jr $i0和和jr $i12022-6-20 P.33n中斷處理中斷處理n中斷響應(yīng)的過(guò)程中斷響應(yīng)的過(guò)程1)將下一條指令的)將下一條指令的PC值存放到值存放到$i0或或$i12)設(shè)置)設(shè)置IMASKR的相應(yīng)位,屏蔽有關(guān)中斷的相應(yīng)位,屏蔽有關(guān)中斷3)跳轉(zhuǎn)到)跳轉(zhuǎn)到FF8或或FFCn中斷返回過(guò)程(對(duì)中斷返回過(guò)程(對(duì)jr $i0和和jr $i1的處理)的處理)1)清)清IMASKR的相應(yīng)位,打開(kāi)有關(guān)中斷的相應(yīng)位,打開(kāi)有關(guān)中斷2)執(zhí)行)執(zhí)行jr $i0或或jr $i12022-6-20 P.34n中斷處理中斷處理n中斷優(yōu)先權(quán)中斷優(yōu)先權(quán)中斷中斷0優(yōu)先于中斷優(yōu)先于中斷1,當(dāng)兩個(gè)中斷同時(shí)到來(lái),當(dāng)兩個(gè)中斷同

22、時(shí)到來(lái),先處理中斷先處理中斷0。n中斷嵌套中斷嵌套不允許同級(jí)中斷嵌套,中斷不允許同級(jí)中斷嵌套,中斷0可以嵌套在中可以嵌套在中斷斷1中,也就是說(shuō)中斷中,也就是說(shuō)中斷0能夠中斷中斷能夠中斷中斷1的處的處理程序。理程序。2022-6-20 P.35n中斷請(qǐng)求信號(hào)中斷請(qǐng)求信號(hào)n中斷請(qǐng)求信號(hào)源中斷請(qǐng)求信號(hào)源CTC16、KEY16、UART均可以發(fā)中斷請(qǐng)均可以發(fā)中斷請(qǐng)求,可自選兩個(gè)改成中斷方式。求,可自選兩個(gè)改成中斷方式。n中斷請(qǐng)求信號(hào)屬性中斷請(qǐng)求信號(hào)屬性盡量采用電平觸發(fā),而且盡量使用多時(shí)鐘盡量采用電平觸發(fā),而且盡量使用多時(shí)鐘周期的高電平觸發(fā)。這樣可以避免干擾信周期的高電平觸發(fā)。這樣可以避免干擾信號(hào)的誤判

23、。多時(shí)鐘周期高電平的實(shí)現(xiàn)可以號(hào)的誤判。多時(shí)鐘周期高電平的實(shí)現(xiàn)可以考慮使用一個(gè)時(shí)鐘計(jì)數(shù)器和狀態(tài)機(jī)??紤]使用一個(gè)時(shí)鐘計(jì)數(shù)器和狀態(tài)機(jī)。2022-6-20 P.36n偽指令偽指令n堆棧的實(shí)現(xiàn)堆棧的實(shí)現(xiàn)n匯編編譯程序匯編編譯程序n測(cè)試與應(yīng)用程序測(cè)試與應(yīng)用程序2022-6-20 P.37n絕對(duì)地址定義絕對(duì)地址定義nORG_DATA 32位數(shù)據(jù)區(qū)雙字地址位數(shù)據(jù)區(qū)雙字地址定義下一語(yǔ)句在數(shù)據(jù)定義下一語(yǔ)句在數(shù)據(jù)RAM中的絕對(duì)地址。中的絕對(duì)地址。例:例:ORG_DATA 0000 buf DD 0000ffff, 55aa1234;nORG_CODE 32位代碼區(qū)雙字地址位代碼區(qū)雙字地址定義下一語(yǔ)句在程序定義下一語(yǔ)

24、句在程序ROM中的絕對(duì)地址。中的絕對(duì)地址。例:例:ORG_CODE FF8 j int02022-6-20 P.38n變量定義(僅支持變量定義(僅支持32位變量定義,用位變量定義,用十六進(jìn)制表示值十六進(jìn)制表示值, 變量名就是地址)變量名就是地址)變量名變量名 DW 值值1, 值值2, 值值n(值都以(值都以16進(jìn)制表示)進(jìn)制表示)例如:例如:buf DW 0000ffff, 55aa1234; lw $V0, buf($Zero) ;load 0000FFFFn注釋符注釋符; 英文的注釋文字英文的注釋文字2022-6-20 P.39n標(biāo)號(hào)定義與使用(標(biāo)號(hào)名是地址)標(biāo)號(hào)定義與使用(標(biāo)號(hào)名是地址)

25、標(biāo)號(hào)名標(biāo)號(hào)名: 語(yǔ)句語(yǔ)句例如:例如:int0: lw $t0, 12($t1)j int02022-6-20 P.40n數(shù)據(jù)段定義偽指令數(shù)據(jù)段定義偽指令DATA SEG ; 數(shù)據(jù)段開(kāi)始數(shù)據(jù)段開(kāi)始DATA ENDS ; 數(shù)據(jù)段結(jié)束數(shù)據(jù)段結(jié)束例:例:DATA SEG ; 數(shù)據(jù)段開(kāi)始數(shù)據(jù)段開(kāi)始buf DD 0000ffff, 55aa1234DATA ENDS ; 數(shù)據(jù)段結(jié)束數(shù)據(jù)段結(jié)束 2022-6-20 P.41n代碼段定義偽指令代碼段定義偽指令CODE SEG ; 代碼段開(kāi)始代碼段開(kāi)始CODE ENDS ; 代碼段結(jié)束代碼段結(jié)束例:例:CODE SEG ; 數(shù)據(jù)段開(kāi)始數(shù)據(jù)段開(kāi)始lw $t0, b

26、uff($t1)CODE ENDS ; 數(shù)據(jù)段結(jié)束數(shù)據(jù)段結(jié)束2022-6-20 P.42n格式格式END 標(biāo)號(hào)標(biāo)號(hào)注意這里的標(biāo)號(hào)一定要在匯編程序注意這里的標(biāo)號(hào)一定要在匯編程序中出現(xiàn)過(guò),程序結(jié)束偽指令不僅表中出現(xiàn)過(guò),程序結(jié)束偽指令不僅表明程序結(jié)束,更重要的是告訴匯編明程序結(jié)束,更重要的是告訴匯編器,程序的第器,程序的第1句是哪一句。因此這句是哪一句。因此這里的標(biāo)號(hào)應(yīng)該是程序第里的標(biāo)號(hào)應(yīng)該是程序第1句的標(biāo)號(hào)。句的標(biāo)號(hào)。2022-6-20 P.43n使用數(shù)據(jù)使用數(shù)據(jù)RAM的一部分作為堆棧的一部分作為堆棧由于數(shù)據(jù)是由于數(shù)據(jù)是32位位的,所以堆??偣驳模远褩?偣灿杏?28個(gè)單元。個(gè)單元。堆棧的操作以

27、及堆棧的操作以及堆棧越界檢查全由堆棧越界檢查全由軟件實(shí)現(xiàn)。軟件實(shí)現(xiàn)。0000H0FFFH0E00H512B堆棧堆棧3584B數(shù)據(jù)區(qū)數(shù)據(jù)區(qū)2022-6-20 P.44n堆棧操作(初始堆棧操作(初始$SP=0FFFH)壓棧操作壓棧操作出棧操作出棧操作sw $t0, 0($sp)addi $sp, $sp, 4addi $sp, $sp, -4lw $t0, 0($sp)2022-6-20 P.45n目標(biāo)目標(biāo)將用將用MiniSys匯編語(yǔ)言編寫(xiě)的匯編語(yǔ)言編寫(xiě)的MiniSys程序(含偽指令)編譯程序(含偽指令)編譯成成.mif文件,其中代碼部分編譯成文件,其中代碼部分編譯成prgmip32.mif,數(shù)據(jù)

28、部分編譯成,數(shù)據(jù)部分編譯成dmem32.mif。注意注意mif文件中不要出現(xiàn)任何中文,文件中不要出現(xiàn)任何中文,包括注釋中也不要用中文。包括注釋中也不要用中文。2022-6-20 P.46n要求要求n編譯結(jié)果正確,格式正確。具有錯(cuò)誤報(bào)告功能,編譯結(jié)果正確,格式正確。具有錯(cuò)誤報(bào)告功能,可定位到錯(cuò)誤語(yǔ)句的行??芍苯佑糜诳啥ㄎ坏藉e(cuò)誤語(yǔ)句的行??芍苯佑糜赒uartus II中中進(jìn)行芯片編譯。進(jìn)行芯片編譯。n在在prgmip32.mif中,對(duì)于每條翻譯過(guò)的指令碼,中,對(duì)于每條翻譯過(guò)的指令碼,用注釋的方法將源代碼及源代碼后的注釋附在后用注釋的方法將源代碼及源代碼后的注釋附在后面以便調(diào)試的時(shí)候?qū)φ?。面以便調(diào)試

29、的時(shí)候?qū)φ?。(不能用中文)(不能用中文)n編譯程序可以用編譯程序可以用C、C+、JAVA、DELPHI、Power Builder等任何一種語(yǔ)言來(lái)實(shí)現(xiàn)。等任何一種語(yǔ)言來(lái)實(shí)現(xiàn)。nMiniSys匯編指令書(shū)寫(xiě)格式參見(jiàn)指令系統(tǒng)的指令舉匯編指令書(shū)寫(xiě)格式參見(jiàn)指令系統(tǒng)的指令舉例,匯編程序書(shū)寫(xiě)格式見(jiàn)后。例,匯編程序書(shū)寫(xiě)格式見(jiàn)后。2022-6-20 P.47ORG_DATA 0000 ; The start address of dataBUF DW 000000FF, 55005500ORG_CODE 0000; The start address of codestart:addi $t0, $Zero,

30、0 ;A label for the first statement, $t0=0 lw $v0, buf ($t0) ; $v0=000000FF (buf0) addi $t0, $t0, 4 lw $v1, buf($t0) ; $v1=55005500 (buf4) add $v0, v0, v1 ; $v0=$v0+$v1=550055FF addi $t0, $t0, 4 sw $v0, buf($t0) ; buf8=550055FF j startend start ;The label for end statement is as the same as the one f

31、or the first statement.nMiniSys匯編程序書(shū)寫(xiě)格式舉例匯編程序書(shū)寫(xiě)格式舉例2022-6-20 P.48nprgmip32.mif文件文件DEPTH = 1024; - 10 bits of data line, 2101024WIDTH = 32; - the width of data is 32 bitsADDRESS_RADIX = HEX; - describe address in hex DATA_RADIX = HEX; - describe data in hex CONTENTBEGIN0 : 8c020000; -lw $2 0($0)1 : 8

32、c030002; -lw $3 2($0) 2.3FD : 00000000; 3FE : 01800008; - jr $i0 ;(jr $26) 3FF : 01C00008; - jr $i1 ;(jr $27)END;2022-6-20 P.49ndmem32.mif文件文件DEPTH = 1024; -10 bits of data line, 2101024WIDTH = 32; - the width of data is 32 bitsADDRESS_RADIX = HEX; - describe address in hex DATA_RADIX = HEX; - descr

33、ibe data in hex CONTENTBEGIN0 : 00000055;1 : 000000AA; 2.3FF : 0000;END;2022-6-20 P.50n注意地址對(duì)應(yīng)關(guān)系注意地址對(duì)應(yīng)關(guān)系n對(duì)于代碼部分對(duì)于代碼部分ORG_CODE的翻譯的翻譯源程序的代碼部分源程序的代碼部分ORG_CODE后的地址是后的地址是實(shí)際的實(shí)際的32位位雙字地址雙字地址,而在,而在prgmip32.mif中中的地址是實(shí)際雙字地址的地址是實(shí)際雙字地址除以除以4后取低后取低10位的位的結(jié)果。也就是結(jié)果。也就是address11.2。例如:例如:ORG_CODE 0FF8 jr $i0應(yīng)該翻譯為應(yīng)該翻譯為

34、3FE : 01800008; - jr $i0 翻譯后的地址翻譯后的地址 翻譯后的指令翻譯后的指令翻譯前的地址翻譯前的地址2022-6-20 P.51n注意地址對(duì)應(yīng)關(guān)系注意地址對(duì)應(yīng)關(guān)系n對(duì)于數(shù)據(jù)部分對(duì)于數(shù)據(jù)部分ORG_DATA的翻譯的翻譯源程序的數(shù)據(jù)部分源程序的數(shù)據(jù)部分ORG_DATA后的地址是實(shí)際的后的地址是實(shí)際的32位位雙字地址雙字地址,而在,而在dmem32.mif中的地址是實(shí)際中的地址是實(shí)際雙字節(jié)地址雙字節(jié)地址除以除以4后取低后取低10位的結(jié)果。也就是位的結(jié)果。也就是address11.2。例如:例如:ORG_DATA 0004 sum DW 0000ffff, 55aa1234;應(yīng)該翻譯成:應(yīng)該翻譯成: 1 : 0000ffff; 2 : 55aa1234;翻譯后的地址翻譯后的地址翻譯前的地址翻譯前的地址2022-6-20 P.52n變量和標(biāo)號(hào)的處理變量和標(biāo)號(hào)的處理對(duì)于變量和標(biāo)號(hào),要建立相關(guān)的符號(hào)對(duì)于變量和標(biāo)號(hào),要建立相關(guān)的符號(hào)表,表中給出變量和標(biāo)號(hào)和實(shí)際地址表,表中給出變量和標(biāo)號(hào)和實(shí)際地址的對(duì)應(yīng)關(guān)系。對(duì)于標(biāo)號(hào),必要的時(shí)候的對(duì)應(yīng)關(guān)系。對(duì)于標(biāo)號(hào),必要的時(shí)候可通過(guò)兩遍掃描來(lái)獲得地址。對(duì)于標(biāo)可通過(guò)兩遍掃描來(lái)獲得地址。對(duì)于標(biāo)號(hào)的使用,使用實(shí)際地址還是實(shí)際地號(hào)的使用,使用實(shí)際地址還是實(shí)際地

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論