【正文】
設(shè)計(jì)的精度和效率的要求。EDA技術(shù)的物質(zhì)基礎(chǔ)即為可編程邏輯器件,又稱為可編程ASIC。至于數(shù)據(jù)在芯片內(nèi)部的處理過程,設(shè)計(jì)者不用考慮,但設(shè)計(jì)者可以通過仿真軟件觀察和驗(yàn)證數(shù)據(jù)的處理結(jié)果。數(shù)字集成電路本身在不斷地進(jìn)行更新?lián)Q代。在數(shù)字電子系統(tǒng)領(lǐng)域,存在三種基本的器件類型:存儲(chǔ)器、微處理器和邏輯器件?!狿LD邏輯器件可分為兩大類——固定邏輯器件和可編程邏輯器件。而且此類器件可在任何時(shí)間改變,從而完成許多種不同的功能。設(shè)計(jì)和驗(yàn)證固定邏輯的前期工作需要大量的NRE成本。然后,可快速將設(shè)計(jì)編程到器件中,并立即在實(shí)際運(yùn)行的電路中對(duì)設(shè)計(jì)進(jìn)行測(cè)試。典型的PLD由一個(gè)“與”門和一個(gè)“或”門陣列組成,而任意一個(gè)組合邏輯都可以用“與一或”表達(dá)式來描述,所以,PLD能以乘積和的形式完成大量組合邏輯功能,PLD基本框圖如圖11所示。還有一類結(jié)構(gòu)更為靈活的邏輯器件是可編程邏輯陣列(PLA),它也由一個(gè)“與”平面和一個(gè)“或”平面構(gòu)成,但是這兩個(gè)平面的連接關(guān)系是可編程的。它采用了EEPROM工藝,實(shí)現(xiàn)了電可按除、電可改寫,其輸出結(jié)構(gòu)是可編程的邏輯宏單元,因而它的設(shè)計(jì)具有很強(qiáng)的靈活性,至今仍有許多人使用[2]?!狿LD器件已經(jīng)放在分銷商的貨架上并可隨時(shí)付運(yùn)。4.PLD允許客戶在需要時(shí)僅訂購所需要的數(shù)量,從而使客戶可控制庫存。PLD甚至在設(shè)備付運(yùn)到客戶那兒以后還可以重新編程。可編程邏輯器件的兩種類型是現(xiàn)場(chǎng)可編程門陣列(FPGA)和復(fù)雜可編程邏輯器件(CPLD)。LogicFPGA的基本特點(diǎn)主要有: 1.采用FPGA設(shè)計(jì)ASIC電路,用戶不需要投片生產(chǎn)就能得到合適芯片。4.FPGA是ASIC電路中設(shè)計(jì)周期最短、開發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。Virtex?PC)、大容量存儲(chǔ)器、時(shí)鐘管理系統(tǒng)等特性,并支持多種最新的超快速器件至器件(devicetodevice)信號(hào)技術(shù)?!狢oolRunner?2.CPLD的連續(xù)式布線結(jié)構(gòu)決定了它的時(shí)序延遲是均勻的和可預(yù)測(cè)的,而FPGA的分段式布線結(jié)構(gòu)決定了其延遲的不可預(yù)測(cè)性。4.FPGA的集成度比CPLD高,具有更復(fù)雜的布線結(jié)構(gòu)和邏輯實(shí)現(xiàn)。6.CPLD的速度比FPGA快,并且具有較大的時(shí)間可預(yù)測(cè)性。FPGA大部分是基于SRAM編程,編程信息在系統(tǒng)斷電時(shí)丟失,每次上電時(shí),需從器件外部將編程數(shù)據(jù)重新寫入SRAM中。過去幾年時(shí)間里,可編程邏輯供應(yīng)商取得了巨大的技術(shù)進(jìn)步,以致現(xiàn)在PLD被眾多設(shè)計(jì)人員視為是邏輯解決方案的當(dāng)然之選。目前賽靈思提供采用先進(jìn)的90nm和65nm工藝生產(chǎn)的可編程邏輯器件,它們都是業(yè)界最領(lǐng)先的工藝。然而,今天具有最先進(jìn)特性的FPGA可提供百萬門的邏輯容量、工作300用戶可利用這些預(yù)定義和預(yù)測(cè)試的軟件模塊在PLD內(nèi)迅速實(shí)現(xiàn)系統(tǒng)功能。同時(shí)具體介紹了構(gòu)成電子鐘主要功能模塊特性與功能,在此基礎(chǔ)上給出電子鐘系統(tǒng)的設(shè)計(jì)方法和設(shè)計(jì)過程,這其中包括電子鐘的總體框圖架構(gòu),各模塊的模擬仿真及其分析。 FPGA的基本結(jié)構(gòu)及工作原理FPGA的基本結(jié)構(gòu)由6部分組成,分別為可編程輸入/輸出單元、基本可編程邏輯單元、嵌入式塊RAM、豐富的布線資源、底層嵌入功能單元和內(nèi)嵌專用硬核等,F(xiàn)PGA的基本結(jié)構(gòu)圖如圖21所示。FPGA一般依賴寄存器完成同步時(shí)序邏輯設(shè)計(jì)。3.嵌入式塊RAM目前大多數(shù)FPGA都有內(nèi)嵌的塊RAM。簡(jiǎn)單的說,RAM是一種寫地址,讀數(shù)據(jù)的存儲(chǔ)單元;CAM與RAM恰恰相反。(3) 短線資源:用來完成基本邏輯單元間的邏輯互連與布線; (4) 其他:在邏輯單元內(nèi)部還有著各種布線資源和專用時(shí)鐘、復(fù)位等控制信號(hào)線。目前FPGA中多使用4輸入的LUT,所以每一個(gè)LUT可以看成一個(gè)有4位地址線的16x1的RAM。也有少數(shù)FPGA采用反熔絲或Flash工藝,對(duì)這種FPGA,就不需要外加專用的配置芯片。時(shí)鐘信號(hào)CLK由I/O腳輸入后進(jìn)入芯片內(nèi)部的時(shí)鐘專用通道,直接連接到觸發(fā)器的時(shí)鐘端。對(duì)于一個(gè)LUT無法完成的電路,就需要通過進(jìn)位邏輯將多個(gè)單元相連,這樣FPGA就可以實(shí)現(xiàn)復(fù)雜的邏輯[8]。在上述門陣列的基礎(chǔ)上增加些觸發(fā)器,便可構(gòu)成即可實(shí)現(xiàn)組合邏輯功能又可實(shí)現(xiàn)時(shí)序邏輯功能的基本邏輯單元電路。數(shù)字系統(tǒng)主要由數(shù)據(jù)處理器和控制器兩部分組成。數(shù)字系統(tǒng)的組成流程圖如圖24所示。對(duì)于一個(gè)比較復(fù)雜的數(shù)字系統(tǒng),由于它的輸入變量數(shù)、輸出變量數(shù)和內(nèi)部狀態(tài)變量數(shù)很多,如果用常規(guī)的工具(如真值表、卡諾圖、狀態(tài)方程等)和傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計(jì)方法來描述和設(shè)計(jì)將十分困難,有時(shí)甚至無法進(jìn)行,因此必須尋求從系統(tǒng)總體出發(fā)。在對(duì)系統(tǒng)進(jìn)行劃分時(shí)需要注意子系統(tǒng)的數(shù)目是否合適。2.自底向上法自底向上法是根據(jù)系統(tǒng)要求,從具體的器件、邏輯部件或者想死系統(tǒng)開始,憑借設(shè)計(jì)者熟練的技巧和豐富的經(jīng)驗(yàn)通過對(duì)其進(jìn)行相互連接、修改和擴(kuò)大,構(gòu)造所要求的系統(tǒng)。其一般過程是:在詳細(xì)了解設(shè)計(jì)任務(wù)的基礎(chǔ)上,確定系統(tǒng)的整體功能;用某種方法描述系統(tǒng)功能,設(shè)計(jì)實(shí)現(xiàn)系統(tǒng)功能的算法;根據(jù)算法選擇電路結(jié)構(gòu);選擇器件并實(shí)現(xiàn)電路。描述算法的工具有:算法流程圖、ASM圖、MDS圖等。(2) 選擇器件并實(shí)現(xiàn)電路 根據(jù)設(shè)計(jì)選擇適當(dāng)?shù)钠骷韺?shí)現(xiàn)電路,并導(dǎo)出詳細(xì)的電路圖。描述是電路與系統(tǒng)設(shè)計(jì)的輸入方法,它可以采用圖形輸入、硬件描述語言或二者混合使用的方法輸入。本章主要對(duì)FPGA的基本結(jié)構(gòu)和數(shù)字系統(tǒng)設(shè)計(jì)進(jìn)行敘述。 FPGA在數(shù)字系統(tǒng)設(shè)計(jì)中的作用現(xiàn)場(chǎng)可編程門陣列FPGA填補(bǔ)了數(shù)字系統(tǒng)設(shè)計(jì)的空白,是對(duì)微處理器的補(bǔ)充。但是,由于FPGA是標(biāo)準(zhǔn)芯片,因而能夠彌補(bǔ)定制芯片的一些不足。3.同種類型的FPGA可以用于不同類型的設(shè)計(jì)中,以降低庫存費(fèi)用。FPGA已經(jīng)成為數(shù)字系統(tǒng)實(shí)現(xiàn)的主流器件。在電池供電的系統(tǒng)中,能量消耗是很關(guān)鍵的。4.設(shè)計(jì)成本:設(shè)計(jì)時(shí)間是設(shè)計(jì)成本的一個(gè)重要組成部分,但是還需要考慮其他因素,比如對(duì)支持工具的投入等?;贔PGA的應(yīng)用系統(tǒng)設(shè)計(jì)大體分為設(shè)計(jì)輸入、綜合、功能仿真(前仿真)、實(shí)現(xiàn)、時(shí)序仿真(后仿真)、配置下載等六個(gè)流程。2.設(shè)計(jì)綜合總和就是針對(duì)給定的電路實(shí)現(xiàn)功能和實(shí)現(xiàn)此電路的約束條件,如速度、功耗、成本及電路類型等,通過計(jì)算機(jī)進(jìn)行優(yōu)化處理,獲得一個(gè)能滿足上述要求的電路設(shè)計(jì)方案。通??煞譃橐韵聨讉€(gè)步驟;(1) 轉(zhuǎn)換:將多個(gè)設(shè)計(jì)文件進(jìn)行轉(zhuǎn)換,并合并到一個(gè)設(shè)計(jì)庫文件中。(5) 配置:產(chǎn)生FPGA配置時(shí)需要的位流文件。5.時(shí)序分析在設(shè)計(jì)實(shí)現(xiàn)過程中,在映射后需要對(duì)一個(gè)設(shè)計(jì)的實(shí)際功能塊的延時(shí)和估計(jì)的布線延時(shí)進(jìn)行時(shí)序分析;而在布局布線后,也要對(duì)實(shí)際布局布線的功能塊延時(shí)和實(shí)際布線延時(shí)進(jìn)行靜態(tài)時(shí)序分析。設(shè)計(jì)流程圖如圖31所示。所謂硬件描述語言(HDL),就是該語言可以描述硬件的功能,信號(hào)連接關(guān)系及定時(shí)關(guān)系。多年來設(shè)計(jì)者一直使用這些專門的HDL。有專家認(rèn)為,在21世紀(jì)中,幾乎全部的數(shù)字系統(tǒng)設(shè)計(jì)將由VHDL與Verilog語言承擔(dān)。2.VHDL語句的行為描述能力和程序結(jié)構(gòu)決定了它具有支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)在利用的功能,它支持系統(tǒng)的數(shù)學(xué)模型直到門級(jí)電路的描述,并且高層次的行為描述和低層次的門級(jí)電路描述、結(jié)構(gòu)描述可以混合使用。VHDL語言卻最適合描述電路的行為,即描述電路的功能,然后由綜合器生成符合要求的電路網(wǎng)絡(luò)。盡管VHDL作為IEEE的制定的工業(yè)標(biāo)準(zhǔn)硬件描述語言具有諸多優(yōu)點(diǎn),但它也具有文本的局限性及隱含信息內(nèi)容,具體表現(xiàn)如下:1.通用整數(shù)等匿名類類型或依據(jù)不同系統(tǒng)應(yīng)用環(huán)境而定的語言內(nèi)容信息,在編譯處理時(shí),應(yīng)對(duì)這些想象予以定量限制。4.接口的匹配?;赩HDL語言的系統(tǒng)設(shè)計(jì)流程如圖32所示。 圖33 分頻模塊 分頻模塊程序如下。Use 。architecture arch of div1024 isinput: clkoutput: f1hz signal count : integer range 0 to 1023。 else f1hz=39。end process。模塊如圖34所示,其中clk為1Hz的時(shí)鐘信號(hào),COUT為進(jìn)位輸出,SL為秒低位的輸出,SH為秒高位的輸出。 USE 。 CQ1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。BEGIN IF RST=39。)。 ELSIF CLK39。139。 Q1:=(OTHERS=39。039。END IF。139。CQ0=Q0。在該計(jì)數(shù)模塊中,將分鐘計(jì)數(shù)器的時(shí)鐘信號(hào)作為該模塊的輸入。圖36 二十四進(jìn)制計(jì)數(shù)器模塊同樣可以把2片74160芯片連成二十四進(jìn)制計(jì)數(shù)器,其電路圖如下。USE 。 COUT:out std_logic)。139。 Q1:=(OTHERS=39。EVENT AND CLK=39。 THENIF Q0=3 and Q1=2 THEN Q0:=(OTHERS=39。039。)。END IF。ELSE COUT=39。CQ3=Q1。其中CHOOSE為選擇需要調(diào)整的位置,ADJ為調(diào)整的使能端,高有效,整個(gè)調(diào)整時(shí)間的實(shí)現(xiàn)是在暫停的前提下進(jìn)行的。因此數(shù)字顯示電路是許多數(shù)字設(shè)備不可缺少的一部分。當(dāng)輸入二進(jìn)制編碼時(shí),經(jīng)Ya—Yg控制七段數(shù)碼管亮暗顯示,從而將BCD碼轉(zhuǎn)換為可視的十進(jìn)制形式。第4章 電子鐘模擬仿真及其分析本章將設(shè)計(jì)一個(gè)顯示時(shí)(2位)、分(2位)、秒(2位)共6個(gè)數(shù)字的多功能電子鐘。 圖41 電子鐘系統(tǒng)框圖電子鐘設(shè)計(jì)的關(guān)鍵,應(yīng)是針對(duì)時(shí)、分、秒、分別作出24計(jì)數(shù)、60計(jì)數(shù)、60計(jì)數(shù),其次是調(diào)整時(shí)間。3.當(dāng)電子鐘的鬧鐘模塊或定時(shí)、校時(shí)模塊工作時(shí),時(shí)鐘脈沖作為調(diào)整觸發(fā)信號(hào),當(dāng)按住調(diào)整鍵時(shí),相應(yīng)位每秒(分、時(shí))鐘加1或減1。時(shí)鐘每秒計(jì)一次數(shù),因此需要1Hz的時(shí)鐘信號(hào)。設(shè)定rst和時(shí)鐘carry的值后,仿真圖如圖43所示。個(gè)位數(shù)的進(jìn)位歸零在十進(jìn)制為2時(shí),必須在one等于3時(shí)進(jìn)位,同時(shí)送出進(jìn)位指針full=1,1小時(shí)后將指針歸零。以1Hz的顯示速率來調(diào)整時(shí)分秒的顯示,足以滿足視覺要求。仿真圖如圖45所示。當(dāng)持續(xù)按住調(diào)秒鍵sec_tune時(shí),秒鐘將從0持續(xù)增到59后,再返回0,任何時(shí)刻松開按鍵即顯示當(dāng)時(shí)的值。仿真圖如圖47所示。即時(shí)鐘本身的60進(jìn)制被轉(zhuǎn)化為2進(jìn)制BCD碼形式。通過轉(zhuǎn)換,把時(shí)鐘本身的24進(jìn)制轉(zhuǎn)化為二進(jìn)制BCD碼的形式。設(shè)計(jì)完所有功能模塊后,將所有功能模塊整合起來,完成最后的系統(tǒng)功能。使用該功能,可以在系統(tǒng)功能出現(xiàn)紊亂或需要校正時(shí)間時(shí),方便地控制系統(tǒng)工作。而當(dāng)把sec_tune置為0時(shí),停止計(jì)時(shí),此時(shí)顯示的時(shí)間為設(shè)定的定時(shí)起始時(shí)間。因此每?jī)纱屋敵鲂盘?hào)之間的時(shí)間間距為5/192秒。而FPGA試驗(yàn)箱本身已經(jīng)集成了分頻模塊、BCD七段顯示譯碼器等功能模塊。那么,采用基于FPGA技術(shù)設(shè)計(jì)電子鐘有什么優(yōu)勢(shì)呢?首先,F(xiàn)PGA的學(xué)習(xí)效率比單片機(jī)高出很多。對(duì)每個(gè)廠家生產(chǎn)的單片機(jī)其匯編語言均不同。FPGA在實(shí)時(shí)處理時(shí)均為并行工作,速度十分快捷。而單片機(jī)的各引腳功能均為確定,無法更改。人們只要有一臺(tái)計(jì)算機(jī)、一套EDA軟件和一片F(xiàn)PGA芯片,就能在家完成大規(guī)模集成電路合適子系統(tǒng)的設(shè)計(jì)。電子鐘系統(tǒng)最終原理圖見附錄C,整體運(yùn)行程序見附錄D。而引領(lǐng)EDA技術(shù)發(fā)展潮流的FPGA/CPLD芯片更是日趨智能化、精密化。2.對(duì)FPGA有了一定的認(rèn)識(shí)。該方法為設(shè)計(jì)者帶來了極大地方便,但也需要設(shè)計(jì)者有整體意識(shí)和全局觀念,克服使用模塊化方法帶來的問題,這些都讓我積累了寶貴的經(jīng)驗(yàn)。 mincut, quadratic, simulated annealing, and a hybrid approach of using genetic algorithm with simulated annealing technique. The methodology of each optimization technique is presented and its advantages and disadvantages are evaluated. Overall, the hybrid approach of using genetic algorithm with simulated annealing technique produces best result, reaching a global optimal solution. The hybrid approach of using genetic algorithm and simulated annealing optimization technique is implemented using MATLAB and its results are presented using a wirelengthdriven placement as cost function.Index Terms Field programmable gate arrays, optimization methods, routing, quadratic programming, simulated annealing, and genetic algorithms1. INTRODUCTIONFieldProgrammable gate arrays (FPGA) are reprogrammable logic chips that can be configured to implement various digital circuits. The Field Programmable Gate Array (FPGA) has gained its popularity in implementing digital circuit due to its significant low cost and fast prototyping turn around time. In this survey, an island style FPGA model is considered. Island st