字符發(fā)生器課設(shè)_第1頁
字符發(fā)生器課設(shè)_第2頁
字符發(fā)生器課設(shè)_第3頁
字符發(fā)生器課設(shè)_第4頁
字符發(fā)生器課設(shè)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、太原科技大學(xué)電子課程設(shè)計(jì)字符發(fā)生器學(xué)院:專業(yè)班級(jí): 姓名: 學(xué)號(hào): 指導(dǎo)教師: 時(shí)間:2014-12-23 目錄圖目錄3表目錄3程序目錄3一、設(shè)計(jì)任務(wù)與要求4二、原理介紹4三、總體設(shè)計(jì)41.方案制定5方案1.單個(gè)字符移動(dòng)顯示5方案2.以字符串的形式進(jìn)行移動(dòng)顯示62.方案選擇6四、字符設(shè)計(jì)7五、選擇器件81.FPGA器件82.74HC1388a)器件圖及內(nèi)部圖8b)真值表9c)2個(gè)138譯碼器組成4-16譯碼器93.74HC59510a)器件圖及內(nèi)部圖10b)真值表10c)電路圖11六、功能模塊111.分頻器112.字符數(shù)組讀取123.譯碼器底層程序134.74HC595底層程序135.上下移動(dòng)

2、函數(shù)146.左右移動(dòng)函數(shù)15七、總體設(shè)計(jì)電路圖15附錄一17附錄二26附錄三0圖目錄圖 1內(nèi)部原理圖及外觀圖4圖 2上下滾動(dòng)顯示5圖 3系統(tǒng)框圖7圖 4字模生成器生成的字模7圖 5 74HC1388圖 6 4-16譯碼器9圖 7波形仿真圖10圖 8 74HC59510圖 9 74HC595級(jí)聯(lián)電路圖11圖 10總體設(shè)計(jì)電路圖15圖 11 波形仿真圖16圖 12 左右滾動(dòng)27圖 13 上下滾動(dòng)27表目錄表 1 EP4CE6器件特性8表 2 74HC138真值表9表 3 74HC595真值表10程序目錄程序 1分頻程序12程序 2調(diào)用例化程序以及RAM底層驅(qū)動(dòng)函數(shù)13程序 374HC138底層驅(qū)動(dòng)

3、函數(shù)13程序 474HC595底層驅(qū)動(dòng)函數(shù)14程序 5上下移動(dòng)函數(shù)14程序 6左右移動(dòng)函數(shù)15程序 7左右滾動(dòng)顯示19程序 8上下滾動(dòng)顯示22程序 9字庫函數(shù)25一、 設(shè)計(jì)任務(wù)與要求在16X16點(diǎn)陣上輸出顯示:身體健康、心理健康、社會(huì)健康。十二個(gè)字。輸出:長(zhǎng)短相形高下相傾前后相隨音聲相和。十六個(gè)字。擴(kuò)展要求:讓十二個(gè)字上或下或左或右滾動(dòng)輸出。其它。二、 原理介紹單個(gè)8X8點(diǎn)陣內(nèi)部原理圖及外觀圖如圖1所示,以共陰點(diǎn)陣為例。當(dāng)點(diǎn)陣的第n行置高電平,同時(shí)第m列置低電平,則對(duì)應(yīng)的第n行,第m列的數(shù)碼管被點(diǎn)亮。根據(jù)點(diǎn)陣的原理,用4塊8X8點(diǎn)陣即可組成16X16點(diǎn)陣,此時(shí)點(diǎn)陣數(shù)量滿足顯示漢字的要求。字符發(fā)

4、生器采用動(dòng)態(tài)掃描工作方式。逐行給LED置高電平的同時(shí),對(duì)應(yīng)列置低電平。如此每循環(huán)16次,即可顯示相應(yīng)字符。當(dāng)行掃描足夠快時(shí)(掃描速度大于2ms/行),由于人眼的視覺暫留效果,字符就能固定的顯示出來。附錄二中給出了顯示原理。圖 1內(nèi)部原理圖及外觀圖三、 總體設(shè)計(jì)選題確定后,便開始著手設(shè)計(jì)本課題的方案,以及制作步驟。1. 方案制定方案1. 單個(gè)字符移動(dòng)顯示對(duì)于單個(gè)的字符發(fā)生器而言,根據(jù)點(diǎn)陣的原理,需要將單個(gè)字符設(shè)計(jì)為1*16的數(shù)組。顯示單個(gè)字符時(shí),需要譯碼器和595芯片在時(shí)序上進(jìn)行配合顯示輸出。在能對(duì)單個(gè)字符進(jìn)行顯示后僅需要將單個(gè)字符的移動(dòng)顯示變換到字符串上進(jìn)行移動(dòng)顯示即可。本設(shè)計(jì)前期首先有目標(biāo)的

5、點(diǎn)亮自定義的數(shù)組。而后,通過數(shù)組點(diǎn)亮一個(gè)漢字。一個(gè)漢字可以由1組含16個(gè)元素,每元素寬為16位的數(shù)組構(gòu)成。對(duì)于點(diǎn)亮一個(gè)漢字,由于38譯碼器使用3個(gè)IO口即可控制輸出8路狀態(tài),595傳入并出器件同樣使用3個(gè)IO口即可控制8路輸出不同的信息,從而大大降低了FPGA的IO端口的使用,進(jìn)而也簡(jiǎn)化了設(shè)計(jì)的難度。使用138譯碼器進(jìn)行點(diǎn)陣行掃描控制,使用595傳入并出顯示對(duì)應(yīng)行的對(duì)應(yīng)數(shù)據(jù)。本設(shè)計(jì)在處理一個(gè)字符進(jìn)行上下滾動(dòng)顯示時(shí),通過改變138譯碼器的掃描順序即可實(shí)現(xiàn)字符的上下移動(dòng)。圖2為字符上下滾動(dòng)顯示示意圖。以“北”字為例。第32*N+0*2ms顯示完整的“北”字。此時(shí),38譯碼器輸出:1、215、16對(duì)

6、應(yīng)595輸出Data數(shù)組信息如下:Data15、Data14Data1、Data0第32*N+1*2ms顯示“北”字上移1格。此時(shí),38譯碼器輸出:2、316、1對(duì)應(yīng)595輸出Data數(shù)組信息如下:Data15、Data14Data1、Data0第32*N+11*2ms顯示“北”字上移11格。此時(shí),38譯碼器輸出:12、1310、11對(duì)應(yīng)595輸出Data數(shù)組信息如下:Data15、Data14Data1、Data0第32*N+14*2ms顯示“北”字上移14格。此時(shí),38譯碼器輸出:15、1613、14對(duì)應(yīng)595輸出Data數(shù)組信息如下:Data15、Data14Data1、Data0圖 2

7、上下滾動(dòng)顯示本設(shè)計(jì)在處理單個(gè)字符左右滾動(dòng)顯示時(shí)使用簡(jiǎn)單的字符以為處理即可。對(duì)應(yīng)算法如下:DATA = (Data15-A>>shift_ii)|Data15-A<<shift_ii (1)式(1)中,DATA為顯示數(shù)據(jù)的寄存器型變量,Data為存放字符的數(shù)組,shift_ii為向左或右移動(dòng)的位數(shù),A為38譯碼器的輸出。將方案1的設(shè)計(jì)思路轉(zhuǎn)化為Verilog語言后實(shí)現(xiàn)單個(gè)字符的上下和左右移動(dòng)。于是,接下來進(jìn)行的任務(wù)便是將單個(gè)字符轉(zhuǎn)換為字符串的形式進(jìn)行移動(dòng)顯示。方案2. 以字符串的形式進(jìn)行移動(dòng)顯示在實(shí)現(xiàn)字符串的移動(dòng)顯示的過程中,發(fā)現(xiàn)字符串的移動(dòng)顯示并不像單個(gè)字符移動(dòng)那樣簡(jiǎn)單

8、。原因有以下幾點(diǎn):(1) 字符串中包含的數(shù)據(jù)比單個(gè)字符包含的數(shù)據(jù)多。其中數(shù)據(jù)以字符的個(gè)數(shù)的倍數(shù)增加;(2) 字符數(shù)據(jù)的增加導(dǎo)致在字符串在上下移動(dòng)顯示的過程中不能像單個(gè)字符那樣通過改變譯碼器的輸出順序進(jìn)行移動(dòng);(3) 字符數(shù)據(jù)的增加導(dǎo)致字符串在左右移動(dòng)過程中必須考慮到字符與字符之間的切換問題。針對(duì)上述的幾點(diǎn)問題,在解決處理字符串的移動(dòng)輸出顯示過程中,決定重新設(shè)計(jì)新的算法,以適應(yīng)新的改變。方案2中的改變主要有以下幾點(diǎn):(1) 上下移動(dòng)顯示過程中選擇譯碼器的固定輸出,而改變字符的數(shù)組內(nèi)容進(jìn)而改變字符串的上下移動(dòng)。此時(shí),字符數(shù)組的改變是通過FIFO(First In First Out)方式進(jìn)行的;(

9、2) 字符串的左右移動(dòng)顯示選擇采用兩個(gè)字符數(shù)組的方式進(jìn)行。一個(gè)數(shù)組顯示下一幀字符,列一個(gè)數(shù)組用于存放下一幀字符,通過這兩個(gè)字符的組合搭配輸出顯示本一幀字符。2. 方案選擇本設(shè)計(jì)采用方案2處理字符串的移動(dòng)顯示效果。本設(shè)計(jì)中對(duì)十二個(gè)、十六個(gè)字符進(jìn)行顯示。對(duì)于字符串的顯示方式與單個(gè)字符串顯示的方式既有聯(lián)系,又有區(qū)別。聯(lián)系在于處理單個(gè)字符的思想在左右滾動(dòng)顯示時(shí)同樣適用于字符串滾動(dòng)顯示,區(qū)別在于處理單個(gè)字符上下滾動(dòng)時(shí)是對(duì)38譯碼器的輸出進(jìn)行控制,而對(duì)于字符串的顯示而言并不適用。因此采用FIFO的數(shù)組處理方式對(duì)數(shù)組信息進(jìn)行處理,而38譯碼器的輸出順序不變。此外,在處理字符串左右滾動(dòng)時(shí)采用雙數(shù)組顯示,數(shù)組D

10、ata用于存儲(chǔ)上一幀數(shù)據(jù),數(shù)組Data1用于存儲(chǔ)下一幀數(shù)據(jù),然后通過移位,按位于運(yùn)算得出本一幀顯示的數(shù)據(jù),處理方式如下:DATA = (Data15-A>>shift_ii)|Data115-A<<shift_ii (2)式(2)中,DATA為顯示數(shù)據(jù)的寄存器型變量,Data為存放上一幀字符的數(shù)組,Data1位存放下一幀數(shù)組,shift_ii為向左或右移動(dòng)的位數(shù),A為38譯碼器的輸出。圖3為字符串系統(tǒng)框圖。圖 3系統(tǒng)框圖四、 字符設(shè)計(jì)本設(shè)計(jì)采用16X16的點(diǎn)陣宋體字庫,即在16×16的區(qū)域內(nèi)顯示一個(gè)漢字所對(duì)應(yīng)的二進(jìn)制碼。系統(tǒng)采用取字模軟件直接進(jìn)行取模。本設(shè)計(jì)采

11、用FPGA自帶的RAM生成器,可以直接生成 .mif文件。因此若想改變字符,只需對(duì)RAM中的數(shù)據(jù)進(jìn)行改變即可。本設(shè)計(jì)以“身體健康”為例給予說明。0200 0400 1FF0 1010 1FF0 1010 1FF2 1014 1018 7FF0 0050 0090 0310 1C10 E050 0020 /*"身" 0*/ 0840 0840 0840 1040 17FC 3040 30E0 50E0 9150 1150 1248 15F4 1842 1040 1040 1040 /*"體" 1*/ 1020 1020 10FC 2E24 23FE 622

12、4 64FC A420 2EFC 2220 2220 2BFE 2420 2620 29FE 3000 /*"健" 2*/ 0100 0080 3FFE 2080 2FF8 2088 3FFE 2088 2FF8 2880 24C4 22A8 4490 4888 9286 0100 /*"康" 3*/圖 4字模生成器生成的字模五、 選擇器件選用器件:Altera®的Cyclone®FPGA型號(hào)為:EP4CE6。2個(gè)74HC138譯碼器組成4-16譯碼器。2個(gè)74HC595作為點(diǎn)陣列輸出。1. FPGA器件器件EP4CE6邏輯單元6,2

13、72M9K 存儲(chǔ)器模塊30存儲(chǔ)器總?cè)萘?(Kbits)27018 x 18 乘法器15PLL2最大 I/O179最大差分通道66表 1 EP4CE6器件特性2. 74HC138a) 器件圖及內(nèi)部圖器件圖內(nèi)部圖圖 5 74HC138b) 真值表表 2 74HC138真值表c) 2個(gè)138譯碼器組成4-16譯碼器圖 6 4-16譯碼器圖 7波形仿真圖3. 74HC595a) 器件圖及內(nèi)部圖器件圖內(nèi)部圖圖 8 74HC595b) 真值表表 3 74HC595真值表c) 電路圖圖 9 74HC595級(jí)聯(lián)電路圖六、 功能模塊 本設(shè)計(jì)所用到的外圍電路在實(shí)驗(yàn)箱中已經(jīng)包含,因此只需要運(yùn)用FPGA對(duì)底層器件進(jìn)行

14、編程即可。1. 分頻器本設(shè)計(jì)中用到了兩個(gè)分頻器。分別是給譯碼器提供移位時(shí)鐘和給字符的顯示及移動(dòng)提供時(shí)鐘。程序見下程序1:always(posedge CLK)beginshift_j = shift_j+1;if(shift_j=160000000)beginshift_i = 1;shift_j = 0;endif(shift_j%10000000=0)beginshift_ii = shift_ii+1;if(shift_ii=16)beginshift_ii=0;endendif(shift_i=1)beginif(Time<=64)beginRAM_clk = RAM_clk;T

15、ime=Time+1;endif(Time=64)beginshift_i=0;Time=0;endendif(cnt=2)begincnt <= 1;moni_clk <= moni_clk;endelse cnt <= cnt+1;end程序 1分頻程序程序中moni_clk為譯碼器提供移位時(shí)鐘。而字符時(shí)鐘相對(duì)繁瑣,分為3部分:(1)通過shift_j將clk外部時(shí)鐘分頻,每當(dāng)shift_j計(jì)數(shù)到160000000時(shí),對(duì)shift_i進(jìn)行置1處理;(2)當(dāng)shift_i置1后開始讀取FPGA內(nèi)部的RAM,并對(duì)數(shù)組進(jìn)行改變;(3)當(dāng)shift_j%10000000=0時(shí),對(duì)

16、shift_ii增1,shift_ii是字符移動(dòng)時(shí)鐘。2. 字符數(shù)組讀取字符的讀取是通過FPGA內(nèi)部自帶的RAM進(jìn)行實(shí)現(xiàn)的。通過Quartus II 生成 .mif 文件,再將該文件生成Verilog HDL File,隨后在主程序中調(diào)用例化語句即可。程序見程序2:ziku U1(ziku_i, RAM_clk, ram1_data_out);always(posedge RAM_clk)beginif(ziku_i > 79)beginziku_i = 0;endziku_i <= ziku_i+1;Time1= Time1+1;if(Time1>16)beginDataT

17、ime1%16=ram1_data_out;endelse beginData1Time1=ram1_data_out;endif(Time1=32)beginTime1=0;endend程序 2調(diào)用例化程序以及RAM底層驅(qū)動(dòng)函數(shù)3. 譯碼器底層程序根據(jù)74HC138芯片的真值表知,在使能芯片后,輸出端的信號(hào)隨輸入端進(jìn)行變化。因此,只要將譯碼器的輸入端按照一定的時(shí)序進(jìn)行變化即可。always(posedge moni_clk)beginif(j=16)beginj <= 0;i <= 1;if(A >= 16)beginA = 0;endelse beginA = A+1;e

18、ndDATA = (Data15-A>>shift_ii)|(Data115-A<<shift_ii);endelse beginj <= j+1;i <= 0;endend程序 3 74HC138底層驅(qū)動(dòng)函數(shù)程序中,在moni_clk時(shí)鐘的上升沿觸發(fā)譯碼器的輸入端進(jìn)行變化。每16個(gè)上升沿為1個(gè)周期,這樣即可滿足譯碼器對(duì)點(diǎn)陣的掃描。同時(shí)程序中出現(xiàn)的數(shù)據(jù)移位代碼是為了實(shí)現(xiàn)字符的左移目的,詳細(xì)信息見后文,在此不再贅述。4. 74HC595底層程序根據(jù)74HC595芯片的真值表知,在移位時(shí)鐘的上升沿會(huì)將輸入端的數(shù)據(jù)采集,并且對(duì)之前的數(shù)據(jù)進(jìn)行移位。當(dāng)ST(RCK)產(chǎn)

19、生上升沿時(shí),輸出端會(huì)將移位寄存器中的數(shù)據(jù)并行輸出。always(negedge moni_clk)begincase (j)0 : begin DS <= 1'b1&(DATA>>7); end1 : begin DS <= 1'b1&(DATA>>6); end2 : begin DS <= 1'b1&(DATA>>5); end3 : begin DS <= 1'b1&(DATA>>4); end4 : begin DS <= 1'b1&am

20、p;(DATA>>3); end5 : begin DS <= 1'b1&(DATA>>2); end6 : begin DS <= 1'b1&(DATA>>1); end7 : begin DS <= 1'b1&(DATA>>0); end8 : begin DS <= 1'b1&(DATA>>15); end9 : begin DS <= 1'b1&(DATA>>14); end10: begin DS <

21、;= 1'b1&(DATA>>13); end11: begin DS <= 1'b1&(DATA>>12); end12: begin DS <= 1'b1&(DATA>>11); end13: begin DS <= 1'b1&(DATA>>10); end14: begin DS <= 1'b1&(DATA>>9); end15: begin DS <= 1'b1&(DATA>>8); end

22、default: DS <= 1'b0;endcaseendassign SH = moni_clk;assign ST = i;程序 4 74HC595底層驅(qū)動(dòng)函數(shù)此時(shí),直接將移位時(shí)鐘moni_clk的值賦給移位時(shí)鐘SH即可。而輸出顯示的跳邊沿則在移位時(shí)鐘產(chǎn)生16次后觸發(fā)1次即可。變量i在程序3中有提及。5. 上下移動(dòng)函數(shù)RAM_clk <= RAM_clk;if(RAM_clk=1) beginziku_i <= ziku_i+1;if(ziku_i>=48)beginziku_i <= 0;endfor(FIFO=0;FIFO<15;FIFO=

23、FIFO+1)beginDataFIFO=DataFIFO+1;endData15=ram1_data_out;end程序 5上下移動(dòng)函數(shù)上下移動(dòng)函數(shù)采用對(duì)數(shù)組進(jìn)行FIFO賦值的方法,再配合譯碼器以及74HC595的顯示方法即可實(shí)現(xiàn)字符的上下移動(dòng)顯示。6. 左右移動(dòng)函數(shù)DATA = (Data15-A>>shift_ii)|(Data115-A<<shift_ii);程序 6左右移動(dòng)函數(shù)七、 總體設(shè)計(jì)電路圖圖 10總體設(shè)計(jì)電路圖圖 11 波形仿真圖附錄一程序,左右滾動(dòng)顯示:module EDA1(CLK, SH, ST, DS, A);input CLK;output

24、SH, ST, DS;output reg 3:0A;reg 15:0Data15:0;reg 15:0Data115:0;reg 3:0FIFO;reg 7:0Time;reg 7:0Time1;reg DS;reg i;reg 4:0j;integer cnt;reg moni_clk;reg RAM_clk;reg 15:0DATA;reg shift_i;reg shift_ii;integer shift_j;reg 7:0ziku_i;wire 15:0ram1_data_out;ziku U1(ziku_i, RAM_clk, ram1_data_out);always(pose

25、dge CLK)beginshift_j = shift_j+1;if(shift_j=160000000)beginshift_i = 1;shift_j = 0;endif(shift_j%10000000=0)beginshift_ii = shift_ii+1;if(shift_ii=16)beginshift_ii=0;endendif(shift_i=1)beginif(Time<=64)beginRAM_clk = RAM_clk;Time=Time+1;endif(Time=64)beginshift_i=0;Time=0;endendif(cnt=2)begincnt

26、<= 1;moni_clk <= moni_clk;endelse cnt <= cnt+1;endalways(posedge RAM_clk)beginif(ziku_i > 79)beginziku_i = 0;endziku_i <= ziku_i+1;Time1= Time1+1;if(Time1>16)beginDataTime1%16=ram1_data_out;endelse beginData1Time1=ram1_data_out;endif(Time1=32)beginTime1=0;endendalways(posedge moni_

27、clk)beginif(j=16)beginj <= 0;i <= 1;if(A >= 16)beginA = 0;endelse beginA = A+1;endDATA = (Data15-A>>shift_ii)|(Data115-A<<shift_ii);endelse beginj <= j+1;i <= 0;endendalways(negedge moni_clk)begincase (j)0 : begin DS <= 1'b1&(DATA>>7); end1 : begin DS <

28、= 1'b1&(DATA>>6); end2 : begin DS <= 1'b1&(DATA>>5); end3 : begin DS <= 1'b1&(DATA>>4); end4 : begin DS <= 1'b1&(DATA>>3); end5 : begin DS <= 1'b1&(DATA>>2); end6 : begin DS <= 1'b1&(DATA>>1); end7 : b

29、egin DS <= 1'b1&(DATA>>0); end8 : begin DS <= 1'b1&(DATA>>15); end9 : begin DS <= 1'b1&(DATA>>14); end10: begin DS <= 1'b1&(DATA>>13); end11: begin DS <= 1'b1&(DATA>>12); end12: begin DS <= 1'b1&(DATA>

30、>11); end13: begin DS <= 1'b1&(DATA>>10); end14: begin DS <= 1'b1&(DATA>>9); end15: begin DS <= 1'b1&(DATA>>8); enddefault: DS <= 1'b0;endcaseendassign SH = moni_clk;assign ST = i;endmodule程序 7左右滾動(dòng)顯示程序,上下滾動(dòng)顯示module EDA1(CLK, SH, ST, DS, A)

31、;input CLK;output SH, ST, DS;output reg 3:0A;reg 4:0B;reg 15:0Data15:0;reg 3:0FIFO;reg DS;reg i;reg 4:0j;integer cnt;reg moni_clk;reg RAM_clk;reg 15:0DATA;reg 3:0shift_i;integer shift_j;reg 7:0ziku_i;wire 15:0ram1_data_out;ziku U1(ziku_i, RAM_clk, ram1_data_out);always(posedge CLK)beginif(shift_j=50

32、00000)beginshift_j <= 1;shift_i <= shift_i-4'b0001;RAM_clk <= RAM_clk;if(RAM_clk=1) beginziku_i <= ziku_i+1;if(ziku_i>=48)beginziku_i <= 0;endfor(FIFO=0;FIFO<15;FIFO=FIFO+1)beginDataFIFO=DataFIFO+1;endData15=ram1_data_out;endif(shift_i<0)beginshift_i <= 15;endendelse b

33、eginshift_j <= shift_j+1;endif(cnt=2)begincnt <= 1;moni_clk <= moni_clk;endelse cnt <= cnt+1;endalways(posedge moni_clk)beginif(j=16)beginj <= 0;i <= 1;if(A < 0)beginA = 15;endelse beginA = A-1;endB=A-shift_i;if(B<0)beginB = 16-B;endDATA = DataA;endelse beginj <= j+1;i <

34、;= 0;endendalways(negedge moni_clk)begincase (j)0 : begin DS <= 1'b1&(DATA>>7); end1 : begin DS <= 1'b1&(DATA>>6); end2 : begin DS <= 1'b1&(DATA>>5); end3 : begin DS <= 1'b1&(DATA>>4); end4 : begin DS <= 1'b1&(DATA>>

35、;3); end5 : begin DS <= 1'b1&(DATA>>2); end6 : begin DS <= 1'b1&(DATA>>1); end7 : begin DS <= 1'b1&(DATA>>0); end8 : begin DS <= 1'b1&(DATA>>15); end9 : begin DS <= 1'b1&(DATA>>14); end10: begin DS <= 1'b1&am

36、p;(DATA>>13); end11: begin DS <= 1'b1&(DATA>>12); end12: begin DS <= 1'b1&(DATA>>11); end13: begin DS <= 1'b1&(DATA>>10); end14: begin DS <= 1'b1&(DATA>>9); end15: begin DS <= 1'b1&(DATA>>8); enddefault: DS &l

37、t;= 1'b0;endcaseendassign SH = moni_clk;assign ST = i;endmodule程序 8上下滾動(dòng)顯示程序,字庫函數(shù):/ megafunction wizard: %ROM: 1-PORT%/ GENERATION: STANDARD/ VERSION: WM1.0/ MODULE: altsyncram / =/ File Name: ziku.v/ Megafunction Name(s):/ altsyncram/ Simulation Library Files(s):/ altera_mf/ =/ */ THIS IS A WIZA

38、RD-GENERATED FILE. DO NOT EDIT THIS FILE!/ 9.1 Build 350 03/24/2010 SP 2 SJ Full Version/ */Copyright (C) 1991-2010 Altera Corporation/Your use of Altera Corporation's design tools, logic functions /and other software and tools, and its AMPP partner logic /functions, and any output files from an

39、y of the foregoing /(including device programming or simulation files), and any /associated documentation or information are expressly subject /to the terms and conditions of the Altera Program License /Subscription Agreement, Altera MegaCore Function License /Agreement, or other applicable license

40、agreement, including, /without limitation, that your use is for the sole purpose of /programming logic devices manufactured by Altera and sold by /Altera or its authorized distributors. Please refer to the /applicable agreement for further details./ synopsys translate_offtimescale 1 ps / 1 ps/ synop

41、sys translate_onmodule ziku (address,clock,q);input7:0 address;input clock;output15:0 q;ifndef ALTERA_RESERVED_QIS/ synopsys translate_offendiftri1 clock;ifndef ALTERA_RESERVED_QIS/ synopsys translate_onendifwire 15:0 sub_wire0;wire 15:0 q = sub_wire015:0;altsyncramaltsyncram_component (.clock0 (clo

42、ck),.address_a (address),.q_a (sub_wire0),.aclr0 (1'b0),.aclr1 (1'b0),.address_b (1'b1),.addressstall_a (1'b0),.addressstall_b (1'b0),.byteena_a (1'b1),.byteena_b (1'b1),.clock1 (1'b1),.clocken0 (1'b1),.clocken1 (1'b1),.clocken2 (1'b1),.clocken3 (1'b1)

43、,.data_a (161'b1),.data_b (1'b1),.eccstatus (),.q_b (),.rden_a (1'b1),.rden_b (1'b1),.wren_a (1'b0),.wren_b (1'b0);defparamaltsyncram_component.address_aclr_a = "NONE",altsyncram_component.clock_enable_input_a = "BYPASS",altsyncram_component.clock_enable_o

44、utput_a = "BYPASS",altsyncram_component.init_file = "ziku.mif",altsyncram_ended_device_family = "Cyclone IV E",altsyncram_component.lpm_hint = "ENABLE_RUNTIME_MOD=NO",altsyncram_component.lpm_type = "altsyncram",altsyncram_component.numw

45、ords_a = 256,altsyncram_component.operation_mode = "ROM",altsyncram_component.outdata_aclr_a = "NONE",altsyncram_component.outdata_reg_a = "UNREGISTERED",altsyncram_component.widthad_a = 8,altsyncram_component.width_a = 16,altsyncram_component.width_byteena_a = 1;endmod

46、ule/ =/ CNX file retrieval info/ =/ Retrieval info: PRIVATE: ADDRESSSTALL_A NUMERIC "0"/ Retrieval info: PRIVATE: AclrAddr NUMERIC "0"/ Retrieval info: PRIVATE: AclrByte NUMERIC "0"/ Retrieval info: PRIVATE: AclrOutput NUMERIC "0"/ Retrieval info: PRIVATE: BYT

47、E_ENABLE NUMERIC "0"/ Retrieval info: PRIVATE: BYTE_SIZE NUMERIC "8"/ Retrieval info: PRIVATE: BlankMemory NUMERIC "0"/ Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_A NUMERIC "0"/ Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_A NUMERIC "0"/ Retrieval i

48、nfo: PRIVATE: Clken NUMERIC "0"/ Retrieval info: PRIVATE: IMPLEMENT_IN_LES NUMERIC "0"/ Retrieval info: PRIVATE: INIT_FILE_LAYOUT STRING "PORT_A"/ Retrieval info: PRIVATE: INIT_TO_SIM_X NUMERIC "0"/ Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "

49、Cyclone IV E"/ Retrieval info: PRIVATE: JTAG_ENABLED NUMERIC "0"/ Retrieval info: PRIVATE: JTAG_ID STRING "NONE"/ Retrieval info: PRIVATE: MAXIMUM_DEPTH NUMERIC "0"/ Retrieval info: PRIVATE: MIFfilename STRING "ziku.mif"/ Retrieval info: PRIVATE: NUMWORDS

50、_A NUMERIC "256"/ Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0"/ Retrieval info: PRIVATE: RegAddr NUMERIC "1"/ Retrieval info: PRIVATE: RegOutput NUMERIC "0"/ Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0"/ Retrieval info: PRIVAT

51、E: SingleClock NUMERIC "1"/ Retrieval info: PRIVATE: UseDQRAM NUMERIC "0"/ Retrieval info: PRIVATE: WidthAddr NUMERIC "8"/ Retrieval info: PRIVATE: WidthData NUMERIC "16"/ Retrieval info: PRIVATE: rden NUMERIC "0"/ Retrieval info: CONSTANT: ADDRESS_ACLR_A STRING "NONE"/ Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_A STRING "BYPASS"/ Retrieval info: CONSTANT: CLOCK_ENABLE_OU

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論