




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、閃“,辿張 VIZ H;廠丨即W別:川叫二ZH訃.第|畀叩*>aI現(xiàn)代電子技術(shù)實(shí)驗(yàn)報(bào)告數(shù)字跑表的設(shè)計(jì).3目錄誤!未定義書(shū)簽。一、基于FPGA的VHDL設(shè)計(jì)流程1.1 VHDL語(yǔ)言介紹1.1.1 VHDL 的特點(diǎn)1.2 FPGA開(kāi)發(fā)介紹1.2.1 FPGA 簡(jiǎn)介1.2.2 FPGA設(shè)計(jì)流程1.2.3實(shí)驗(yàn)板使用芯片XC3S200A介紹二、總體電路的設(shè)計(jì) 2.1設(shè)計(jì)要求2.2系統(tǒng)工作原理2.3單元電路的劃分三、電子秒表的單元電路設(shè)計(jì)3.1電子秒表的設(shè)計(jì)過(guò)程及結(jié)果分析3.1.1分頻器3.1.2按鍵消抖控制電路計(jì)數(shù)器寄存器顯示模塊使能模塊頂層設(shè)計(jì)3.1.33.1.43.1.53.1.63.1.7四
2、、4.14.24.3五、頂層設(shè)計(jì)分配引腳和下載實(shí)現(xiàn)測(cè)試結(jié)果及結(jié)論經(jīng)驗(yàn)及收獲.3.3.4.4.4.6.6.7.7.8.8.9.12:15181819.20.22、基于FPGA的VHDL設(shè)計(jì)流程1.1 VHDL語(yǔ)言介紹VHDL(Very-high-s peed In tegrated Circuit Hardware Descri ption Lan guage) 誕生于 1982 年.1987 年底,VHDL 被 IEEE ( The Institute of Electrical and Electronics Engineers )和美國(guó)國(guó)防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語(yǔ)言.自IEEE公布了 VHD
3、L的標(biāo)準(zhǔn)版本(IEEE-1076 )之 后,各EDA公司相繼推出了自己的 VHDL設(shè)計(jì)環(huán)境,并宣布自己的設(shè)計(jì)工具可以和VHDL接口 .此后VHDL在電子設(shè)計(jì)領(lǐng)域得到了廣泛的接受,并逐步取代了原有的非標(biāo)準(zhǔn)硬件描述語(yǔ)言.1993年,IEEE對(duì)VHDL進(jìn)行了修訂,從更高的抽象層次和系統(tǒng)描述能力上 擴(kuò)展VHDL的內(nèi)容,公布了新版本的 VHDL,即IEEE標(biāo)準(zhǔn)的1076-1993版本現(xiàn)在,VHDL和VERILOG作為IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述語(yǔ)言,又得到眾多EDA公司的支持,在電子工程領(lǐng)域,已成為事實(shí)上的通用硬件描述語(yǔ)言.有專家認(rèn)為,在新的世紀(jì)中,VHDL和VERILOG語(yǔ)言將承擔(dān)起幾乎全部的數(shù)字系統(tǒng)設(shè)
4、計(jì)任務(wù)1.1.1 VHDL語(yǔ)言的特點(diǎn)與其他硬件描述語(yǔ)言相比,VHDL具有以下特點(diǎn):1、功能強(qiáng)大、設(shè)計(jì)靈活:VHDL具有功能強(qiáng)大的語(yǔ)言結(jié)構(gòu),可以用簡(jiǎn)潔明確的源代碼來(lái)描述復(fù)雜的邏輯控制.它具有多層次的設(shè)計(jì)描述功能,層層細(xì)化,最后可直接生成電路 級(jí)描述.VHDL支持同步電路、異步電路和隨機(jī)電路的設(shè)計(jì),這是其他硬件描述語(yǔ)言所不能比擬的.VHDL還支持各種設(shè)計(jì)方法,既支持自底向上的設(shè)計(jì),又支持自頂向下的設(shè)計(jì); 既支持模塊化設(shè)計(jì),又支持層次化設(shè)計(jì).2、支持廣泛、易于修改:由于VHDL已經(jīng)成為IEEE標(biāo)準(zhǔn)所規(guī)范的硬件描述語(yǔ)言,大多數(shù)EDA工幾乎都支持 VHDL,這為VHDL的進(jìn)一步推廣和廣泛應(yīng)用奠定了基礎(chǔ).
5、在硬件電路設(shè)計(jì)過(guò)程中,主要的設(shè)計(jì)文件是用 VHDL編寫(xiě)的源代碼,因?yàn)閂HDL易讀和結(jié) 構(gòu)化,所以易于修改設(shè)計(jì).3、強(qiáng)大的系統(tǒng)硬件描述能力:VHDL具有多層次的設(shè)計(jì)描述功能,既可以描述系統(tǒng)級(jí) 電路,又可以描述門級(jí)電路.而描述既可以采用行為描述、寄存器傳輸描述或結(jié)構(gòu)描述,也可以采用三者混合的混合級(jí)描述.另外,VHDL支持慣性延遲和 傳輸延遲,還可以準(zhǔn)確地建立硬件電路模型.VHDL支持預(yù)定義的和自定義的數(shù)據(jù)類型,給硬件描述帶來(lái)較大的 自由度,使設(shè)計(jì)人員能夠方便地創(chuàng)建高層次的系統(tǒng)模型.4、獨(dú)立于器件的設(shè)計(jì)、與工藝無(wú)關(guān):設(shè)計(jì)人員用VHDL進(jìn)行設(shè)計(jì)時(shí),不需要首先考慮 選擇完成設(shè)計(jì)的器件,就可以集中精力進(jìn)行
6、設(shè)計(jì)的優(yōu)化.當(dāng)設(shè)計(jì)描述完成后,可以用多種 不同的器件結(jié)構(gòu)來(lái)實(shí)現(xiàn)其功能 .5、很強(qiáng)的移植能力:VHDL是一種標(biāo)準(zhǔn)化的硬件描述語(yǔ)言,同一個(gè)設(shè)計(jì)描述可以被不 同的工具所支持,使得設(shè)計(jì)描述的移植成為可能 .6、易于共享和復(fù)用:VHDL采用基于庫(kù)(Library )的設(shè)計(jì)方法,可以建立各種可再次利用的模塊.這些模塊可以預(yù)先設(shè)計(jì)或使用以前設(shè)計(jì)中的存檔模塊,將這些模塊存放到庫(kù)中,就可以在以后的設(shè)計(jì)中進(jìn)行復(fù)用,可以使設(shè)計(jì)成果在設(shè)計(jì)人員之間進(jìn)行交流和共享 減少硬件電路設(shè)計(jì).1.2 FPGA開(kāi)發(fā)介紹現(xiàn)場(chǎng)可編程門陣列(FPGA)器件是八十年代中期出現(xiàn)的新產(chǎn)品 ,它的應(yīng)用大大地方便 了 IC的設(shè)計(jì),因而隨著數(shù)字技術(shù)日
7、益廣泛的應(yīng)用 ,以FPGA為代表的ASIC器件得到了迅 速的普及和發(fā)展,器件集成度和速度都在高速增長(zhǎng) .傳統(tǒng)的電路設(shè)計(jì)過(guò)程是: 先畫(huà)原理圖、把原理圖繪制成印制電路板圖、再制版、安裝、調(diào)試.有了 FPGA,我們只需要在計(jì)算機(jī)上繪出原理圖,再運(yùn)行相應(yīng)的軟件,就可把所設(shè)計(jì) 的邏輯電路在FPGA中實(shí)現(xiàn).所有步驟均可自動(dòng)完成.電子設(shè)計(jì)工程師自己設(shè)計(jì)專用集成 電路成為了一件很容易的事情.FPGA作為專用集成電路(ASIC )概念上的一個(gè)新型范疇和門類,以其高度靈活的用戶現(xiàn)場(chǎng)編程方式,現(xiàn)場(chǎng)定義高容量數(shù)字單片系統(tǒng)的能力,能夠重復(fù)定義、反復(fù)改寫(xiě)的新穎 功能,為復(fù)雜數(shù)字系統(tǒng)設(shè)計(jì)、研制以及產(chǎn)品開(kāi)發(fā)提供了有效的技術(shù)手
8、段.電子應(yīng)用設(shè)計(jì)工程師應(yīng)用FPGA技術(shù)不僅可避免通常 ASIC單片系統(tǒng)設(shè)計(jì)周期長(zhǎng),前期投資風(fēng)險(xiǎn)大的弱 點(diǎn),而且克服了過(guò)去板級(jí)通用數(shù)字電路應(yīng)用設(shè)計(jì)的落后,繁瑣和不可靠性.目前FPGA的兩個(gè)重要發(fā)展與突破是,大多數(shù)廠商在其高端器件上都提供了片上的處 理器(如 CPU、DSP)等硬核(Hard Core)或固化核(Fixed Core).比如 Xilinx 的 Virtex II Pro芯片可以提供 Power PC,而Altera的Stratix、Excalibur等系列芯片可以提供 Nios、 DSP和Arm等模塊.在FPGA上集成微處理器,使SOPC設(shè)計(jì)更加便利與強(qiáng)大.另一個(gè)發(fā) 展是在不同器件
9、商推出的高端芯片上大都集成了高速串行收發(fā)器,一般能夠達(dá)到3Gb/s以上的數(shù)據(jù)處理能力,在Xilinx、Altera、Lattice都有相應(yīng)的器件型號(hào)提供該功能.這些新功能使FPGA的數(shù)據(jù)吞吐能力大幅度增強(qiáng).122 FPGA設(shè)計(jì)流程對(duì)于目標(biāo)器件為FPGA和CPLD的HDL設(shè)計(jì),其工程設(shè)計(jì)的基本流程如圖(HDL罕/S幵序、HOB殊合昭'如穌件.ytu-測(cè)試電躋,細(xì)程器下*fccfe皺現(xiàn)1礎(chǔ)備再47旳JT訪a*圖仆PGA設(shè)計(jì)流程圖焙絲関” SXAIvl立 件,HOL屈筈1、文本編輯用任何文本編輯器都可以進(jìn)行,通常VHDL文件保存為vhd文件,Verilog文件保存為v 文件.2、使用編譯工具
10、編譯源文件HDL的編譯器有很多ACTIVE公司,MODELSIM 公司,SY NP LICITY 公司,SYN OP SYS 公司,VERIBEST公司等都有自己的編譯器.3、邏輯綜合將源文件調(diào)入邏輯綜合軟件進(jìn)行綜合.綜合的目的是在于將設(shè)計(jì)的源文件由語(yǔ)言轉(zhuǎn)換為實(shí)際的電路.但是此時(shí)還沒(méi)有在芯片中形成真正的電路.這一步的最終目的是生成門電路級(jí)的網(wǎng)表(Netlist).4、布局、布線將第3步生成的網(wǎng)表文件調(diào)入PLD廠家提供的軟件中進(jìn)行布線,即把設(shè)計(jì)好的邏輯安放到CPLD / FPGA內(nèi).這一步的目的是生成用于下載 (編程Programming)的編程文件.在 這一步,將用到第3步生成的網(wǎng)表,并根據(jù)C
11、PLD/FPGA廠商的器件容量,結(jié)構(gòu)等進(jìn)行布 局、布線.這就好像在設(shè)計(jì) PCB時(shí)的布局布線一樣.先將各個(gè)設(shè)計(jì)中的門根據(jù)網(wǎng)表的內(nèi)容 和器件的結(jié)構(gòu)放在器件的特定部位然后,在根據(jù)網(wǎng)表中提供的各門的連接,把各個(gè)門的輸入輸出連接起來(lái).最后,生成一個(gè)供編程的文件.這一步同時(shí)還會(huì)加一些時(shí)序信息 (Timing)到你的設(shè)計(jì)項(xiàng)目中去,以便于你做后仿真.5、后仿真利用在布局布線中獲得的精確參數(shù) ,用仿真軟件驗(yàn)證電路的時(shí)序.(也叫布局布線仿真 或時(shí)序仿真).這一步主要是為了確定你的設(shè)計(jì)在經(jīng)過(guò)布局布線之后,是不是還滿足你的設(shè)計(jì)要求.6、編程,下載如果前幾步都沒(méi)有發(fā)生錯(cuò)誤,并且符合設(shè)計(jì)要求,這一步就可以將由適配器等產(chǎn)生
12、的配 置或下載文件通過(guò)編程器或下載電纜下載到目標(biāo)芯片中.7、硬件測(cè)試硬件測(cè)試的目的是為了在更真實(shí)的環(huán)境中檢驗(yàn)HDL設(shè)計(jì)的運(yùn)行情況,特別是對(duì)于HDL程序設(shè)計(jì)上不是十分規(guī)范,語(yǔ)義上含有一定歧義的程序 .123實(shí)驗(yàn)板使用芯片XC3S200A介紹本實(shí)驗(yàn)設(shè)計(jì)中采用的是 Xilinx公司的ETL-001 FPGA開(kāi)發(fā)板進(jìn)行開(kāi)發(fā)設(shè)計(jì),該開(kāi)發(fā)板 所提供的主芯片 XC3S200A是Xilinx公司最新推出的90nm半導(dǎo)體工藝的低端低成本的 FPGA芯片,可以廣泛地運(yùn)用在通信,軍事,電力,控制,消費(fèi)電子,汽車電子絕大多數(shù)電子應(yīng) 用領(lǐng)域芯片主要特性如下表 1所示:系統(tǒng)門存邏輯單 元口BRAMK 跋專用乘時(shí)鐘管 理器
13、(DCXl )夕最大用 戶10 口 PS大分布 式 RAMKB*XC3E200A<2<X)K Q2血419知表1實(shí)驗(yàn)板XC3S200A該芯片是基于SRAM工藝的超大規(guī)模可編程邏輯芯片,提供了高達(dá)20萬(wàn)的等效系統(tǒng)門,3854個(gè)查找表(LUT) ,3854個(gè)寄存器(FF),288Kbit的塊狀SRAM以及16個(gè)18*18 的乘法器,以及60對(duì)差分l/O,LVD.芯片主要特性如上表示.二、系統(tǒng)總體設(shè)計(jì)2.1電子秒表的設(shè)計(jì)任務(wù)目標(biāo)1、跑表精度為0.01秒2、 跑表計(jì)時(shí)范圍為:1小時(shí)3、設(shè)置開(kāi)始計(jì)時(shí)/停止計(jì)時(shí)、復(fù)位兩個(gè)按鈕4、 顯示工作方式:用六位 BCD七段數(shù)碼管顯示讀數(shù).顯示格式:00:
14、00:00 擴(kuò)展功能:按鍵消抖;選手時(shí)間分時(shí)顯示;2.2系統(tǒng)工作原理系統(tǒng)基本流程圖如圖:右英 掘蕩器廿始,復(fù)位 按鍵選丁到終點(diǎn)訃£ 時(shí)存/収按鍵FT消抖電路數(shù)據(jù)數(shù)據(jù)鎖存讀取圖1系統(tǒng)基本流程圖2.3單元電路的劃分根據(jù)要求設(shè)計(jì)的電路包括以下幾個(gè)模塊:1. 分頻器:由于我們要以 1ms為最小單位進(jìn)行計(jì)時(shí).分頻器的功能是對(duì)晶體振蕩器產(chǎn)生的48MHz時(shí)鐘信號(hào)進(jìn)行分頻 產(chǎn)生1KHZ的基準(zhǔn)信號(hào),對(duì)晶體振蕩器產(chǎn)生的時(shí)鐘信號(hào)進(jìn) 行分頻,產(chǎn)生時(shí)間基準(zhǔn)信號(hào).所以需要這個(gè)模塊2. 計(jì)數(shù)鎖存器:由于我們要實(shí)現(xiàn)按不同的鍵讓秒表產(chǎn)生不同的反應(yīng)對(duì)時(shí)間基準(zhǔn)脈沖進(jìn)行計(jì)數(shù),完成計(jì)時(shí)功能.并完成對(duì)數(shù)據(jù)的鎖存使顯示保持暫停.
15、所以需要這個(gè)模塊控制3. 控制器:由于我們要實(shí)現(xiàn)按不同的鍵讓秒表產(chǎn)生不同的反應(yīng)計(jì)數(shù)器的運(yùn)行、停止以及復(fù)位,產(chǎn)生鎖存器的使能信號(hào).4. 按鍵消抖電路:由于普通按鍵會(huì)產(chǎn)生抖動(dòng)現(xiàn)象,只按一下,可能出現(xiàn)多次抖動(dòng)的現(xiàn)象使按鍵不靈敏.所以需要消除按鍵輸入信號(hào)抖動(dòng)的影響,輸出單脈沖.5.掃描顯示的控制電路: 包括掃描計(jì)數(shù)器、數(shù)據(jù)選擇器和7段譯碼器,控制8個(gè)數(shù)碼管 以掃描方式顯示計(jì)時(shí)結(jié)果.單元電路劃分總框圖如下圖2:鎖存器攔掩顯示控瓶(包括掃描控制和顯示譯碼)11按叢i7*h希抖電路i9!去相 - -丨 LED ;! i電路;nca圖2單元電路劃分總框圖二、單兀電路設(shè)計(jì)3.1單元電路設(shè)計(jì)思路3.1.1分頻器分
16、頻器的功能是對(duì)晶體振蕩器產(chǎn)生的48MHz時(shí)鐘信號(hào)進(jìn)行分頻,產(chǎn)生1KHZ和100Hz4800次分頻,從而得到1khz的信號(hào)對(duì)于頻率為480000.的基準(zhǔn)信號(hào).對(duì)于頻率為1khz的信號(hào),分頻系數(shù)為48000,因此需要一個(gè)24000進(jìn)制的計(jì)數(shù) 器,每當(dāng)計(jì)數(shù)24000個(gè)時(shí)鐘,分頻輸出信號(hào)C1000取反一次,c1000取反兩次得到一個(gè)周期 的信號(hào).這樣可實(shí)現(xiàn)對(duì)輸入時(shí)鐘信號(hào)的 100hz的信號(hào),原理相同,分頻系數(shù)為生成的分頻器模塊如圖3所示:fdivoclkincWOO-c100圖3分頻器模塊其中,clkin為48MHz晶振時(shí)鐘信號(hào);c1000為分頻輸出的1KHz時(shí)鐘信號(hào),c100為分 頻輸出的100Hz
17、時(shí)鐘信號(hào).設(shè)計(jì)程序如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_arith.ALL;use IEEE.STD_LOGIC_u nsig ned.ALL; en tity fdiv isSTD_LOGIC;STD_LOGIC;STD_LOGIC);Port ( clki n : inc1000 : outc100 : outend fdiv;architecture Behavioral of fdiv issig nal c1000_te mp:i nteger range 0 to 23999:=0; sig n
18、al c100_te mp:i nteger range 0 to 239999:=0; sig nal fd1000,fd100:STD_LOGIC:='0'beginpro cess (elk in) isbeginif risin g_edge(clk in) the nif c1000_te mp=23999 then c1000_te mp <=0;fd1000<= not fd1000; else c1000_te mp <=c1000_tem p+1;end if;end if;end pro cess;c1000 <=fd1000;p r
19、ocess (clk in) isbeginif risin g_edge(clk in) the nif c100_te mp=239999 then c100_te mp <=0;fd100<= not fd100; else c100_te mp <=c100_tem p+1;end if;end if;end pro cess;c100 <=fd100;end Behavioral;仿真波形圖4如下圖4分頻器仿真波形由仿真波形可知,分頻器的設(shè)計(jì)是符合預(yù)期期望的 ,當(dāng)產(chǎn)生輸入晶振信號(hào)時(shí),經(jīng)過(guò)分頻 器內(nèi)部處理的信號(hào)最終產(chǎn)生兩個(gè)輸出信號(hào) ,分別是1KHZ和100HZ,
20、由波形圖可以看出,當(dāng) 時(shí)鐘信號(hào)計(jì)數(shù)24000個(gè)脈沖時(shí),1KZ的波形翻轉(zhuǎn)一次,從而產(chǎn)生1KZ的信號(hào) 侗理,100Hz 的信號(hào)也符合預(yù)期設(shè)計(jì).3.1.2按鍵消抖由于實(shí)驗(yàn)板上的按鍵,在按下和松開(kāi)的短暫時(shí)間里,會(huì)出現(xiàn)抖動(dòng)現(xiàn)象,這樣會(huì)嚴(yán)重影響 按鍵的效果,故此需要設(shè)計(jì)一個(gè)消抖電路,來(lái)消除這種不利的影響,按鍵消抖電路不僅可 以消除按鍵抖動(dòng)的影響,而且每按一次鍵,只輸出一個(gè)脈沖,其寬度為一個(gè)時(shí)鐘周期,達(dá)到 整形的作用,按鍵消抖電路是利用時(shí)間基準(zhǔn)信號(hào)對(duì)按鍵按下時(shí)產(chǎn)生的抖動(dòng)進(jìn)行整形,使其輸出為正常的脈沖信號(hào)的.消抖設(shè)計(jì)框圖5如下:XD1 F-B.clkihkeyout1hkeyin曰圖5消抖模塊設(shè)計(jì)原理圖程序設(shè)
21、計(jì)如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_u nsig ned.ALL;use IEEE.STD_LOGIC_arith.ALL;en tity XD isPort ( clk1k : in STD_LOGIC;keyi n : in STD_LOGIC; keyout : out STD_LOGIC); end XD;architecture Behavioral of XD issig nal key1,key2:std_logic;sig nal coun t:i nteger range 1 to 3
22、:=1beginpro cess(clk1k,key in)beginif clk1k'eve nt and clk1k='1' the nif coun t=3 the n key1<='1'else key1<='0'coun t<=co un t+1;end if; key2<=key1;end if;if key in=' O' the ncoun t<=1;end if;end pro cess;keyout<=(not key1) and key2; end Behavior
23、al;仿真波形圖6如下:在按鍵按下的一個(gè)周期內(nèi),消抖模塊輸出僅有一個(gè)時(shí)鐘周期,抑制了按鍵按下?tīng)顟B(tài)不穩(wěn)的情況。3.1.3計(jì)數(shù)器十進(jìn)制計(jì)數(shù)器是每當(dāng)計(jì)數(shù)從1記到9時(shí),下一位產(chǎn)生一個(gè)進(jìn)位信號(hào),進(jìn)而輸入到下一個(gè)計(jì)數(shù)器的時(shí)鐘輸入端,進(jìn)而達(dá)到秒表所要求的計(jì)數(shù)進(jìn)制.計(jì)數(shù)器是在時(shí)鐘基準(zhǔn)信號(hào)的情況 下,分頻為我們需要的計(jì)時(shí)時(shí)間信號(hào),電子秒表的最低位為0.01秒,即需要100Hz的脈沖,當(dāng)最低一位計(jì)數(shù)滿 9時(shí),向前進(jìn)1,同時(shí)自身為0,重復(fù)循環(huán).本設(shè)計(jì)中采用的是異步計(jì)時(shí)器,當(dāng)上一位計(jì)數(shù)到9時(shí),產(chǎn)生時(shí)鐘進(jìn)位,下一時(shí)鐘在進(jìn)位成立時(shí),開(kāi)始計(jì)時(shí)加1,以此內(nèi)推,最終輸出6組,計(jì)時(shí)信號(hào),分別是0.01秒位,0.1秒位,秒個(gè)位,秒
24、十位,分個(gè)位,分十位.當(dāng)計(jì)數(shù)到59'59' 59時(shí)計(jì)數(shù)清零為00'00' 00重復(fù)計(jì)時(shí).數(shù)字跑表 需要用六位七段數(shù)碼管顯示,數(shù)碼管顯示數(shù)字分別用 2個(gè)6進(jìn)制計(jì)數(shù)器和4個(gè)10進(jìn)制計(jì) 數(shù)器對(duì)其計(jì)數(shù),從秒表顯示的右側(cè)到左側(cè)計(jì)數(shù)器分別為十進(jìn)制、十進(jìn)制、十進(jìn)制、六進(jìn)制、十進(jìn)制、六進(jìn)制、十進(jìn)制計(jì)數(shù)器,如圖7所示:日日日日日日?qǐng)D7數(shù)碼管顯示示意圖計(jì)數(shù)器的設(shè)計(jì)圖如下:10進(jìn)制計(jì)數(shù)器的框圖如下:count101<irstcarryout口carryin coiintou 1(3:0)圖810進(jìn)制計(jì)數(shù)器的框圖6進(jìn)制計(jì)數(shù)器的框圖如下:counterstcarryoutelk圖9
25、 6進(jìn)制計(jì)數(shù)器的框圖相應(yīng)程序設(shè)計(jì)如下:10進(jìn)制程序設(shè)計(jì)如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_arith.ALL;use IEEE.STD_LOGIC_u nsig ned.ALL;en tity cou nt101 isPort ( rst : in STD_LOGIC;elk : in STD_LOGIC;carryin : in STD_LOGIC;carryout : out STD_LOGIC;cou ntout : out STD_LOGIC_VECTOR (3 dow nto 0); end c
26、ou nt101;architecture Behavioral of coun t101 issig nal cou nt:STD_LOGIC_VECTOR (3 dow nto 0):="0000" beginpro cess(clk,rst)beginif rst='1' then cou nt<="0000"else if risin g_edge (clk) the nif carry in='1' the nif cou nt<"1001" then cou nt<=cou
27、 nt+1;else coun t<="0000"end if;end if;else n ull;end if;end if;end pro cess;coun tout<=co unt;carryout<='1' whe n carryi n-1' and cou nt="1001" else '0' end Behavioral;6進(jìn)制程序設(shè)計(jì)如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_arith.ALL;us
28、e IEEE.STD_LOGIC_u nsig ned.ALL;en tity count6 isPort ( rst : in STD_LOGIC;clk : in STD_LOGIC;carryin : in STD_LOGIC;carryout : out STD_LOGIC;cou ntout : out STD_LOGIC_VECTOR (3 dow nto 0); end coun t6;architecture Behavioral of count6 issig nal cou nt:STD_LOGIC_VECTOR (3 dow nto 0):="0000"
29、;beginpro cess(clk,rst)beginif rst='1' then cou nt<="0000"else if risin g_edge (clk) the nif carry in='1' the nif cou nt<"0101" then cou nt<=cou nt+1;else coun t<="0000"end if;end if;else n ull;end if;end if;end pro cess;coun tout<=co unt;
30、carryout<='1' whe n carryi n-1' and cou nt="0101" else 'O' end Behavioral;仿真波形如下圖:10進(jìn)制的仿真波形如下:1-Lnh_n_ryL_-Kri-|rnrnm-innmr7r.nr7L-inn_nrTT-yI . I I k J u- A I J IT 1 L li L - J l' - U J I r d r.iLl 1 iTiI i I nII CtJ3 La*:l icjj a 1-T t T J3J:圖10 10進(jìn)制計(jì)數(shù)器仿真圖形由圖可見(jiàn)
31、,設(shè)計(jì)模塊對(duì)波形個(gè)數(shù)計(jì)數(shù),從產(chǎn)生結(jié)果為2進(jìn)制的4位數(shù).從0000 到1001,結(jié)果正確.二廠廠Lj rm飛二 _V"n6進(jìn)制的仿真波形如下:廠TO Ml 1111 hntell bi in 阪 tor Xin hatoil inii in te: h蟄陽(yáng)u lim bri lig Ki 圖11 6進(jìn)制計(jì)數(shù)器的仿真波形有圖可知,6進(jìn)制計(jì)數(shù)器設(shè)計(jì)正確,脈沖時(shí)鐘上升沿到來(lái)時(shí)計(jì)數(shù)器開(kāi)始計(jì)數(shù), 從0000到1001然后重復(fù)循環(huán).3.1.4寄存器數(shù)據(jù)鎖存器,在使能為1時(shí),將當(dāng)前數(shù)據(jù)送到寄存器中保存,可記錄4組數(shù)據(jù),當(dāng)再次使能時(shí),將寄存的數(shù)據(jù)賦給輸出,顯示寄存器中的4組數(shù)據(jù).設(shè)計(jì)框圖如下圖:-sa
32、ve2iiactibmhoutiO) mltMjySjOj*shout td:O)tmlMpOl-AL5lnp:0d5aut(3jQ)+L則陽(yáng)yout側(cè)f ft fl Ai . “ . “ .- “-a-1圖12寄存器設(shè)計(jì)框圖寄存器程序設(shè)計(jì)如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;use IEEE.STD_LOGIC_ARITH.ALL;en tity save2 isPort ( lacthi n : inreset : inmhi n : inmlin : inshi n : in
33、slin : indsi n : incsin : inmhout : outmlout : out shout : outslout : outdsout : outcsout : outend save2;STD_LOGIC;STD_LOGIC;STD_LOGIC_VECTOR (3 dow nto 0); STD_LOGIC_VECTOR (3 dow nto 0); STD_LOGIC_VECTOR (3 dow nto 0); STD_LOGIC_VECTOR (3 dow nto 0); STD_LOGIC_VECTOR (3 dow nto 0); STD_LOGIC_VECTO
34、R (3 dow nto 0);STD_LOGIC_VECTOR (3 dow nto 0);STD_LOGIC_VECTOR (3 dow nto 0); STD_LOGIC_VECTOR (3 dow nto 0); STD_LOGIC_VECTOR (3 dow nto 0);STD_LOGIC_VECTOR (3 dow nto 0); STD_LOGIC_VECTOR (3 dow nto 0);architecture Behavioral of save2 issig nal mh1out,ml1out,sh1out,sl1out,ds1out,cs1out:std_logic_
35、vector(3 downto 0);sig nal mh2out,ml2out,sh2out,sl2out,ds2out,cs2out:std_logic_vector(3 downto 0);sig nal mh3out,ml3out,sh3out,sl3out,ds3out,cs3out:std_logic_vector(3 downto 0);sig nal mh4out,ml4out,sh4out,sl4out,ds4out,cs4out:std_logic_vector(3 downto 0);sig nal mh11out,ml11out,sh11out,sl11out,ds11
36、out,cs11out:std_logic_vector(3 dow nto 0);sig nal cou nt:std_logic_vector(3 dow nto 0):="0000"beginpro cess(lacth in, reset)beginif reset='1' the ncou nt<="0000"elsif lacth in'event and lacth in='1' the nif cou nt="1OOO" thencou nt<="0000&
37、quot; elsecoun t<=co un t+1; end if;end if;end p rocess;pro cess(co un t,mh in, mli n,shin, sli n,dsin,csin) begincase count iswhe n "0000"=>mh1out<=mh in; ml1out<=mli n; sh1out<=sh in; sl1out<=sli n; ds1out<=ds in; cs1out<=cs in;mh11out<=mh in; ml11out<=mli n
38、; sh11out<=sh in; sl11out<=sli n; ds11out<=ds in; cs11out<=cs inwhe n "0001"=> mh2out<=mhi n; ml2out<=mli n;sh2out<=shi n;sl2out<=sli n;ds2out<=dsi n;cs2out<=cs in;mh11out<=mh in; ml11out<=mli n; sh11out<=sh in; sl11out<=sli n; ds11out<=ds in
39、; cs11out<=cs inwhe n "0010"=> mh3out<=mh in; ml3out<=mli n; sh3out<=sh in; sl3out<=sli n; ds3out<=ds in; cs3out<=cs in;mh11out<=mh in; ml11out<=mli n; sh11out<=sh in; sl11out<=sli n; ds11out<=ds in; cs11out<=cs inwhe n "0011"=> mh4out
40、<=mhi n; ml4out<=mli n;sh4out<=shi n;sl4out<=sli n;ds4out<=dsi n;cs4out<=cs in;mh11out<=mh in; ml11out<=mli n; sh11out<=sh in; sl11out<=sli n; ds11out<=ds in; cs11out<=cs inwhe n "0100"=>mh11out<=mhi n; ml11out<=mli n;sh11out<=shi n;sl11out&l
41、t;=sli n;ds11out<=dsi n;cs11 out<=cs in;whe n "0101"=> mh11out<=mh1out;ml11out<=ml1out;sh11out<=sh1out;sl11out<=sl1out;ds11out<=ds1out;cs 11out<=cs1out;whe n "0110"=> mh11out<=mh2out;ml11out<=ml2out;sh11out<=sh2out;sl11out<=sl2out;ds11out
42、<=ds2out;cs 11out<=cs2out;whe n "0111"=> mh11out<=mh3out;ml11out<=ml3out;sh11out<=sh3out;sl11out<=sl3out;ds11out<=ds3out;cs 11out<=cs3out;whe n "1000"=> mh11out<=mh4out;ml11out<=ml4out;sh11out<=sh4out;sl11out<=sl4out;ds11out<=ds4out;cs
43、 11out<=cs4out;whe n others=> mh11out<=mh in; ml11out<=mli n; sh11out<=sh in; sl11out<=sli n; ds11out<=ds in; cs11out<=cs inend case;end p rocess;mhout<=mh11out;mlout<=ml11out;shout<=sh11out;slout<=sl11out;dsout<=ds11out;csout <=cs11out;end Behavioral;寄存器仿真波
44、形圖如下:由圖,在按鍵脈沖上升沿來(lái)到之前,輸入直接輸出,程序只進(jìn)行了對(duì)數(shù)據(jù)的存儲(chǔ)功能 于截圖大小在報(bào)告中顯示范圍的有限,只記錄第4次按鍵及之后的圖形),當(dāng)?shù)谖宕?latchin時(shí),輸出為第一次按鍵時(shí)的輸入值,按第6次時(shí),輸出為第二次記錄時(shí)的輸入值 次類推,當(dāng)?shù)?次按鍵以后再按第9次,程序又重復(fù)循環(huán).圖13寄存器仿真波形圖(由,按下.依3.1.5顯示控制模塊ZIIL/VILT;'-11EJLT I J 丄亠 _ ”> 一 ! _ 5 _UrT I亡I'S. S.fi & S. 0. B. S.實(shí)驗(yàn)板上設(shè)計(jì)了 8位7段數(shù)碼顯示,以便編程者將基本的數(shù)字信息通過(guò)數(shù)碼管顯示
45、出 來(lái),原理圖如下:圖15顯示控制原理圖在控制電路部分,使用了一組PNP三極管(Q1Q8)將正極的控制電平由高電平轉(zhuǎn)為 低電平,這樣數(shù)碼管的位數(shù)和段位的控制都統(tǒng)一成了低電平有效.在位數(shù)控制部分加入了3-8譯碼器以簡(jiǎn)化位數(shù)編碼,用DIG接口的二進(jìn)制數(shù)據(jù) 000111直接表示數(shù)碼管第一位 到第八位的位選信號(hào).利用動(dòng)態(tài)掃描原理和設(shè)計(jì)要求,顯示控制模塊包含一個(gè)六選一數(shù)據(jù)器、三八譯碼器和 七段譯碼器.六進(jìn)制計(jì)數(shù)器通過(guò) ent依次加1來(lái)控制使每次只將一路輸入數(shù)據(jù)賦給輸出,六選一數(shù)據(jù)選擇器利用 ent的依次加1來(lái)輪番從低位至高位選擇輸入口,三八譯碼器根據(jù)ent的值判斷選擇輸入端,以完成顯示的位選.用case
46、語(yǔ)句來(lái)決定當(dāng)輸入口決定以后,輸入 口的數(shù)據(jù)要顯示為具體多少數(shù)值.此步驟對(duì)照數(shù)碼管的段選來(lái)完成.原理框圖的設(shè)計(jì)如下所示:elk -controself 7 0mh(3.G)-ml (3.0)3h(3:0jct<3:0)lfrd7(6.0)5>-圖16顯示控制模塊框圖具體程序設(shè)計(jì)如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_arith.ALL;use IEEE.STD_LOGIC_u nsig ned.ALL;en tity contro isPort ( clk : inmh : inml : insh
47、: insi : inds : inSTD_LOGIC;STD_LOGIC_VECTOR (3 dow nto 0);STD_LOGIC_VECTOR (3 dow nto 0);STD_LOGIC_VECTOR (3 dow nto 0);STD_LOGIC_VECTOR (3 dow nto 0);STD_LOGIC_VECTOR (3 dow nto 0);STD_LOGIC_VECTOR (3 dow nto 0);cs : insel : out STD_LOGIC_VECTOR (7 dow nto 0); led7 : out STD_LOGIC_VECTOR (6 dow nt
48、o 0); end con tro;architecture Behavioral of contro issig nal cnt:STD_LOGIC_VECTOR (2 dow nto 0):="000" sig nal data:STD_LOGIC_VECTOR (3 dow nto 0);begin-sca n choose 1 from 6p rocess(clk)beginif risin g_edge (clk) the nif cnt="101" then cnt<="000" else cn t<=c nt
49、+1;end if;end if;end pro cess;p rocess(c nt,cs,ds,sl,sh,ml,mh) begincase ent iswhe n "000"=>data<=cs;sel<="11101111"whe n "001"=>data<=ds;sel<="11011111"whe n "010"=>data<=sl;sel<="01111111"whe n "011"=&
50、gt;data<=sh;sel<="11111110"whe n "100"=>data<=ml;sel<="11111011"whe n "101"=>data<=mh;sel<="11110111"whe n others=>n ull;end case;end pro cess;-Ied7:to decide the nu mberP rocess(data) beginled7<="0000000"case
51、data is whe n "0000" => led7<="0000001"whe n "0001" => led7<="1001111"whe n "0010" => led7<="0010010"whe n "0011" => led7<="0000110"whe n "0100" => led7<="1001100"whe n &
52、quot;0101" => led7<="0100100"whe n "0110" => led7<="0100000"whe n "0111" => led7<="0001111"when "1000" => led7<="0000000"whe n "1001" => led7<="0000100"whe n others => n ul
53、l;end case;end pro cess;end Behavioral;根據(jù)設(shè)計(jì)所做仿真如圖:0"IS A吒EbFfcs比TI E> dCBT"叭L*:n * uiBru片叱詔?rmlisa :k血曠:ilitZHi 耳祈i Eiil一期圖17顯示控制模塊仿真波形圖根據(jù)仿真波形,隨著計(jì)數(shù)脈沖個(gè)數(shù)的逐次遞加,38譯碼器將數(shù)據(jù)輸入端選擇出來(lái),實(shí)現(xiàn)對(duì)數(shù)碼管的位選,7段譯碼器對(duì)應(yīng)相應(yīng)的數(shù)字,即段選信號(hào),從而使顯示控制模塊同時(shí)實(shí) 現(xiàn)了位選與段選的功能.3.1.6使能模塊使能模塊的主要功能是產(chǎn)生計(jì)數(shù)器的使能控制信號(hào).在輸入信號(hào)的作用下,輸出信號(hào)發(fā)生翻轉(zhuǎn).根據(jù)系統(tǒng)設(shè)計(jì)要求,設(shè)
54、置開(kāi)始計(jì)時(shí)/停止計(jì)時(shí)按鍵,該按鍵每按一次,跑表開(kāi)始或停 止計(jì)時(shí),再按一次,停止或開(kāi)始計(jì)時(shí).該模塊的設(shè)計(jì)原理框圖如下所示:ena圖18使能原理設(shè)計(jì)框圖其設(shè)計(jì)程序如下所示:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_anth.ALL;use IEEE.STD_LOGIC_u nsig ned.ALL; en tity en isPort ( k : in STD_LOGIC;e : out STD_LOGIC);end en;architecture Behavioral of en issig nal e1:STD_LOGIC;beginpro cess(k)beginif risin g_edge(k) the n e1<=not e1; end if;end pro cess;e<=e1;end Behavioral;由仿真圖可見(jiàn),每當(dāng)按鍵一次,在上升沿來(lái)到時(shí),輸出信號(hào)波形圖翻轉(zhuǎn)一次,實(shí)現(xiàn)每按 鍵一次,使能信號(hào)變化一次.四、設(shè)計(jì)實(shí)現(xiàn)4.1頂層設(shè)計(jì)在ise軟件中,可以采用原理圖的輸入方式完成電路的設(shè)計(jì).分單元設(shè)計(jì)好每個(gè)模塊以后,通過(guò)電路圖將各個(gè)部分連接到一起,實(shí)現(xiàn)頂層設(shè)計(jì),頂層設(shè)計(jì)系統(tǒng)圖如下:4.2管腳分配和下載實(shí)現(xiàn)管腳分配圖示在系統(tǒng)設(shè)計(jì)圖中可以看出,管腳分
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025個(gè)人土地轉(zhuǎn)讓合同
- 2025電競(jìng)館裝飾裝修工程施工合同
- 修房屋漏水施工合同樣本
- 農(nóng)田承包合同書(shū)二零二五年
- 總工程師聘用合同樣本
- 2025年家畜轉(zhuǎn)基因胚胎項(xiàng)目合作計(jì)劃書(shū)
- 二零二五版探礦權(quán)股權(quán)轉(zhuǎn)讓框架協(xié)議范例
- pvc地板清洗合同樣本
- 二零二五個(gè)人借款合同經(jīng)典
- 乘坐私人校車合同樣本
- 外研版五年級(jí)英語(yǔ)下冊(cè)期中測(cè)試卷及答案【完整】
- 中藥飲片處方點(diǎn)評(píng)表-副本(文檔良心出品)
- JJF1030-2023溫度校準(zhǔn)用恒溫槽技術(shù)性能測(cè)試規(guī)范
- YYT 1849-2022 重組膠原蛋白
- 米什金貨幣金融學(xué)英文版習(xí)題答案chapter1英文習(xí)題
- 紅色資本家榮毅仁課件
- 酒店貸款報(bào)告
- 會(huì)計(jì)職業(yè)道德對(duì)職業(yè)發(fā)展的影響研究
- 體育賽事推廣方案
- 子宮肌瘤健康教育指導(dǎo)
- 手術(shù)室專案改善活動(dòng)護(hù)理課件
評(píng)論
0/150
提交評(píng)論