【正文】
更強(qiáng)的行為描述能力,從而決定了他成為系統(tǒng)設(shè)計(jì)領(lǐng)域最佳的硬件描述語言。(2) VHDL豐富的仿真語句和庫函數(shù),使得在任何大系統(tǒng)的設(shè)計(jì)早期就能查驗(yàn)設(shè)計(jì)系統(tǒng)的功能可行性,隨時(shí)可對(duì)設(shè)計(jì)進(jìn)行仿真模擬。符合市場(chǎng)需求的大規(guī)模系統(tǒng)高效,高速的完成必須有多人甚至多個(gè)代發(fā)組共同并行工作才能實(shí)現(xiàn)。 (5) VHDL對(duì)設(shè)計(jì)的描述具有相對(duì)獨(dú)立性,設(shè)計(jì)者可以不懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨(dú)立的設(shè)計(jì)。Altera公司在推出各種CPLD的同時(shí),也在不斷地升級(jí)相應(yīng)的開發(fā)工具軟件,已從早起的第一代A+PLUS、第二代MAX+PLUS發(fā)展到第三代MAX+PLUSⅡ和第四代Quartus。MAX+PLUSⅡ開發(fā)系統(tǒng)具有以下特點(diǎn)(1) 多平臺(tái)。(2) 開放的界面。目前MAX+PLUSⅡ所支持的主流第三方EDA工具主要有Synopsys、Viewlogic、Mentor、Graphics、Cadence、OrCAD、Xilinx等公司提供的工具。MAX+PLUSⅡ具有一個(gè)完整的可編程邏輯設(shè)計(jì)環(huán)境,包括設(shè)計(jì)輸入、設(shè)計(jì)處理、設(shè)計(jì)校驗(yàn)和下載編程4個(gè)模塊,設(shè)計(jì)者可以按設(shè)計(jì)流程選擇工作模塊。MAX+PLUSⅡ開發(fā)系統(tǒng)的核心——Compiler(編譯器)能夠自動(dòng)完成邏輯綜合和優(yōu)化,它支持Altera的Classic、MAX7000、FLEX8000和FLEX10K等可編程器件系列,提供一個(gè)與結(jié)構(gòu)無關(guān)的PLD開發(fā)環(huán)境。MAX+PLUSⅡ支持各種HDL設(shè)計(jì)輸入語言,包括VHDL、VerilogHDL和Altera的硬件描述語言AHDL。MAX+PLUSⅡ提供豐富的庫單元供設(shè)計(jì)者調(diào)用,其中包括一些基本的邏輯單元,74系列的器件和多種特定功能的宏功能模塊以及參數(shù)化的兆功能模塊。 軟件組成MAX+PLUSⅡ軟件采用模塊化結(jié)構(gòu),包括設(shè)計(jì)輸入、項(xiàng)目處理、項(xiàng)目校驗(yàn)和器件編程4個(gè)部分,所有這些部分都集成在一個(gè)可視化的操作環(huán)境下。另外,還可以利用第三方EDA工具生成的網(wǎng)表文件輸入,該軟件可接受的網(wǎng)表有EDIF格式、VHDL格式及Verilog格式。(2) 項(xiàng)目處理設(shè)計(jì)處理的任務(wù)就是對(duì)項(xiàng)目進(jìn)行編譯(Compile),編譯實(shí)際就是將設(shè)計(jì)者編寫的設(shè)計(jì)改為可以用于生產(chǎn)的“語言”。MAX+PLUSⅡ提供的編譯軟件,只需簡(jiǎn)單的操作,如參數(shù)選擇、指定功能等,就可進(jìn)行網(wǎng)表轉(zhuǎn)換、邏輯分割和布線布局。如果發(fā)現(xiàn)了錯(cuò)誤,則應(yīng)對(duì)設(shè)計(jì)輸入進(jìn)行部分修改直至無誤。在設(shè)計(jì)過程中,如果出現(xiàn)錯(cuò)誤,則需要重新回到設(shè)計(jì)輸入階段,改正錯(cuò)誤或調(diào)整電路后重復(fù)上述過程。(2) 測(cè)量誤差1%。(4) 顯示時(shí)間不少于1s。 模塊的劃分根據(jù)系統(tǒng)設(shè)計(jì)要求,系統(tǒng)設(shè)計(jì)采用自頂向下的設(shè)計(jì)方法,系統(tǒng)的組成框圖如圖3. 1所示,包括時(shí)基產(chǎn)生與測(cè)頻時(shí)序控制電路模塊,以及待測(cè)信號(hào)脈沖計(jì)數(shù)電路模塊和鎖存與譯碼顯示控制電路模塊。(2) 待測(cè)信號(hào)脈沖計(jì)數(shù)電路模塊待測(cè)信號(hào)脈沖計(jì)數(shù)電路是對(duì)待測(cè)脈沖信號(hào)的頻率進(jìn)行測(cè)量,它可由4個(gè)十進(jìn)制加法計(jì)數(shù)器組成,其中EN為計(jì)數(shù)選通控制信號(hào),CLR為計(jì)數(shù)器清零信號(hào)。如果計(jì)數(shù)選通控制信號(hào)EN的寬度為1s,那么計(jì)數(shù)結(jié)果就為待測(cè)信號(hào)的頻率;如果計(jì)數(shù)選通信號(hào)EN的寬度為100ms,那么待測(cè)信號(hào)的頻率等于計(jì)數(shù)結(jié)果10。鎖存與譯碼顯示電路的功能是對(duì)四位BCD碼進(jìn)行鎖存,并轉(zhuǎn)換為對(duì)應(yīng)的4組七段碼,用于驅(qū)動(dòng)數(shù)碼管。在頂層對(duì)內(nèi)部各功能塊的連接關(guān)系和對(duì)外的接口關(guān)系進(jìn)行了描述,而功能塊的邏輯功能和具體實(shí)現(xiàn)形式則由下一層模塊來描述。第四章 各功能模塊基于VHDL的設(shè)計(jì) 時(shí)基產(chǎn)生與測(cè)頻時(shí)序控制電路模塊的VHDL源程序LIBRARY IEEE。USE 。 系統(tǒng)時(shí)鐘 LOCK: OUT STD_LOGIC。 計(jì)數(shù)允許信號(hào) CLR: OUT STD_LOGIC)。ARCHITECTURE ART OF CTRL IS SIGNAL Q: STD_LOGIC_VECTOR(3 DOWNTO 0)。EVENT AND CLK=39。)THEN 檢測(cè)時(shí)鐘上升沿 IF Q=1111THEN Q=0000。139。 END IF。 LOCK=Q(3) AND NOT(Q(2)) AND Q(1)。 END PROCESS。 程序主要講述了由時(shí)鐘信號(hào)產(chǎn)生計(jì)數(shù)允許信號(hào)、清零信號(hào)和鎖存信號(hào),而且限定了響應(yīng)時(shí)間為不超過15s。USE 。ENTITY CB10 IS PORT(CLK,EN,CLR: IN STD_LOGIC。 計(jì)數(shù)輸信號(hào)END CB10。139。 計(jì)數(shù)器清零 ELSIF RISING_EDGE(CLK) THEN 檢測(cè)時(shí)鐘上升沿 IF(EN=39。) THEN 檢測(cè)是否允許計(jì)數(shù) IF COUNT10=1001 THEN COUNT10=0000。139。 END IF。 END PROCESS。 程序主要講述了十進(jìn)制加法計(jì)數(shù)器的使用,在符合了一定的標(biāo)準(zhǔn)以后十進(jìn)制的使用,在計(jì)數(shù)器滿9后清零。USE 。ENTITY COUNT IS PORT(CLK: IN STD_LOGIC。 計(jì)數(shù)選通控制信號(hào) CLR: IN STD_LOGIC。 結(jié)果輸出信號(hào)END。 COUNT10: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0))。 SIGNAL CLK2: STD_LOGIC。 SIGNAL CLK4: STD_LOGIC。 CLK3=NOT QB(3)。 U1:CB10 PORT MAP(CLK,EN,CLR,QA)。 元件引用例示 U3:CB10 PORT MAP(CLK3,EN,CLR,QC)。 元件引用例示END ART。USE 。 BCD輸入信號(hào) LED: OUT STD_LOGIC_VECTOR(6 DOWNTO 0))。ARCHITECTUR