石頭剪刀布eda課程設(shè)計(jì)_第1頁(yè)
石頭剪刀布eda課程設(shè)計(jì)_第2頁(yè)
石頭剪刀布eda課程設(shè)計(jì)_第3頁(yè)
石頭剪刀布eda課程設(shè)計(jì)_第4頁(yè)
石頭剪刀布eda課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩29頁(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、eda «設(shè)計(jì)課設(shè)名稱:石頭、剪刀、布游戲課設(shè)日期:2016. 6. 237. 14姓 名:學(xué) 號(hào):哈爾濱工業(yè)大學(xué)(威海) 信電學(xué)院電子信息工程2016. 6一、所用軟件與硬件介紹1.1 軟件介紹(quartus ii)altera公司是世界三大cpld / fpga廠家,它的器件能達(dá)到最高的性能和集 成度,不僅僅因?yàn)椴捎昧讼冗M(jìn)的工藝和全新的邏輯結(jié)構(gòu),還在于它提供了現(xiàn)代化的 設(shè)計(jì)工具zquartus ii可編程邏輯開(kāi)發(fā)軟件,該軟件是max+plusii的升級(jí)版本, altera公司的第四代開(kāi)發(fā)軟件。其提供了一個(gè)完整高效的,一種與結(jié)構(gòu)無(wú)關(guān)的設(shè)計(jì)環(huán) 境,非常適應(yīng)具體的設(shè)計(jì)需要。quart

2、usii提供了方便的設(shè)計(jì)輸入方式、快速的編譯 和直接易懂的器件編程。能夠支持邏輯門(mén)數(shù)在百萬(wàn)門(mén)以上的邏輯器件的開(kāi)發(fā),并且 為第三方工具提供了無(wú)縫接口。quartus ii提供了全面的邏輯設(shè)計(jì)能力,包括電路 圖、文木和波形的設(shè)計(jì)輸入以及編譯、邏輯綜合、仿真和定時(shí)分析以及器件編程等 諸多功能。特別是在原理圖輸入等方面,quartus ii被公認(rèn)為是最易使用、人機(jī)界 面最友好的pld開(kāi)發(fā)軟件,quartus ii開(kāi)發(fā)系統(tǒng)具有很多突出的特點(diǎn): 開(kāi)放式的界面:altera公司與eda開(kāi)發(fā)商緊密合作,使quartus ii可以與其他 工業(yè)標(biāo)準(zhǔn)的設(shè)計(jì)與輸入、綜合、校驗(yàn)工具相連接。它與eda工具的接口遵循edi

3、f 200、 edif 300,參數(shù)模塊庫(kù) lpm 2. 1. 0,標(biāo)準(zhǔn)延遲格式 sdf 1. 0、sdf 2. 0, vital 95, verilog hdl,vhdl1987及vhdl 1993等多種標(biāo)準(zhǔn)oquartus ii軟件接口允許用戶使用altera 或標(biāo)準(zhǔn)eda設(shè)計(jì)輸入工具來(lái)創(chuàng)建邏輯設(shè)計(jì),使用quartus ii的編譯器對(duì)altera器件 的設(shè)計(jì)進(jìn)行編譯,使用altera或其他eda校驗(yàn)工具進(jìn)行器件升級(jí)或板級(jí)仿真。表2-1 顯示quartus ii軟件支持的eda工具,并指出哪個(gè)eda工具可支持nativelink®。nativelink技術(shù)在quartus ii軟件

4、和其它eda工具之間無(wú)縫地傳送信息,并允許在 quartus ii軟件中自動(dòng)運(yùn)行eda工具。 設(shè)計(jì)與結(jié)構(gòu)無(wú)關(guān):quartus ii 支持 cyclone il cyclone、 max'l、stratix" ik stratix、excalibu嚴(yán)、apex ik apex20ke、flex 10ke> flex 10ka、flex 10k > acex* 1k> flex 6000、max 7000b、max 7000ae、max 7000s 和 max 3000a 等 系列可編程邏輯器件,門(mén)數(shù)為6000250000門(mén),提供了業(yè)界真正與結(jié)構(gòu)無(wú)關(guān)的可編 程邏

5、輯設(shè)計(jì)環(huán)境。quartusii的編譯器還捉供了強(qiáng)大的邏輯綜合與優(yōu)化功能以減輕 用戶的設(shè)計(jì)負(fù)擔(dān)。 可在多種平臺(tái)運(yùn)行:quartus ii軟件口j在基于pc機(jī)的windowsnts 0、windows 98、windows 2000操作系統(tǒng)下運(yùn)行,也可在sun sparcstations、hp 9000 series 700/800. ibm risc system/6000等工作站上運(yùn)行。 完全集成化:quartus ii軟件的設(shè)計(jì)輸入、處理、校驗(yàn)功能完全集成于可編程 邏輯開(kāi)發(fā)工具內(nèi),從而可以更快地進(jìn)行調(diào)試,縮短開(kāi)發(fā)周期。模塊化工具:設(shè)計(jì)者可以從各種設(shè)計(jì)輸入、編輯、校驗(yàn)及器件編程工具中做出選 擇

6、,形成用戶風(fēng)格的開(kāi)發(fā)環(huán)境,必要時(shí)還可在保留原始功能的基礎(chǔ)上添加新的功能。 由于quartus ii支持多種器件系列,設(shè)計(jì)者無(wú)需學(xué)習(xí)新的開(kāi)發(fā)工具即可對(duì)新結(jié)構(gòu)的 器件進(jìn)行開(kāi)發(fā)。 支持硬件描述語(yǔ)言(hdl): quartusii軟件支持多種hdl的設(shè)計(jì)輸入,包括標(biāo) 準(zhǔn)的vhdl、verilog hdl及altera公司自己開(kāi)發(fā)的硬件描述語(yǔ)言ahdl。 megacore功能:megacore是經(jīng)過(guò)預(yù)先校驗(yàn)的為實(shí)現(xiàn)復(fù)雜的系統(tǒng)級(jí)功能而提供 的 hdl 網(wǎng)表文件。它為 acex ik、max 7000、max 9000、flex 6000、flex 8000 和 flex 10k系列器件提供了最優(yōu)化設(shè)計(jì)。用

7、戶可從altera公司購(gòu)買這些megacore,使 用它們可以減輕設(shè)計(jì)任務(wù),使設(shè)計(jì)者能將更多的時(shí)間和精力投入到改進(jìn)設(shè)計(jì)和最終 產(chǎn)品上去。 opencore特點(diǎn):quartus ii軟件具有開(kāi)放性內(nèi)核的特點(diǎn),opencore可供設(shè)計(jì)者 在購(gòu)買產(chǎn)品前來(lái)對(duì)自己的設(shè)計(jì)進(jìn)行評(píng)估。同時(shí),quartus ii還有多種設(shè)計(jì)輸入方法,主耍包括:圖形設(shè)計(jì)輸入:quartus ii的圖形設(shè)計(jì)輸入是較其他軟件更容易使用的特點(diǎn),因 為quartus ii提供了豐富的庫(kù)單元供設(shè)計(jì)者調(diào)用,尤其是在maxplus2庫(kù)里幾乎包含 了所有的74系列的器件。因此只要具有數(shù)字電路的知識(shí),兒乎不需要過(guò)多的學(xué)習(xí)就 可以利用quartus

8、 ii進(jìn)行cpld/fpga的設(shè)計(jì)。 文本編輯輸入:quartus ii的文木輸入和編譯系統(tǒng)支持ahdl語(yǔ)言、vhdl語(yǔ)言、 verilog語(yǔ)言三種輸入方式 波形輸入方式:如果知道輸入、輸出波形,也可以采用波形輸入方式?;旌陷斎敕绞剑簈uartus 11設(shè)計(jì)開(kāi)發(fā)環(huán)境,可以進(jìn)行圖形設(shè)計(jì)輸入、文本編輯輸 入、波形編輯輸入混合編輯。具體操作方法是:在圖形編輯、波形編輯時(shí)形成模塊, 在文本編輯時(shí)通過(guò)include"模塊名.inc"或者采用function (.)return(.)的方式進(jìn) 行調(diào)用。同樣,文本編輯輸入形成的模塊,也可以在圖形編輯時(shí)調(diào)用,ahdl語(yǔ)言編 譯的結(jié)果可以在v

9、hdl語(yǔ)言下使用,vhdl語(yǔ)言編譯的結(jié)果也可以在ahdl語(yǔ)言或圖 形輸入時(shí)使用。這樣靈活多變的輸入方式,給設(shè)計(jì)使用者帶來(lái)了極大的方便。1 2硬件介紹1) eda實(shí)驗(yàn)箱2)二極管管腳分配關(guān)系發(fā)光極管管腳分配關(guān)系管腳名稱管腳號(hào)管腳名稱管腳號(hào)管腳名禰管腳號(hào)管腳名禰晉腳號(hào)left_r187left_g182left_y180bl176right_r198right_g195rightly192b2189down_r208down_g206down_y203b3200up_r199up_g201up_y205b42073)數(shù)碼管數(shù)碼管管腳:si, s2, s3, s4是片(段)選,fpga輸出高電平邏輯

10、有效;abcdefgdp是數(shù)碼管片數(shù)據(jù)位,fpga輸出高電平邏輯數(shù)碼管點(diǎn)亮,輸出低電平邏輯 數(shù)碼管滅。數(shù)碼管管腳分配關(guān)系:數(shù)碼管管腳分配關(guān)系左邊數(shù)碼管右邊數(shù)碼管管腳名稱管腳號(hào)管腳名稱管腳號(hào)apin 152a152bpin 143b143cpin 145c145dpin_160d160epin 162e162fpin 150f150gpin 147g147drpin 171dp171sipin 170si175s2pin 173s2164s3pin 181s3179s4pin 185s41684)4*4矩陣鍵盤(pán)鍵盤(pán)沒(méi)有按下的時(shí)候時(shí)候fpga輸入高電平,按下輸入低電平。 4*4鍵盤(pán)矩陣引腳:4*4

11、鍵盤(pán)矩陣行0, 1,2,3974,5,6, 71018,9, af b103c,d,e,f104列0, 4, 8,c871, 5, 9, d892, 6, aze923, 7. b,f955) 16*16 點(diǎn)陣對(duì)于8*8點(diǎn)陣,x軸依次是(abc)y軸依次是(1234 當(dāng)y>x時(shí),點(diǎn)(x, y)亮。25e7cb648* 8點(diǎn)8-8點(diǎn)陣0 d f 3 a 1 g hd6)撥碼按鍵開(kāi)關(guān)鍵盤(pán)沒(méi)有按下的時(shí)候時(shí)候fpga輸入高電平,按下輸入低電平。撥碼按鍵開(kāi)關(guān)sw163sw267sw369sw472k575k677k781k884二、系統(tǒng)設(shè)計(jì)2. 1設(shè)計(jì)思想2.1.1研究背景隨著電子技術(shù)的飛速發(fā)展,

12、微電子技術(shù)的進(jìn)步主要表現(xiàn)在人規(guī)模集成電路加工技 術(shù)即半導(dǎo)體工藝技術(shù)的發(fā)展上,使得表征半導(dǎo)體的工藝水平的線寬已經(jīng)達(dá)到了 60nm,并在不斷地縮小,面在硅片單位面積上,集成了更多的晶體管。集成電路設(shè) 計(jì)正在不斷地向超人規(guī)模,極低功耗和超高速的方向發(fā)展,電子產(chǎn)品的功能越來(lái)越強(qiáng)大,體積越來(lái)越小,功耗越來(lái)越低。同時(shí),利用可編程邏輯器件和eda技術(shù)使設(shè)計(jì)方法發(fā)生了質(zhì)的變化。把以前“電 路設(shè)計(jì)+硬件搭試+調(diào)試焊接”轉(zhuǎn)化為“功能設(shè)計(jì)+軟件模擬+仿真下載”。利用eda開(kāi) 發(fā)平臺(tái),采用可編程邏輯器件cpld / fpga使硬件的功能可通過(guò)編程來(lái)實(shí)現(xiàn),這種 新的基于芯片的設(shè)計(jì)方法能夠使設(shè)計(jì)者有更多機(jī)會(huì)充分發(fā)揮創(chuàng)造性

13、思維,實(shí)現(xiàn)多種 復(fù)雜數(shù)字邏輯系統(tǒng)的功能,將原來(lái)由電路板設(shè)計(jì)完成的工作放到芯片的設(shè)計(jì)中進(jìn)行, 減少了連線和體積,提高了集成度,降低了干擾,大大減輕了電路設(shè)計(jì)和pcb設(shè)計(jì) 的工作量和難度,增強(qiáng)了設(shè)計(jì)的靈活性,有效地提高了工作效率,增加了系統(tǒng)的可 靠性和穩(wěn)定性,提高了技術(shù)指標(biāo)。這些技術(shù)使得各種電了產(chǎn)品迅速的進(jìn)入了我們的生活,我們處在一個(gè)被電了產(chǎn) 品深度包圍的時(shí)代,在一個(gè)普通老百姓的家里,衣食住行,每一個(gè)產(chǎn)品的誕生都離 不開(kāi)eda技術(shù),從彩色電視機(jī),到智能冰箱,到全白動(dòng)洗衣機(jī),電飯煲,到微波爐, 電磁爐,電了琴,再到個(gè)人隨身用的手機(jī),mp3咅樂(lè)播放器都需要eda技術(shù)提供支 持。2.1.2設(shè)計(jì)目的此設(shè)計(jì)

14、就是利用eda實(shí)驗(yàn)箱實(shí)現(xiàn)石頭、剪刀、布游戲。 利用點(diǎn)陣顯示左邊和右邊的出拳。能夠統(tǒng)計(jì)顯示左右得分和對(duì)局?jǐn)?shù)。有開(kāi)關(guān)或按鍵能夠改變輸出策略。同時(shí)也為了培養(yǎng)自主學(xué)習(xí)、正確分析和解決問(wèn)題的能力。2.2工作原理與系統(tǒng)框圖計(jì)分模數(shù)碼管顯示模塊塊點(diǎn)陣顯示模塊策略選*擇及出 拳模塊1隨機(jī)數(shù)模一塊策略選 擇及出 拳模塊22.3子模塊輸入輸出和功能模塊輸入變量輸出變量分頻模塊原始時(shí)鐘clkd時(shí)鐘elk消抖模塊原始按鍵key_in按鍵key_out隨機(jī)數(shù)模塊時(shí)鐘elk隨機(jī)數(shù)suijishu策略選擇及出拳模塊復(fù)位信號(hào)rst結(jié)果shuchu隨機(jī)數(shù)suijishu策略1eel策略2cc2出拳chu計(jì)分模塊計(jì)分鍵fen左得

15、分zuofen右得分youfen計(jì)數(shù)jishu數(shù)碼管顯示模 塊時(shí)鐘elk片選信號(hào)pianxuan左得分zuofen段選信號(hào)guanxuan右得分youfen計(jì)數(shù)jishu點(diǎn)陣顯示模塊時(shí)鐘elk行選信號(hào)row結(jié)果shuchu列選信號(hào)line分頻模塊:降低時(shí)鐘頻率。消抖模塊:按鍵消抖。隨機(jī)數(shù)模塊:產(chǎn)生偽隨機(jī)數(shù),用于出拳。策略選擇及出拳模塊:可選擇預(yù)置的幾種策略,調(diào)整出拳比例。計(jì)分模塊:計(jì)算左右得分以及局?jǐn)?shù)。數(shù)碼管顯示模塊:顯示左邊得分,右邊得分,以及局?jǐn)?shù)。 點(diǎn)陣顯示模塊:顯示當(dāng)前出拳。三、軟件設(shè)計(jì)3.1程序流程圖和狀態(tài)機(jī)狀態(tài)機(jī)默認(rèn)策略01a策略1程序流程圖分頻模塊開(kāi)始i初始化yesicount&l

16、t;1000?vcountv 二 0;clkv=clk;i nocou ntv二co unt+1消抖模塊a開(kāi)始 <noyesyescoun t_high<=cou nt_hig h +1;count_high <= 0;counto w<=countow+1;count。w<= 0;no計(jì)分模塊cou nt_high =1250coun t_low1250key <= 1yeskey <= 0a結(jié)束開(kāi)始i局?jǐn)?shù)+1根據(jù)左右出拳11左邊得分右邊得分隨機(jī)數(shù)模塊開(kāi)始nosuijishu=8yessuijishu<=0結(jié)束suijishuv 二 suiji

17、shu+1策略選擇及出拳模塊開(kāi)始根據(jù)開(kāi)關(guān)組 合選擇策略默認(rèn)策略策略1策略2策略3隨機(jī)出拳隨機(jī)出拳隨機(jī)出拳隨機(jī)出拳結(jié)束數(shù)碼管顯示模塊顯示左得分i 位-顯示左得分個(gè)位.顯示局?jǐn)?shù)i 位顯示右得分個(gè)位,顯示右得分十位v v顯示局?jǐn)?shù)個(gè)位點(diǎn)陣顯示模塊開(kāi)始根據(jù)左右 出拳顯示石頭顯示剪刀v顯嚇布v結(jié)束3. 2程序清單頂層模塊modulecaiquan(clkd,rstd,fe nd,chud,chud2,ce0,cel,ce29ce3.pianxua n,guan xuanjowjinejed 1 jed2,shuchu,shuch u2);input clkd;input rstd;input fend;i

18、nput chud;input chud2;input ceo;input cel;input ce2;input ce3;output 7:0jpianxuan;output 7:0guanxuan;output 7:0row;output 5:0jline;output ledl;output led2;output 2:0jshuchu;output 2:0shuchu2;wire elk;wire rst;wire fen;wire chu;wire chu2;wire 3:0jsuijishu;wire 2:0shuchu;wire 2:0shuchu2;wire 7:0jzuofe

19、n;wire 7:0youfen;wire 7:0jishu;fenpin uo(clkd,clk);xiaodou ul(clk,chud,chu);xiaodou u2(clk,chud2,chu2);xiaodou u3(clk,rstdjst);xiaodou u4(clk,fendfen);suijishu u5(clk,suijishu);celve u6(rst,suijishu,chu,ceo,ce 1 ,shuchu,led 1);celve u7(rst,suijishu,chu2,ce2,ce3,shuchu2,led2);dcfcn u8(rst,fcn,shuchu,

20、shuchu2,zuofcn,youfcnjishii); shumaguan u9(clk,zuofen,youfenjishu?pianxuan,guanxuan); dianzhen u 10(clk,shuchu,shuchu2,rowjine);cndmodulc分頻模塊module fenpin(clkd,clk);input clkd;output elk;reg elk;reg 31:0count;initialbegin clk<=rbo;count<=0;endalways(posedge clkd)begincount<=count+l;if(count

21、=32'dl0)begincount<=();clkv=clk;endendendmodule消抖模塊module xiaodou(clk,key_in,key_out);input elk;input key_in;output kcy_out;reg 22:0 count_high;reg 22:0 count_low;reg key_reg;assign key_out = key_reg;always( poscdgc elk )if( key_in = 1'bo )count_low <= count_low + 1;elsecountjow <=

22、23y10;always( poscdgc elk )if( key_in = l'bl )count_high <= count_high +1;elsecount_high <= 23'do;always( poscdgc elk )beginif( count_high = 23'd50000) key_reg <= l'bl;elseif( countjow 二二 23rd50000) key_reg <= lrbo;elsekcy_rcg <= kcy_rcg;endcndmodulc隨機(jī)數(shù)模塊module suijish

23、u (clk,suijishu);input elk;output 3:()suijishu;reg 3:0suijishu;initialsuijishu<=0;always (posedge elk)beginif (suijishu=8) suijishu<=0; else suijishuv二suijishu+1;endendmodule策略選擇及出拳模塊module celve(rst,suijishu,chu,ceo,ce 1 ,shuchu,led);input rst;input 3:osuijishu;input chu;input cco;input cel;o

24、utput 2:0shuchu;output led;reg 2:0shuchu;reg led;initialbeginshuchu<=3'b000;led<=0;endalways (negedge rst or negedge chu)beginif(!rst)beginshuchu<=3'b000;lcd<=0;endelse if(!chu)begincase(ceo,cel)2'b()():beginif(suijishu=o) shuchu2:0<=3,b 100; else if(suijishu=l) shuchu2:0&

25、lt;=3'b 100; else if(suijishu=2) shuchu2:0<=3'bl00; else if(suijishu=3) shuchu2:0<=3'b010; else if(suijishu=4) shuchu2:0<=3'b010; else if(suijishu=5) shuchu2:0<=3'b010; else if(suijishu=6) shuchu2:0<=3'b001; else if(suijishu=7) shuchu2:0<=3'b001;else if(

26、suijishu=8) shuchu2:0<=3'b001;end2,b01:bcginif(suijishu=o) shuchu2:0<=3'b 100; else if(suijishu=l) shuchu2:0<=3,bl00; else if(suijishu=2) shuchu2:0<=3'b 100; else if(suijishu=3) shuchu2:0<=3'b 100; else if(suijishu=4) shuchu2:0<=3'b 100; else if(suijishu=5) shuc

27、hu2:0<=3'b010; else if(suijishu=6) shuchu2:0<=3'b010; else if(suijishu=7) shuchu2:0<=3,b001; else if(suijishu=8) shuchu2:0<=3,b001;end2*bl0:beginif(suijishu=0) shuchu2:0<=3rb 100; else if(suijishu=l) shuchu2:0<=3'b 100; else if(suijishu=2) shuchu2:0<=3'b() 10; el

28、se if(suijishu=3) shuchu2:0<=3,b010; else if(suijishu=4) shuchu2:0<=3'b010; else if(suijishu=5) shuchu2:0<=3'b() 10; else if(suijishu=6) shuchu2:0<=3'b010; else if(suijishu=7) shuchu2:0<=3'b001; else if(suijishu=8) shuchu2:0<=3'b001;end2*bl l:bcginif(suijishu=0)

29、 shuchu2:0<=3*b 100; else if(suijishu=l) shuchu2:0<=3,bl00; else if(suijishu=2) shuchu2:0<=3'b010; else if(suijishu=3) shuchu2:0<=3'b010; else if(suijishu=4) shuchu2:0<=3'b001; else if(suijishu=5) shuchu2:0<=3'b001; else if(suijishu=6) shuchu2:0<=3'b001;else

30、if(suijishu=7) shuchu2:0<=3,b001; else if(suijishu=8) shuchu2:0<=3'b001;end default:begin end endcaseledv二led;endendendmodulemodule defen(rstjen,shuchu,shuchu2,zuofen,youfenjishu);input 2:0shuchu;input 2:0shuchu2;input rst;input fen;output 7:0zuofen;output 7:0youfcn;output 7:0jishu;reg 7:0

31、zuofcn;reg 7:0youfen;reg 7:0jishu;reg 2:0i;parameter quanfen=4'd3,jianfen=4'd2,bufen=4'd 1;initialbeginzuofen<=8'b0000_0000;youfen<=8'b0000_0000;jishu<=8,b()()()()_(x)()();endalways( negedge rst or negedge fen) beginif(!rst)beginjishu<=8,b()()()()_()()(x);endelse if(!

32、fen)beginif(jishu3:0=9)begin jishu3:0<=0; jishu7:4<=jishu7:4+l;endelse jishu3:o<=jishu3:o+1;endendalways( negedge rst or negedge fen)beginif(!rst)beginzuofen<=8'b0000_0000;youfen<=8'b()()()()_()()()();endelse if(!fen)begincasc( shuchu,shuchu2)6'bl ()()_() 1():beginif(zuofe

33、n3:0+quanfen>4*d9)beginzuofe n3:0v=ziiofcn3:0-(4'd 10-quanfen);zuofen7:4<=zuofenf7:4+4'd 1;endelsezuofen 3:0 <=zuofen 3:0+quanfen;end6fbl00_001:beginif(youfen3:0+bufen>4,d9)beginyoufcn3:0<=youfcn3:0-(4'dl0-bufcn); youfen7:4<=youfen7:4+4,dl;endelseyoufen 3:0 <=youfen

34、3:0 +bufen;end6*b010_100:beginif(youfen3:0+quanfen>4'd9)begin youfcn3:0<=youfcn3:0-(4'dl0-quanfcn);youfen 7:4 <=youfen 7:4 +4fd 1;endelse youfen3:()<=youfen3:()+quanfen;end6*b010_001:beginif(zuofen3:0+jianfen>4*d9)beginzuofen3:0<=zuofen3:0-(4,dl0-jianfen);zuofcn7:4<=zuof

35、cn7:4+4'd 1;endelsezuofen 3:0 <=zuofen 3:0 +j ian fen;end6*b001_100:beginif(zuofen 3:0+bufen>4'd9)beginzuofcn3:0<=zuofcn3:0-(4,dl0-bufcn); zuofen7:4<=zuofen7:4+4,dl;endelse zuofen3:0<=zuofen3:0+bufen;end6'b001_010:beginif(youfcn3:0+jianfcn>4'd9)begin youfen3:0<=y

36、oufen3:0-(4'd 10-jianfen); youfen7:4<=youfen7:4+4fdl;endelse youfcn3:0<=youfcn3:0+jianfcn;endendcaseendendendmodule數(shù)碼管顯示模塊module shumaguan(clk,zuofen,youfen,jishu,pianxuim,gu3nxuan);input elk;input 7:0zuofen;input 7:0youfen;input 7:0jishu;output 7:0pianxuan;output 7:0guanxuan;reg 7:0pianxu

37、anreg;reg 7:0guanxuanrcg;reg 2:0 state;reg 2:0 next;reg 3:0 zuofen 1;reg 3:0 zuofcn2;reg 3:0 youfenl;reg 3:0 youfcn2;reg 3:0 jishul;reg f3:0 jishu2;parameterzcro=8,hc0,onc=8,hf9,two=8,ha4,00=880,four=8,h99jivc=8,h92,six=8,h82,scvcn=8,hf8,cight=8, h80,nine=8,h90;assign pianxuan=pianxuanreg;assign gua

38、nxuan=guanxuanreg;always(posedge elk)beginstate<=next;endalways (youfen or zuofen or jishu)beginzuofen2<=zuofen 3:0;zuofen 1 <=zuofen7:4;youfcn2<=youfcn 3:0;youfen 1 <=youfen7:4;j ishu2<=j ishu 3:0;jishul<=jishu7:4;endalways (state or zuofen 1 or zuofen2 or youfen 1 or youfen2 o

39、r jishu 1 or jishu2)begincasc(statc)3'b000:beginpianxuanrcg<=8'b 1000_0000;if(zuofenl=0)guanxuanreg<=zero;else if(zuofcnl=l )guanxuanreg<=one;else if(zuofenl=2)guanxuanrcg<=two;else if(zuofenl=3)guanxuanreg<=three;else if(zuofcnl=4)guanxuanreg<=four;else if(zuofenl=5)guanxu

40、anrcg<=fivc;else if(zuofenl=6) guanxuanreg<=six;else if(zuofcnl=7) guanxuanreg<=se ven;else if(zuofenl=8) guanxuanrcg<=cight;else if(zuofenl=9)guanxua nregv=nine; ncxt<=3'b001;end3'bool:beginpianxuanreg<=8'bo 100_0000;if(zuofen2=0)guanx uanrcg<=zcro;else if(zuofcn2=l

41、) guanxuanreg<=one;else if(zuofcn2=2) guanxuanreg<=two;else if(zuofen2=3) guanxuanreg<=three;else if(zuofen2=4) guanxuanreg<=four;else if(zuofcn2=5) guanxuanreg<=five;else if(zuofen2=6) guanxuanrcg<=six;else if(zuofen2=7)guanxuanreg<=seven;else if(zuofcn2=8) guanxua nregv=eight;

42、else if(zuofen2=9) guanxuanrcg<=ninc;next<=3'b010;end3'b010:beginpianxuanreg<=8'boooo_oo 10;if(youfcnl=0) guanxuanreg<=zero;else if(youfenl=l) guanxuanrcg<=onc;else if(youfenl=2)guanxua nregv=two;else if(youfenl=3)guanxuanreg<=three;else if(youfcnl=4)guanxuanreg<=fou

43、r;else if(youfenl=5) guanxuanrcg<=fivc;else if(youfenl=6)guanxua nregv=six;else if(youfcnl=7)guanxua nregv=seven;else if(youfenl=8)guanxuanrcg<=cight;else if(youfenl=9)guanxuanreg<=nine; ncxt<=3'b011;end3*b011:beginp i an x uan reg<=8 'boooo-ooo 1;if(youfen2=0) guanxuanreg<

44、=zero;else if(youfen2=l)guanxuanreg<=one;else if(youfcn2=2)guanxuanreg<=two;else if(youfen2=3)guanxuanrcg<=thrcc;else if(youfen2=4)guanxuanreg<=four;else if(youfcn2=5)guanxua nregv=five;else if(youfen2=6) guanxuanrcg<=six;else if(youfen2=7)guanxuanreg<=seven;else if(youfcn2=8)guanx

45、uanreg<=eight;else if(youfen2=9)guanxuanrcg<=ninc; next<=3rbloo;end3'bl00:beginpianxuanreg<=8fb0001 _0000;if(jishul=o) guanxuanreg<=zero;else if(jishul=l)guanxuanreg<=one;else if(jishul=2)guanxuanrcg<=two;else if(jishul=3) guanxuanreg<=three;else if(jishul=4) guanxuanreg&

46、lt;=four;else if(jishul=5) guanxuanrcg<=fivc;else if(jishul=6) guanxuanreg<=six;else if(jishul=7)g uan x uanrcg<=scvcn;else if(jishul=8) guanxuanrcg<=cight;else if(jishul=9) guanxuanreg<=nine;next<=3'bloi;end3'bl()l:beginpianxuanreg<=8,boooo_l 000;if(jishu2=0) guanxuanrc

47、g<=zcro;else if(jishu2=l)guanxuanreg<=one;else if(jishu2=2)guanxuanreg<=two;else if(jishu2=3) guanxuanrcg<=thrcc;else if(jishu2=4) guanxuanreg<=four;else if(jishu2=5) guanxuanreg<=five;else if(jishu2=6) guanxuanrcg<=six;else if(jishu2=7)guanxua nregv=seven;else if(jishu2=8) guan

48、xuanreg<=eight;else if(jishu2=9)guanxuanreg<=nine;next<=3*booo;endendcaseendendmodule點(diǎn)陣顯示模塊module dianzhen(clk,shuchu,shuchu2,row,line);input elk;input 2:0shuchu;input 2:0shuchu2;output 7:0row;output 5:0line;reg 7:0row;reg 5:0line;reg 6:0a;reg 6:0b;reg state;always(posedge elk)begincase(sta

49、te)():begincasc(shuchu)3*b000:beginrow<=8'b0()0()00()0;line<=6,b() 10000;end3*bl00:beginif (a=16)a<=0;elsebegincasc(a)0:begin row<=8'bl 1100000;lincv=6'b010000;cnd kbegin row<=8,bl 111 l()00;line<=6,b()l()()01;end2:bcgin row<=8'bl 1111100;linc<=6'b010010;c

50、nd3:begin row<=8'bl 1111000;line<=6'b01001 l;end4:begin row<=8'bl 1111100;line<=6'b010100;end5:begin row<=8'b 11111000;line<=6'b010101 ;end 6:begin row<=8,bl 1111 l()0;line<=6,b()101 l();end 7:bcgin row<=8'bl 1110000;linc<=6*b010111 ;cnd8:beg

51、in row<=8,b()()()()(x)() 1 ;line<=6!bl()l(x)();end 9:bcgin row<=8'b00000011 ;linc<=6*b 101001 ;cnd 10:begin row<=8'b01111111 ;line<=6rbl01010;end 11:begin row<=8'b01111111 ;line<=6'b 101011 ;end 12:bcgin <=801111111 ;lincv二6'bl01100;cnd 13:begin row<

52、=8'b01111111 ;line<=6rbl01101 ;end 14:begin row<=8'b00000011 ;line<=6'bl01110;end 15:bcgin row<=8'b00000001 ;linc<=6*b 101111 ;cndendcasea<=(a+1);endend3'b010:beginif (a=16)a<=0;elsebegincasc(a)0:begin row<=8'bl 1000011 ;line<=6'b010000;end 1:be

53、gin row<=8,bl 1111 l()0;line<=6'b()10001;end 2:bcgin row<=8'bl 1100000;linc<=6'b010010;cnd 3:begin row<=8'bl 1100000;line<=6'b01001 l;end 4:begin row<=8,bl 1111 l()0;line<=6'b()10100;end 5:bcgin row<=8*b 11000011 ;linc<=6*b010101 ;cnd 6:begin row

54、<=8'bl 1000000;line<=6'b010110;end 7:begin row<=8,bl()0()(x)00;line<=6,b()1011 l;end8:begin row<=8'b00000001 ;line<=6'b 101000;end 9:begin row<=8,b()0()()()() 11 ;line<=6,b 101001 ;end 10:bcgin <=801111111 ;lincv二6'bl01010;cnd 11:begin row<=8'b01

55、111111 ;line<=6'b 101011 ;end 12:begin row<=8'b01111111 ;line<=6rb 101100;end 13:bcgin row<=8'b01111111 ;iinc<=6rb 101101 ;cnd 14:begin row<=8'b00000011 ;line<=6'bl01110;end 15:begin row<=8'b00000001 ;line<=6,b 101111 ;endendcasea<=(a+1);endend3*

56、b001:beginif (a=16)a<=0;elsebegincasc(a)o:begin row<=8'bl 1110000;line<=6'b010000;end 1:begin row<=8'b 11000000;line<=6'b010001 ;end 2:bcgin row<=8*bl 1111110;linc<=6'b010010;cnd 3:begin row<=8'bl 1100000;line<=6'b01001 l;end 4:begin row<=8&#

57、39;bl 1111111 ;line<=6'b010100;end 5:bcgin row<=8'b 11100000;linc<=6*b010101 ;cnd 6:bcgin row<=8,b 11111110;linc<=6'b010110;cnd 7:begin row<=8fbl 111 l()00;line<=6,b()1011 l;end8:begin row<=8'b00000001 ;line<=6'b 101000;end 9:begin row<=8,b()0()()()() 11 ;line<=6,b 101001 ;end 10:begin row<=8'b01111111 ;line<=6rbl01010;end 11:begin row<=8'b01111111 ;line<=6&#

溫馨提示

  • 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)論