【正文】
,首先對高扇出信號或者需要長距離布線的信號采用全 局布線結(jié)構(gòu)來進(jìn)行,然后采用局域布線結(jié)構(gòu)對局域內(nèi)邏輯單元和 I/O 信號通路進(jìn)行布線。這個過程也可以解釋為設(shè)計描述作為輸入,設(shè)計網(wǎng)表和邏輯方程作為輸出。因為對于大型設(shè)計,其綜合、布局、布 18 線往往要花費(fèi)好幾個小時,在綜合之前進(jìn)行源代碼模擬,就可以大大減少設(shè)計重復(fù)和修正錯誤的次數(shù)和時間。常用的設(shè)計方式有三種:自頂向下設(shè)計、自底向上設(shè)計、平坦式設(shè)計。 VHDL 還有很多方面的內(nèi)容,上面介紹的是我在本研究課題中接觸得比較多的部分,也是最常用的部分。 Process 中的語句按順序一條一條執(zhí)行,而不同的 process 之間是并發(fā)執(zhí)行的。 2) 同步邏輯設(shè)計 大多數(shù)器件具有連接 于觸發(fā)器輸入端的組合邏輯塊,作為 CPLD 或 FPGA 的邏輯單元的基本構(gòu)件。 上面的賦值語句描述的是一個譯碼電路,當(dāng)輸入 a 為’ 0’時輸出 b 為” 0000”,為’ 1’時輸出 b 為’ 1’。這 些格式可以是行為級、數(shù)據(jù)流和結(jié)構(gòu)化描述方式,或者是這些格式的任意組合。 如: library ieee。 比如要調(diào)用 IEEE 庫,則可以用 Library ieee 語句調(diào)用。 VHDL 語言使設(shè)計描述快捷、方便,可編程邏輯應(yīng)用則將產(chǎn)品設(shè)計的前期風(fēng)險投資降至最低,并促進(jìn)設(shè)計的快速復(fù)制簡單易行。后者開始設(shè)計之前,無需了解采用何種器件。 VHDL 支持多種形式的設(shè)計描述,為有不同需要的設(shè)計者提供了方便。它能夠提供支持設(shè)計單元庫的創(chuàng)建,以存儲在附屬子設(shè)計中重復(fù)使用的元件。它應(yīng)該是開放的、非專用的、工業(yè)界能接受的 標(biāo)準(zhǔn)。同樣,圖形輸入設(shè)計方式也是有局限的。 20 世紀(jì) 90 年代,引起數(shù)字系統(tǒng)設(shè)計方式發(fā)生突破性技術(shù)變革的技術(shù)是 VHDL 技術(shù)。 為了實現(xiàn) SOPC,國際上著名的現(xiàn)場可編程邏輯器件的廠商都為此而努力,開發(fā)出適于系統(tǒng)集成的新器件和開發(fā)工具,進(jìn) 一步促進(jìn)了 SOPC 的發(fā)展。而 SOPC 要利用深亞微米技術(shù)才能實現(xiàn)。 HDL邏輯綜合軟件:這類軟件將把 HDL語言翻譯成最基本的與或非門的連接關(guān)系 (網(wǎng)表 ),輸出 edf文件, 導(dǎo)給 FPGA/ CPLD廠家的軟件進(jìn)行試配和布線。 圖 設(shè)計的一般流程 ? 設(shè)計輸入 利用硬件描述語言 HDL語言,數(shù)字電路系統(tǒng)的設(shè)計可以從上層到下層 (從抽象 到具體 )逐層描述自己的設(shè)計思想,用一系列分層次的模塊來表示極其復(fù)雜的數(shù)字系統(tǒng)。在可靠性實驗中,即使存在很高劑量的α輻射也不會產(chǎn)生軟錯誤??傊?,對于 XILINX 的 SRAM FPGA,其 LCA 的功能配置均是由點陣分布于芯片的存儲單元 — SRAM 來實現(xiàn)的,通常由 XILINX 提供的設(shè)計實現(xiàn)系統(tǒng)產(chǎn)生配置 LCA 的數(shù)據(jù)文件,通過其數(shù)據(jù)配置接口 ,采用一定的設(shè)置模式,加載于其中。正是由于這個 LCA 分布結(jié)構(gòu),使之具有門陣列和可編程邏輯器件的雙重特性。半定制 ASIC 芯片的版圖設(shè)計方法有所不同,分為門陣列設(shè)計法和標(biāo)準(zhǔn)單元設(shè)計法,這兩種方法都是約束性的設(shè)計方法,其主要目的就是簡化設(shè)計,以犧牲芯片性能為代 4 價來縮短開發(fā)時 間。在方框圖一級進(jìn)行仿真、糾錯,并用硬件描述語言對高層次的系統(tǒng)行為進(jìn)行描述,在系統(tǒng)一級進(jìn)行驗證。CAE 的主要功能是:原理圖輸入,邏輯仿真,電路分析,自動布局布線, PCB 后 分析。目前,F(xiàn)PGA/CPLD 產(chǎn)品可以完成更加復(fù)雜的工作,其應(yīng)用范圍擴(kuò)展到了數(shù)據(jù)處理、網(wǎng)絡(luò)、儀器儀表、工業(yè)控制、軍事和航空航天等更廣泛的領(lǐng)域。t imagine, turning over, producing a manufacturingto progress unremittingly technically and willing put forward a new request to the EDA technique necessarily. The mission of this time design is the pingpong game which designs according to the VHDL language electric circuit adopt an EDA technique to carry on a design to the core electric circuit, plete a design behind use a VHDL description of the source procedure download target chip up bine as to it39。 本次設(shè)計的任務(wù)是設(shè)計一個基于 VHDL語言的乒乓球游戲電路。前者以微細(xì)加工技術(shù)為代表,目前已進(jìn)展到深亞微米階段,可以在幾平方厘米的芯片上集成數(shù)千萬個晶體管;后者的核心就是 EDA 技術(shù)。 關(guān)鍵詞 : 乒乓球游戲 EDA VHDL MAX+plus II FPGA II Abstract Society has already got into the height flourishing informationbasedsociety, information society of the development can not get away from the progress of electronics electronics product at the function raises, plications enlarge of in the meantime, but the price has been presenting to descend trend, and the product renewal change the step of generation also more and more quick, the main reason which carries out this kind of progress is to produce ma nufacturing technique and electronics to design a technical former takes very small processing technology as to represent, having already made progress a deeply second micron stage currently, can at several square minimeter the chip of the rice up integrate few ten millions transistor。關(guān)于可編程 ASIC,對于半導(dǎo)體制造廠家而言,可按照一定的規(guī)格以通用器件形式大批量地生產(chǎn);對于用戶,可按通用器件規(guī)格從市場上選購,再由用戶自己通過現(xiàn)場的設(shè)計、編程,實現(xiàn) ASIC 系統(tǒng)的要求。 EDA 技術(shù)的發(fā)展 回顧近 30 年電子設(shè)計技術(shù)的發(fā)展歷程,可將 EDA 技術(shù)分為三個階段。 3 ESDA 技術(shù)的基本特征 ESDA 代表了當(dāng)今電子設(shè)計技術(shù)的最新發(fā)展方向,它的基本特征是:設(shè)計人員按照 自頂向下 的設(shè)計方法,對整個系統(tǒng)進(jìn)行方案設(shè)計和功能劃分,系統(tǒng)的關(guān)鍵電路用一片或幾片專用集成電路( ASIC)實現(xiàn),然后采用硬件描述語言( HDL)完成系統(tǒng)行為級設(shè)計,最后通過綜合器和適配器生成最終的目標(biāo)器件。 設(shè)計全定制 ASIC 芯片時,設(shè)計師要定義芯片上所有晶體管的幾何圖形和工藝規(guī)則,最后將設(shè)計結(jié)果交由 IC 廠家掩 膜制造完成。其基本結(jié)構(gòu)如圖 所示。即通過對分布的 SRAM 的不同的加電配置,來決定幾個部分的邏輯定義。 FPGA 中點陣排布的這些單元,在配置時寫入,而在回讀( Read Back 是一種驗證配置是否正確的操作)時讀 出。 CPLD 的結(jié)構(gòu)見圖 。 FPGA/ CPLD 開發(fā)工具 集成的 FPGA/ CPLD開發(fā)環(huán)境:這類軟件都是由 FPGA/ CPLD芯片廠家提供,基本都可以完成所有的設(shè)計輸入 (原理圖或 HDL)、仿真、綜合、布線、下載等工作。 同時,模擬可編程陣列、數(shù) /?;旌峡删幊剃嚵?,動態(tài)可重構(gòu)陣列器件等新概念也正在涌現(xiàn)。 但是,真正推動 SOPC 設(shè)計的將是系統(tǒng)級設(shè)計而不是特定的硬件或軟件設(shè)計方法。 1988 年, Milstd454 規(guī)定所有為國防部設(shè)計的 ASIC 產(chǎn)品 必須采用 VHDL 來描述。使用具有一定語言規(guī)則的簡單語言來形成組合和寄存形式方程,設(shè)計者首先以數(shù)據(jù)文件的格式著手設(shè)計方程,然后由軟件來進(jìn)行方程的綜合,最后形成一個 用于 PLD 器件編程的數(shù)據(jù)文件。 VHDL 設(shè)計方式的優(yōu)點 一個優(yōu)選的設(shè)計方式應(yīng)該能夠提高設(shè)計者的工作效率。 VHDL 非常適用于可編程邏輯器件的應(yīng)用設(shè)計,并正在得以普及。圖 是 VHDL 支持多種描述方式的例子: 圖 VHDL 支持多種描述方式 2.非依賴器件的設(shè)計 VHDL 允許設(shè)計者生成一個設(shè)計并不需要首先選擇一個用來實現(xiàn)設(shè)計的器件。這意味著同一個 VHDL 設(shè)計描述可以在不同的設(shè)計項目中采用。 2) ASIC 的移植 VHDL 語言的效率體現(xiàn)之一,就是如果你的設(shè)計是被綜合到一個 CPLD 或 FPGA 的話,則可以使設(shè)計者設(shè)計的產(chǎn)品以最快的速度上市。 1. VHDL 中的庫和程序包 庫 (Library)是用來存放可編譯的設(shè)計單元的地方,通過其目錄可查詢和調(diào)用。 2.實體 實體是能夠表達(dá)完整系統(tǒng)、電路板、芯片、小函數(shù)和邏輯門功能的設(shè)計概述。 上面的實體定義了兩個四位的輸入端口 a 和 b 及一位的輸出端口 equals。 1) 組合邏輯設(shè)計 a、 并發(fā)語句 用于描述數(shù)據(jù)流描述的并發(fā)語句有:選擇信號賦值語句(withselectwhen)和條件信號賦值語句 (whenelse)。 else(elsif(condition) then)) do something。 Clk?event 表示時鐘 (clk)有變化,加上 clk=’ 1’就是上升沿觸發(fā)。 end process。 有了設(shè)計要求的定義后,編寫設(shè)計代碼。 源代碼模擬 ( Simulate the Source Code) 對于大型設(shè)計,采用 VHDL 模擬器進(jìn)行的源代碼模擬可以節(jié)省時間。 綜合( Synthesis) 。傳導(dǎo)延時基本上取決于布線延時。綜合、優(yōu)化和裝配軟件將生成一個器件編程所用的數(shù)據(jù)文件。當(dāng)發(fā)光管亮到最后的瞬間,若檢測到對應(yīng)的表示球拍鍵的信號,立即將球反向運(yùn)動(此過程由 BOARD 模塊控制)。 entity sound is port(clk:in std_logic。當(dāng)我們對 clk, sig 和 en,設(shè)置好適當(dāng)?shù)牟ㄐ魏螅M(jìn)行仿真,從圖中我們可以清楚的看到:當(dāng) clk=?1?,sig=?0?和 en=?1?時, sout=?1?即球拍接球但沒有接到球時發(fā)出提示聲。左拍準(zhǔn)確接球或發(fā)球 serclkb:in std_logic。 architecture ful of ballctrl is signal bd:std_logic。 ) then 系統(tǒng)復(fù)位 serve=39。 乒乓球燈清零 if(ser=39。 乒乓球燈被禁止 serve=39。 end。乒乓球燈前進(jìn)時鐘 clr:in std_logic。) then清零 lamp=1000000001。) then乒乓球燈右移 lamp(9 downto 1)=lamp(8 downto 0)。 ballout=lamp(8 downto 1)。 entity board is port (ball:in std_logic。139。)then球拍接球時 if(serve=39。乒乓球剛落在接球點上,接球成功 else serclk=39。 end。 cout:out std_logic。039。139。 失球計數(shù)器的低位計數(shù)模塊程序仿真圖 圖 ? 仿真結(jié)果分析 打開波形仿真編 輯器:根據(jù) cou10 程序可知, clk 為系統(tǒng)的時鐘脈沖, clr 為系統(tǒng)復(fù)位信號。 cout:out std_logic。039。139。event and clk=39。 end cou4。當(dāng) clr=0 時,系統(tǒng)開始計數(shù),當(dāng)計數(shù)到九個上升沿后系統(tǒng)又開始從零開始計數(shù),相當(dāng)于一個十進(jìn)制加法計數(shù)器。039。event and clk=39。 end cou10。當(dāng)我們對 ball, , bclk 和 serve 設(shè)置好適當(dāng)?shù)牟ㄐ魏?,進(jìn)行仿真,從圖中我們可以清楚的看到:當(dāng) =?1?時 ,即左拍或右拍處在發(fā)球成功狀態(tài)時且乒乓球過中點, counclk 和 serclk 復(fù)位,此時對方處在接球狀態(tài),當(dāng)乒乓球剛好落在接球點上時,接球成功 serclk=?1?,否則 serclk=?0?且失球計數(shù)時鐘信號 couclk=?1?。couclk=39。)then serclk=39。039。