




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章緒論1.1EDA技術的涵義1.2EDA技術的發展歷程1.3EDA技術的主要內容1.4EDA軟體系統的構成1.5EDA工具的發展趨勢1.6EDA的工程設計流程1.7數字系統的設計1.8EDA技術的應用展望
1.1EDA技術的涵義
什麼叫EDA技術?由於它是一門迅速發展的新技術,涉及面廣,內容豐富,理解各異,目前尚無統一的看法。作者認為:EDA技術,就是以大規模可編程邏輯器件為設計載體,以硬體描述語言為系統邏輯描述的主要表達方式,以電腦、大規模可編程邏輯器件的開發軟體及實驗開發系統為設計工具,通過有關的開發軟體,自動完成用軟體的方式設計的電子系統到硬體系統的邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合及優化、邏輯佈局佈線、邏輯仿真,直至完成對於特定目標晶片的適配編譯、邏輯映射、編程下載等工作,最終形成集成電子系統或專用集成晶片的一門新技術。
利用EDA技術進行電子系統的設計,具有以下幾個特點:①用軟體的方式設計硬體;②用軟體方式設計的系統到硬體系統的轉換是由有關的開發軟體自動完成的;③設計過程中可用有關軟體進行各種仿真;④系統可現場編程,線上升級;⑤整個系統可集成在一個晶片上,體積小、功耗低、可靠性高。因此,EDA技術是現代電子設計的發展趨勢。1.2EDA技術的發展歷程EDA技術伴隨著電腦、積體電路、電子系統設計的發展,經歷了電腦輔助設計(ComputerAssistDesign,簡稱CAD)、電腦輔助工程設計(ComputerAssistEngineeringDesign,簡稱CAE)和電子設計自動化(ElectronicDesignAutomation,簡稱EDA)三個發展階段。
1.20世紀70年代的電腦輔助設計CAD階段早期的電子系統硬體設計採用的是分立元件,隨著積體電路的出現和應用,硬體設計進入到發展的初級階段。初級階段的硬體設計大量選用中小規模標準積體電路,人們將這些器件焊接在電路板上,做成初級電子系統,對電子系統的調試是在組裝好的PCB(PrintedCircuitBoard)板上進行的。
由於設計師對圖形符號使用數量有限,傳統的手工布圖方法無法滿足產品複雜性的要求,更不能滿足工作效率的要求。這時,人們開始將產品設計過程中高度重複性的繁雜勞動,如布圖佈線工作,用二維圖形編輯與分析的CAD工具替代,最具代表性的產品就是美國ACCEL公司開發的Tango佈線軟體。20世紀70年代,是EDA技術發展初期,由於PCB布圖佈線工具受到電腦工作平臺的制約,其支持的設計工作有限且性能比較差。
2.20世紀80年代的電腦輔助工程設計CAE階段初級階段的硬體設計是用大量不同型號的標準晶片實現電子系統設計的。隨著微電子工藝的發展,相繼出現了集成上萬只電晶體的微處理器、集成幾十萬直到上百萬儲存單元的隨機記憶體和只讀記憶體。此外,支持定制單元電路設計的矽編輯、掩膜編程的門陣列,如標準單元的半定制設計方法以及可編程邏輯器件(PAL和GAL)等一系列微結構和微電子學的研究成果都為電子系統的設計提供了新天地。因此,可以用少數幾種通用的標準晶片實現電子系統的設計。
伴隨電腦和積體電路的發展,EDA技術進入到電腦輔助工程設計階段。20世紀80年代初,推出的EDA工具則以邏輯模擬、定時分析、故障仿真、自動佈局和佈線為核心,重點解決電路設計沒有完成之前的功能檢測等問題。利用這些工具,設計師能在產品製作之前預知產品的功能與性能,能生成產品製造檔,在設計階段對產品性能的分析前進了一大步。
如果說20世紀70年代的自動佈局佈線的CAD工具代替了設計工作中繪圖的重複勞動,那麼,到了20世紀80年代出現的具有自動綜合能力的CAE工具則代替了設計師的部分工作,對保證電子系統的設計,製造出最佳的電子產品起著關鍵的作用。到了20世紀80年代後期,EDA工具已經可以進行設計描述、綜合與優化和設計結果驗證,CAE階段的EDA工具不僅為成功開發電子產品創造了有利條件,而且為高級設計人員的創造性勞動提供了方便。但是,大部分從原理圖出發的EDA工具仍然不能適應複雜電子系統的設計要求,而具體化的元件圖形制約著優化設計。
3.20世紀90年代電子系統設計自動化EDA階段為了滿足千差萬別的系統用戶提出的設計要求,最好的辦法是由用戶自己設計晶片,讓他們把想設計的電路直接設計在自己的專用晶片上。微電子技術的發展,特別是可編程邏輯器件的發展,使得微電子廠家可以為用戶提供各種規模的可編程邏輯器件,使設計者通過設計晶片實現電子系統功能。EDA工具的發展,又為設計師提供了全線EDA工具。這個階段發展起來的EDA工具,目的是在設計前期將設計師從事的許多高層次設計由工具來完成,如可以將用戶要求轉換為設計技術規範,有效的處理可用的設計資源與理想的設計目標之間的矛盾,按具體的的硬體、軟體和演算法分解設計等。由於電子技術和EDA工具的發展,設計師可以在不太長的時間內使用EDA工具,通過一些簡單標準化的設計過程,利用微電子廠家提供的設計庫來完成數萬門ASIC和集成系統的設計與驗證。20世紀90年代,設計師逐步從使用硬體轉向設計硬體,從單個電子產品開發轉向系統級電子產品開發(即片上系統集成,Systemonachip)。因此,EDA工具是以系統機設計為核心,包括系統行為級描述與結構綜合,系統仿真與測試驗證,系統劃分與指標分配,系統決策與檔生成等一整套的電子系統設計自動化工具。這時的EDA工具不僅具有電子系統設計的能力,而且能提供獨立於工藝和廠家的系統級設計能力,具有高級抽象的設計構思手段。例如,提供方框圖、狀態圖和流程圖的編輯能力,具有適合層次描述和混合信號描述的硬體描述語言(如VHDL、AHDL或Verilog-HDL),同時含有各種工藝的標準元件庫。
只有具備上述功能的EDA工具,才可能使電子系統工程師在不熟悉各種半導體工藝的情況下,完成電子系統的設計。未來的EDA技術將向廣度和深度兩個方向發展,EDA將會超越電子設計的範疇進入其他領域,隨著基於EDA的SOC(單片系統)設計技術的發展,軟硬核功能庫的建立,以及基於VHDL所謂自頂向下設計理念的確立,未來的電子系統的設計與規劃將不再是電子工程師們的專利。有專家認為,21世紀將是EDA技術快速發展的時期,並且EDA技術將是對21世紀產生重大影響的十大技術之一。1.3EDA技術的主要內容EDA技術涉及面廣,內容豐富,從教學和實用的角度看,究竟應掌握些什麼內容呢?
作者認為,主要應掌握如下四個方面的內容:①大規模可編程邏輯器件;②硬體描述語言;③軟體開發工具;④實驗開發系統。其中,大規模可編程邏輯器件是利用EDA技術進行電子系統設計的載體,硬體描述語言是利用EDA技術進行電子系統設計的主要表達手段,軟體開發工具是利用EDA技術進行電子系統設計的智能化的自動化設計工具,實驗開發系統則是利用EDA技術進行電子系統設計的下載工具及硬體驗證工具。為了使讀者對EDA技術有一個總體印象,下麵對EDA技術的主要內容進行概要的介紹。
1.大規模可編程邏輯器件可編程邏輯器件(簡稱PLD)是一種由用戶編程以實現某種邏輯功能的新型邏輯器件。FPGA和CPLD分別是現場可編程門陣列和複雜可編程邏輯器件的簡稱,現在,FPGA和CPLD器件的應用已十分廣泛,它們將隨著EDA技術的發展而成為電子設計領域的重要角色。國際上生產FPGA/CPLD的主流公司,並且在國內佔有市場份額較大的主要是Xilinx,Altera,Lattice三家公司。Xilinx公司的FPGA器件有XC2000,XC3000,XC4000,XC4000E,XC4000XLA,XC5200系列等,可用門數為1200~18000;Altera公司的CPLD器件有FLEX6000,FLEX8000,FLEX10K,FLEX10KE系列等,提供門數為5000~25000;Lattice公司的ISP-PLD器件有ispLSI1000,ispLSI2000,ispLSI3000,ispLSI6000系列等,集成度可多達25000個PLD等效門。FPGA在結構上主要分為三個部分,即可編程邏輯單元,可編程輸入/輸出單元和可編程連線三個部分。CPLD在結構上主要包括三個部分,即可編程邏輯宏單元,可編程輸入/輸出單元和可編程內部連線。高集成度、高速度和高可靠性是FPGA/CPLD最明顯的特點,其時鐘延時可小至ns級,結合其並行工作方式,在超高速應用領域和即時測控方面有著非常廣闊的應用前景。在高可靠應用領域,如果設計得當,將不會存在類似於MCU的複位不可靠和PC可能跑飛等問題。FPGA/CPLD的高可靠性還表現在幾乎可將整個系統下載於同一晶片中,實現所謂片上系統,從而大大縮小了體積,易於管理和遮罩。
由於FPGA/CPLD的集成規模非常大,可利用先進的EDA工具進行電子系統設計和產品開發。由於開發工具的通用性、設計語言的標準化以及設計過程幾乎與所用器件的硬體結構沒有關係,因而設計開發成功的各類邏輯功能塊軟體有很好的相容性和可移植性。它幾乎可用於任何型號和規模的FPGA/CPLD中,從而使得產品設計效率大幅度提高。可以在很短時間內完成十分複雜的系統設計,這正是產品快速進入市場最寶貴的特徵。美國IT公司認為,一個ASIC80%的功能可用於IP核等現成邏輯合成。而未來大系統的FPGA/CPLD設計僅僅是各類再應用邏輯與IP核(Core)的拼裝,其設計週期將更短。
與ASIC設計相比,FPGA/CPLD顯著的優勢是開發週期短、投資風險小、產品上市速度快、市場適應能力強和硬體升級迴旋餘地大,而且當產品定型和產量擴大後,可將在生產中達到充分檢驗的VHDL設計迅速實現ASIC投產。對於一個開發專案,究竟是選擇FPGA還是選擇CPLD呢?主要看開發專案本身的需要。對於普通規模,且產量不是很大的產品專案,通常使用CPLD比較好。對於大規模的邏輯設計ASIC設計,或單片系統設計,則多採用FPGA。另外,FPGA掉電後將丟失原有的邏輯資訊,所以在實用中需要為FPGA晶片配置一個專用ROM。
2.硬體描述語言(HDL)
常用的硬體描述語言有VHDL、Verilog、ABEL。
VHDL:作為IEEE的工業標準硬體描述語言,在電子工程領域,已成為事實上的通用硬體描述語言。
Verilog:支持的EDA工具較多,適用於RTL級和門電路級的描述,其綜合過程較VHDL稍簡單,但其在高級描述方面不如VHDL。
ABEL:一種支持各種不同輸入方式的HDL,被廣泛用於各種可編程邏輯器件的邏輯功能設計,由於其語言描述的獨立性,因而適用於各種不同規模的可編程器件的設計。有專家認為,在新世紀中,VHDL與Verilog語言將承擔幾乎全部的數字系統設計任務。
3.軟體開發工具目前比較流行的、主流廠家的EDA的軟體工具有Altera的MAX+plusII、Lattice的ispEXPERT、Xilinx的FoundationSeries。
MAX+plusII:支持原理圖、VHDL和Verilog語言文本檔,以及以波形與EDIF等格式的檔作為設計輸入,並支持這些檔的任意混合設計。它具有門級仿真器,可以進行功能仿真和時序仿真,能夠產生精確的仿真結果。在適配之後,MAX+plusII生成供時序仿真用的EDIF、VHDL和Verilog這三種不同格式的網表檔,它介面友好,使用便捷,被譽為業界最易學易用的EDA的軟體,並支持主流的第三方EDA工具,支持除APEX20K系列之外的所有Altera公司的FPGA/CPLD大規模邏輯器件。ispEXPERT:ispEXPERTSystem是ispEXPERT的主要集成環境。通過它可以進行VHDL、Verilog及ABEL語言的設計輸入、綜合、適配、仿真和在系統下載。ispEXPERTSystem是目前流行的EDA軟體中最容量掌握的設計工具之一,它介面友好,操作方便,功能強大,並與第三方EDA工具相容良好。
FoundationSeries:Xilinx公司最新集成開發的EDA工具。它採用自動化的、完整的集成設計環境。Foundation專案管理器集成了Xilinx實現工具,並包含了強大的SynopsysFPGAExpress綜合系統,是業界最強大的EDA設計工具之一。
4.實驗開發系統提供晶片下載電路及EDA實驗/開發的週邊資源(類似於用於單片機開發的仿真器),供硬體驗證用。一般包括:①實驗或開發所需的各類基本信號發生模組,包括時鐘、脈衝、高低電平等;②FPGA/CPLD輸出資訊顯示模組,包括數碼顯示、發光管顯示、聲響指示等;③監控程序模組,提供“電路重構軟配置”;④目標晶片適配座以及上面的FPGA/CPLD目標晶片和編程下載電路。目前從事EDA實驗開發系統研究的院校有:清華大學,北京理工大學,復旦大學,西安電子科技大學,東南大學,杭州電子工業學院等。1.4EDA軟體系統的構成EDA技術研究的對象是電子設計的全過程,有系統級、電路級和物理級3個層次的設計。其涉及的電子系統從低頻、高頻到微波,從線性到非線性,從模擬到數字,從通用積體電路到專用積體電路構造的電子系統,因此EDA技術研究的範疇相當廣泛。如果從專用積體電路ASIC開發與應用角度看,EDA軟體系統應當包含以下子模組:設計輸入子模組、設計資料庫子模組、分析驗證子模組、綜合仿真子模組、佈局佈線子模組等。(1)設計輸入子模組:該模組接受用戶的設計描述,並進行語義正確性、語法規則的檢查,檢查通過後,將用戶的設計描述數據轉換為EDA軟體系統的內部數據格式,存入設計資料庫被其他子模組調用。設計輸入子模組不僅能接受圖形描述輸入、硬體描述語言(HDL)描述輸入,還能接受圖文混合描述輸入。該子模組一般包含針對不同描述方式的編輯器,如圖形編輯器、文本編輯器等,同時包含對應的分析器。
(2)設計資料庫子模組:該模組存放系統提供的庫單元以及用戶的設計描述和中間設計結果。(3)分析驗證子模組:該模組包括各個層次的模擬驗證、設計規則的檢查、故障診斷等。
(4)綜合仿真子模組:該模組包括各個層次的綜合工具,理想的情況是:從高層次到低層次的綜合仿真全部由EDA工具自動實現。(5)佈局佈線子模組:該模組實現由邏輯設計到物理實現的映射,因此與物理實現的方式密切相關。例如,最終的物理實現可以是門陣列、可編程邏輯器件等,由於對應的器件不同,因此各自的佈局佈線工具會有很大的差異。近些年,許多生產可編程邏輯器件的公司都相繼推出適於開發自己公司器件的EDA工具,這些工具一般都具有上面提到的各個模組,操作簡單,對硬體環境要求低,運行平臺是PC機和Windows或WindowsNT操作系統。如Xilinx、Altera、Lattice、Actel、AMD等器件公司都有自己的EDA工具。EDA工具不只面向ASIC的應用與開發,還有涉及電子設計各個方面的EDA工具,包括數字電路設計、模擬電路設計、數模混合設計、系統設計、仿真驗證等電子設計的許多領域。這些工具對硬體環境要求高,一般運行平臺要求是工作站和UNIX操作系統,功能齊全、性能優良,一般由專門開發EDA軟體工具的軟體公司提供,如Cadence、MentelGraphics、Viewlogic、Synopsys等軟體公司都有其特色工具。
Viewlogic公司的EDA工具就有基本工具、系統設計工具和ASIC/FPGA設計工具三大類20多個工具。
其中,基本工具包括:原理圖輸入工具ViewDraw,數字仿真器VeiwSim,波形編輯與顯示器ViewTrace,靜態時序分析工具Motive,設計流程管理工具ViewFlow。系統設計工具包括:模擬電路仿真器ViewSpice,PLD開發工具包ViewPLD,庫開發工具ViewLibrarian,PCB信號串擾分析工具XTK,PCB佈線前信號分析工具PDQ,電磁相容設計工具QUIET,PCB版面規劃工具ViewFloorplanner。
ASIC/FPGA設計工具包括:VHDL仿真器SpeedWave,SpeedWaveVerilog仿真器VCS,邏輯綜合工具ViewSynthesis,自動測試向量生成工具TestGen/Sunrise,原理圖自動生成工具ViewGen,有限狀態機設計工具ViewFSM,Datapath設計工具ViewDatapath,VHDL與Verilog混合仿真環境FusionHDL。1.5EDA工具的發展趨勢
1.設計輸入工具的發展趨勢早期EDA工具設計輸入普遍採用原理圖輸入方式,以文字和圖形作為設計載體和文件,將設計資訊加載到後續的EDA工具,完成設計分析工作。原理圖輸入方式的優點是直觀,能滿足以設計分析為主的一般要求,但是原理圖輸入方式不適合用EDA綜合工具。20世紀80年代末,電子設計開始採用新的綜合工具,設計描述開始由原理圖設計描述轉向以各種硬體描述語言為主的編程方式。用硬體描述語言描述設計,更接近系統行為描述,且便於綜合,更適於傳遞和修改設計資訊,還可以建立獨立於工藝的設計檔,不便之處是不太直觀,要求設計師學會編程。
很多電子設計師都具有原理圖設計的經驗,不具有編程經驗,所以仍然希望繼續在比較熟悉的符號與圖形環境中完成設計,而不是利用編程完成設計。為此,EDA公司在90年代相繼推出一批圖形化免編程的設計輸入工具,它們允許設計師用他們最方便並熟悉的設計方式,如框圖、狀態圖、真值表和邏輯方程建立設計檔,然後由EDA工具自動生成綜合所需的硬體描述語言檔。
2.具有混合信號處理能力的EDA工具目前,數字電路設計的EDA工具遠比模擬電路的EDA工具多,模擬積體電路EDA工具開發的難度較大,但是,由於物理量本身多以模擬形式存在,所以實現高性能的複雜電子系統的設計離不開模擬信號。因此,20世紀90年代以來EDA工具廠商都比較重視數/模混合信號設計工具的開發。對數字信號的語言描述,IEEE已經制定了VHDL標準,對模擬信號的語言正在制定AHDL標準,此外還提出了對微波信號的MHDL描述語言。具有混合信號設計能力的EDA工具能處理含有數字信號處理、專用積體電路宏單元、數模變換和模數變換模組、各種壓控振盪器在內的混合系統設計。美國Cadence、Synopsys等公司開發的EDA工具已經具有混合設計能力。
3.更為有效的仿真工具的發展通常,可以將電子系統設計的仿真過程分為兩個階段:設計前期的系統級仿真和設計過程的電路級仿真。系統級仿真主要驗證系統的功能;電路級仿真主要驗證系統的性能,決定怎樣實現設計所需的精度。在整個電子設計過程中仿真是花費時間最多的工作也是佔用EDA工具資源最多的一個環節。通常,設計活動的大部分時間在做仿真,如驗證設計的有效性、測試設計的精度、處理和保證設計要求等。仿真過程中仿真收斂的快慢同樣是關鍵因素之一。提高仿真的有效性一方面是建立合理的仿真演算法,另一方面是系統級仿真中系統級模型的建模,電路級仿真中電路級模型的建模。預計在下一代EDA工具中,仿真工具將有一個較大的發展。
4.更為理想的設計綜合工具的開發今天,電子系統和電路的集成規模越來越大,幾乎不可能直接面向版圖做設計,若要找出版圖中的錯誤,更是難上加難。將設計者的精力從繁瑣的版圖設計和分析中轉移到設計前期的演算法開發和功能驗證上,這是設計綜合工具要達到的目的。高層次設計綜合工具可以將低層次的硬體設計一起轉換到物理級的設計,實現不同層次的不同形式的設計描述轉換,通過各種綜合演算法實現設計目標所規定的優化設計。當然,設計者的經驗在設計綜合中仍將起到重要的作用,自動綜合工具將有效地提高優化設計效率。
設計綜合工具由最初的只能實現邏輯綜合,逐步發展到可以實現設計前端的綜合,直到設計後端的版圖綜合以及測試綜合的理想且完整的綜合工具。設計前端的綜合工具,可以實現從演算法級的行為描述到寄存器傳輸級結構描述的轉換,給出滿足約束條件的硬體結構。在確定寄存器傳輸結構描述後,由邏輯綜合工具完成硬體的門級結構的描述,邏輯綜合的結果將作為版圖綜合的輸入數據,進行版圖綜合。版圖綜合則是將門級和電路級的結構描述轉換成物理版圖的描述,版圖綜合時將通過自動交互的設計環境,實現按面積、速度和功率完成佈局佈線的優化,實現最佳的版圖設計。人們希望將設計測試工作盡可能地提前到設計前期,以便縮短設計週期,減少測試費用,因此測試綜合貫穿在設計過程的始終。測試綜合時可以消除設計中的冗餘邏輯,診斷不可測的邏輯結構,自動插入可測性結構,生成測試向量;當整個電路設計完成時,測試設計也隨之完成。
面對當今飛速發展的電子產品市場,電子設計人員需要更加實用、快捷的EDA工具,使用統一的集成化設計環境,改變傳統設計思路,即優先考慮具體物理實現方式,而將精力集中到設計構思、方案比較和尋找優化設計等方面,以最快的速度開發出性能優良、品質一流的電子產品。今天的EDA工具將向著功能強大、簡單易學、使用方便的方向發展。1.6EDA的工程設計流程
1.根源程式的編輯和編譯利用EDA技術進行一項工程設計,首先需利用EDA工具的文本編輯器或圖形編輯器將它用文本方式或圖形方式表達出來,進行排錯編譯,變成VHDL檔格式,為進一步的邏輯綜合作準備。常用的根源程式輸入方式有三種。(1)原理圖輸入方式:利用EDA工具提供的圖形編輯器以原理圖的方式進行輸入。原理圖輸入方式比較容易掌握,直觀且方便,所畫的電路原理圖(請注意,這種原理圖與利用Protel畫的原理圖有本質的區別)與傳統的器件連接方式完全一樣,很容易被人接受,而且編輯器中有許多現成的單元器件可以利用,自己也可以根據需要設計元件。然而原理圖輸入法的優點同時也是它的缺點:①隨著設計規模增大,設計的易讀性迅速下降,對於圖中密密麻麻的電路連線,極難搞清電路的實際功能;②一旦完成,電路結構的改變將十分困難,因而幾乎沒有可再利用的設計模組;③移植困難、入檔困難、交流困難、設計交付困難,因為不可能存在一個標準化的原理圖編輯器。圖1.1EDA工程設計流程圖(2)狀態圖輸入方式:以圖形的方式表示狀態圖進行輸入。當填好時鐘信號名、狀態轉換條件、狀態機類型等要素後,就可以自動生成VHDL程式。這種設計方式簡化了狀態機的設計,比較流行。
(3)VHDL軟體程式的文本方式:最一般化、最具普遍性的輸入方法,任何支持VHDL的EDA工具都支持文本方式的編輯和編譯。
2.邏輯綜合和優化欲把VHDL的軟體設計與硬體的可實現性掛鉤,需要利用EDA軟體系統的綜合器進行邏輯綜合。綜合器的功能就是將設計者在EDA平臺上完成的針對某個系統專案的HDL、原理圖或狀態圖形的描述,針對給定硬體結構組件進行編譯、優化、轉換和綜合,最終獲得門級電路甚至更底層的電路描述檔。由此可見,綜合器工作前,必須給定最後實現的硬體結構參數,它的功能就是將軟體描述與給定硬體結構用某種網表檔的方式聯繫起來。顯然,綜合器是軟體描述與硬體實現的一座橋樑。綜合過程就是將電路的高級語言描述轉換成低級的,可與FPGA/CPLD或構成ASIC的門陣列基本結構相映射的網表檔。
由於VHDL仿真器的行為仿真功能是面向高層次的系統仿真,只能對VHDL的系統描述作可行性的評估測試,不針對任何硬體系統,因此基於這一仿真層次的許多VHDL語句不能被綜合器所接受。這就是說,這類語句的描述無法在硬體系統中實現(至少是現階段),這時,綜合器不支持的語句在綜合過程中將忽略掉。綜合器對源VHDL檔的綜合是針對某一PLD供應商的產品系列的,因此,綜合後的結果是可以為硬體系統所接受,具有硬體可實現性。
3.目標器件的佈線/適配邏輯綜合通過後必須利用適配器將綜合後的網表檔針對某一具體的目標器進行邏輯映射操作,其中包括底層器件配置、邏輯分割、邏輯優化、佈線與操作,適配完成後可以利用適配所產生的仿真檔作精確的時序仿真。
適配器的功能是將由綜合器產生的網表檔配置於指定的目標器件中,產生最終的下載檔,如JEDEC格式的檔。適配所選定的目標器件(FPGA/CPLD晶片)必須屬於原綜合器指定的目標器件系列。對於一般的可編程模擬器件所對應的EDA軟體來說,一般僅需包含一個適配器就可以了,如Lattice的PAC-DESIGNER。通常,EDA軟體中的綜合器可由專業的第三方EDA公司提供,而適配器則需由FPGA/CPLD供應商自己提供,因為適配器的適配對象直接與器件結構相對應。
4.目標器件的編程/下載如果編譯、綜合、佈線/適配和行為仿真、功能仿真、時序仿真等過程都沒有發現問題,即滿足原設計的要求,則可以將由FPGA/CPLD佈線/適配器產生的配置/下載檔通過編程器或下載電纜載入目標晶片FPGA或CPLD中。5.設計過程中的有關仿真在綜合以前可以先對VHDL所描述的內容進行行為仿真,即將VHDL設計根源程式直接送到VHDL仿真器中仿真,這就是所謂的VHDL行為仿真。因為此時的仿真只是根據VHDL的語義進行的,與具體電路沒有關係。在這時的仿真中,可以充分發揮VHDL中的適用於仿真控制的語句及有關的預定義函數和庫檔。
在綜合之後,VHDL綜合器一般都可以生成一個VHDL網表檔。網表檔中描述的電路與生成的EDIF/XNF等網表檔一致。VHDL網表檔採用VHDL語法,只是其中的電路描述採用了結構描述方法,即首先描述了最基本的門電路,然後將這些門電路用例化語句連接起來。這樣的VHDL網表檔再送到VHDL仿真器中進行所謂功能仿真,仿真結果與門級仿真器所做的功能仿真的結果基本一致。
需要注意的是,圖1.1中有兩個仿真器,一是VHDL仿真器,另一個是門級仿真器,它們都能進行功能仿真和時序仿真。所不同的是仿真用的檔格式不同,即網表檔不同。這裏所謂的網表(Netlist),是特指電路網路,網表檔描述了一個電路網路。目前流行多種網表檔格式,其中最通用的是EDIF格式的網表檔,XilinxXNF網表檔格式也很流行,不過一般只在使用Xilinx的FPGA/CPLD時才會用到XNF格式。VHDL檔格式也可以用來描述電路網路,即採用VHDL語法描述各級電路互連,稱之為VHDL網表。
功能仿真是僅對VHDL描述的邏輯功能進行測試模擬,以瞭解其實現的功能是否滿足原設計的要求,仿真過程不涉及具體器件的硬體特性,如延時特性。時序仿真是接近真實器件運行的仿真,仿真過程中已將器件特性考慮進去了,因而,仿真精度要高得多。但時序仿真的仿真檔必須來自針對具體器件的佈線/適配器所產生的仿真檔。綜合後所得的EDIF/XNF門級網表檔通常作為FPGA佈線器或CPLD適配器的輸入檔。通過佈線/適配的處理後,佈線/適配器將生成一個VHDL網表檔,這個網表檔中包含了較為精確的延時資訊,網表檔中描述的電路結構與佈線/適配後的結果是一致的。此時,將這個VHDL網表檔送到VHDL仿真器中進行仿真,就可以得到精確的時序仿真結果了。
6.硬體仿真/硬體測試這裏所謂的硬體仿真是針對ASIC設計而言的。在ASIC設計中,比較常用的方法是利用FPGA對系統的設計進行功能檢測,通過後再將其VHDL設計以ASIC形式實現;而硬體測試則是針對FPGA或CPLD直接用於應用系統的檢測而言的。
硬體仿真和硬體測試的目的,是為了在更真實的環境中檢驗VHDL設計的運行情況,特別是對於VHDL程式設計上不是十分規範、語義上含有一定歧義的程式。一般的仿真器包括VHDL行為仿真器和VHDL功能仿真器,它們對於同一VHDL設計的“理解”,即仿真模型的產生,與VHDL綜合器的“理解”,即綜合模型的產生,常常是不一致的。此外,由於目標器件功能的可行性約束,綜合器對於設計的“理解”常在一有限範圍內選擇,而VHDL仿真器的“理解”是純軟體行為,其“理解”的選擇範圍要寬得多,結果這種“理解”的偏差勢必導致仿真結果與綜合後實現的硬體電路在功能上的不一致。當然,還有許多其他的因素也會產生這種不一致,由此可見,VHDL設計的硬體仿真和硬體測試是十分必要的。1.7數字系統的設計1.7.1數字系統的設計模型數字系統指的是互動式的、以離散形式表示的具有存儲、傳輸、資訊處理能力的邏輯子系統的集合。用於描述數字系統的模型有多種,各種模型描述數字系統的側重點不同。下麵介紹一種普遍採用的模型。這種模型根據數字系統的定義,將整個系統劃分為兩個模組或兩個子系統:數據處理子系統和控制子系統,如圖1.2所示。圖1.2數字系統的設計模型
數據處理子系統主要完成數據的採集、存儲、運算和傳輸。數據處理子系統主要由記憶體、運算器、數據選擇器等功能電路組成。數據處理子系統與外界進行數據交換,在控制子系統(或稱控制器)發出的控制信號作用下,數據處理子系統將進行數據的存儲和運算等操作。數據處理子系統將接收由控制器發出的控制信號,同時將自己的操作進程或操作結果作為條件信號傳送給控制器。應當根據數字系統實現的功能或演算法設計數據處理子系統。
控制子系統是執行數字系統演算法的核心,具有記憶功能,因此控制子系統是時序系統。控制子系統由組合邏輯電路和觸發器組成,與數據處理子系統共用時鐘。控制子系統的輸入信號是外部控制信號和由數據處理子系統送來的條件信號,按照數字系統設計方案要求的演算法流程,在時鐘信號的控制下進行狀態的轉換,同時產生與狀態和條件信號相對應的輸出信號,該輸出信號將控制數據處理子系統的具體操作。應當根據數字系統功能及數據處理子系統的需求設計控制子系統。
把數字系統劃分成數據處理子系統和控制子系統進行設計,這只是一種手段,不是目的。它用來幫助設計者有層次地理解和處理問題,進而獲得清晰、完整正確的電路圖。因此,數字系統的劃分應當遵循自然、易於理解的原則。設計一個數字系統時,採用該模型的優點是:
(1)把數字系統劃分為控制子系統和數據處理子系統兩個主要部分,使設計者面對的電路規模減小,二者可以分別設計。
(2)由於數字系統中控制子系統的邏輯關係比較複雜,將其獨立劃分出來後,可突出設計重點和分散設計難點。(3)當數字系統劃分為控制子系統和數據處理子系統後,邏輯分工清楚,各自的任務明確,這可以使電路的設計,調測和故障處理都比較方便。但採用該模型設計一個數字系統時,必須先分析和找出實現系統邏輯的演算法,根據具體的演算法要求提出系統內部的結構要求,再根據各個部分分擔的任務劃分出控制子系統和數據處理子系統。演算法不同,系統的內部結構不同,控制子系統和數據處理子系統電路也不同。有時控制子系統和數據處理子系統的界限劃分也比較困難,需要反復比較和調整才能確定。1.7.2數字系統的設計方法數字系統設計有多種方法,如模組設計法、自頂向下設計法和自底向上設計法等。數字系統的設計一般採用自頂向下、由粗到細、逐步求精的方法。自頂向下是指將數字系統的整體逐步分解為各個子系統和模組,若子系統規模較大,則還需將子系統進一步分解為更小的子系統和模組,層層分解,直至整個系統中各子系統關係合理,並便於邏輯電路級的設計和實現為止。採用該方法設計時,高層設計進行功能和介面描述,說明模組的功能和介面,模組功能的更詳細的描述在下一設計層次說明,最底層的設計才涉及具體的寄存器和邏輯門電路等實現方式的描述。
採用自頂向下的設計方法有如下優點:(1)自頂向下設計方法是一種模組化設計方法。對設計的描述從上到下逐步由粗略到詳細,符合常規的邏輯思維習慣。由於高層設計同器件無關,設計易於在各種積體電路工藝或可編程器件之間移植。(2)適合多個設計者同時進行設計。隨著技術的不斷進步,許多設計由一個設計者已無法完成,必須經過多個設計者分工協作完成一項設計的情況越來越多。在這種情況下,應用自頂向下的設計方法便於由多個設計者同時進行設計,對設計任務進行合理分配,用系統工程的方法對設計進行管理。針對具體的設計,實施自頂向下的設計方法的形式會有所不同,但均需遵循以下兩條原則:逐層分解功能,分層次進行設計。同時,應在各個設計層次上,考慮相應的仿真驗證問題。1.7.3數字系統的設計準則進行數字系統設計時,通常需要考慮多方面的條件和要求,如設計的功能和性能要求,元器件的資源分配和設計工具的可實現性,系統的開發費用和成本等。雖然具體設計的條件和要求千差萬別,實現的方法也各不相同,但數字系統設計還是具備一些共同的方法和準則的。
1.分割準則自頂向下的設計方法或其他層次化的設計方法,需要對系統功能進行分割,然後用邏輯語言進行描述。分割過程中,若分割過粗,則不易用邏輯語言表達;分割過細,則帶來不必要的重複和繁瑣。因此,分割的粗細需要根據具體的設計和設計工具情況而定。掌握分割程度,可以遵循以下的原則:分割後最底層的邏輯塊應適合用邏輯語言進行表達;相似的功能應該設計成共用的基本模組;介面信號盡可能少;同層次的模組之間,在資源和I/O分配上,盡可能平衡,以使結構勻稱;模快的劃分和設計,盡可能做到通用性好,易於移植。
2.系統的可觀測性在系統設計中,應該同時考慮功能檢查和性能的測試,即系統觀測性的問題。一些有經驗的設計者會自覺地在設計系統的同時設計觀測電路,即觀測器,指示系統內部的工作狀態。建立觀測器,應遵循以下原則:具有系統的關鍵點信號,如時鐘、同步信號和狀態等信號;具有代表性的節點和線路上的信號;具備簡單的“系統工作是否正常”的判斷能力。
3.同步和非同步電路非同步電路會造成較大延時和邏輯競爭,容易引起系統的不穩定,而同步電路則是按照統一的時鐘工作,穩定性好。因此在設計時盡可能採用同步電路進行設計,避免使用非同步電路。在必須使用非同步電路時,應採取措施來避免競爭和增加穩定性。
4.最優化設計由於可編程器件的邏輯資源、連接資源和I/O資源有限,器件的速度和性能也是有限的,用器件設計系統的過程相當於求最優解的過程。因此,需要給定兩個約束條件:邊界條件和最優化目標。所謂邊界條件,是指器件的資源及性能限制。最優化目標有多種,設計中常見的最優化目標有:器件資源利用率最高;系統工作速度最快,即延時最小;佈線最容易,即可實現性最好。具體設計中,各個最優化目標間可能會產生衝突,這時應滿足設計的主要要求。
5.系統設計的藝術一個系統的設計,通常需要經過反復的修改、優化才能達到設計的要求。一個好的設計,應該滿足“和諧”的基本特徵,對數字系統可以根據以下幾點作出判斷:設計是否總體上流暢,無拖泥帶水的感覺;資源分配、I/O分配是否合理,是否沒有任何設計上和性能上的瓶頸,系統結構是否協調;是否具有良好的可觀測性;是否易於修改和移植;器件的特點是否能得到充分的發揮。1.7.4數字系統的設計步驟
1.系統任務分析數字系統設計中的第一步是明確系統的任務。在設計任務書中,可用各種方式提出對整個數字系統的邏輯要求,常用的方式有自然語言、邏輯流程圖、時序圖或幾種方法的結合。當系統較大或邏輯關係較複雜時,系統任務(邏輯要求)邏輯的表述和理解都不是一件容易的工作。所以,分析系統的任務必須細緻、全面,不能有理解上的偏差和疏漏。
2.確定邏輯演算法實現系統邏輯運算的方法稱為邏輯演算法,也簡稱為演算法。一個數字系統的邏輯運算往往有多種演算法,設計者的任務不但是要找出各種演算法,還必須比較優劣,取長補短,從中確定最合理的一種。數字系統的演算法是邏輯設計的基礎,演算法不同,則系統的結構也不同,演算法的合理與否直接影響系統結構的合理性。確定演算法是數字系統設計中最具創造性的一環,也是最難的一步。
3.建立系統及子系統模型當演算法明確後,應根據演算法構造系統的硬體框架(也稱為系統框圖),將系統劃分為若干個部分,各部分分別承擔演算法中不同的邏輯操作功能。如果某一部分的規模仍嫌大,則需進一步劃分。劃分後的各個部分應邏輯功能清楚,規模大小合適,便於進行電路級的設計。
4.系統(或模組)邏輯描述當系統中各個子系統(指最低層子系統)和模組的邏輯功能和結構確定後,則需採用比較規範的形式來描述系統的邏輯功能。設計方案的描述方法可以有多種,常用的有方框圖、流程圖和描述語言等。對系統的邏輯描述可先採用較粗略的邏輯流程圖,再將邏輯流程圖逐步細化為詳細邏輯流程圖,最後將詳細邏輯流程圖表示成與硬體有對應關係的形式,為下一步的電路級設計提供依據。
5.邏輯電路級設計及系統仿真電路級設計是指選擇合理的器件和連接關係以實現系統邏輯要求。電路級設計的結果常採用兩種方式來表達:電路圖方式和硬體描述語言方式。EDA軟體允許以這兩種方式輸入,以便作後續的處理。當電路設計完成後必須驗證設計是否正確。在早期,只能通過搭試硬體電路才能得到設計的結果。目前,數字電路設計的EDA軟體都具有仿真功能,先通過系統仿真,當系統仿真結果正確後再進行實際電路的測試。由EDA軟體的驗證結果十分接近實際結果,因此,可極大地提高電路設計的效率。
6.系統的物理實現物理實現是指用實際的器件實現數字系統的設計,用儀錶測量設計的電路是否符合設計要求。現在的數字系統往往採用大規模和超大規模積體電路,由於器件集成度高、導線密集,故一般在電路設計完成後即設計印刷電路板,在印刷電路板上組裝電路進行測試。需要注意的是,印刷電路板本身的物理特性也會影響電路的邏輯關係。1.8EDA技術的應用展望
1.EDA技術將廣泛應用於高校電類專業的實踐教學工作中各種數字積體電路晶片,用VHDL語言可以進行方便的描述,經過生成元件後可作為一個標準元件進行調用。同時,借助於VHDL開發設計平臺,可以進行系統的功能仿真和時序仿真,借助於實驗開發系統可以進行硬體功能驗證等,因而可大大地簡化數字電子技術的實驗,並可根據學生的設計不受限制地開展各種實驗。
對於電子技術課程設計,特別是數字系統性的課題,在EDA實驗室不需添加任何新的東西,即可設計出各種比較複雜的數字系統,並且借助於實驗開發系統可以方便地進行硬體驗證,如設計頻率計、交通控制燈、碼錶等。自1997年全國第三屆電子技術設計競賽採用FPGA/CPLD器件以來,FPGA/CPLD已得到了越來越多選手的利用,並且給定的課題如果不借助於FPGA/CPLD器件可能根本無法實現。因此EDA技術將成為各種電子技術設計競賽選手必須掌握的基本技能與制勝的法寶。
現代電子產品的設計離不開EDA技術,作為電類專業的畢業生,借助於EDA技術在畢業設計中可以快速、經濟地設計各種高性能的電子系統,並且很容易實現、修改及完善。在整個大學學習期間,我們可以分階段、分層次地對電類專業的學生進行EDA技術的學習和應用,使他們迅速掌握並有效利用這一新技術,同時還可大大地提高學生的實踐動手能力、創新能力和電腦應用能力。
2.EDA技術將廣泛應用於科研工作和新產品的開發中由於可編程邏輯器件性能價格比的不斷提高,開發軟體功能的不斷完善,EDA技術設計電子系統具有用軟體的方式設計硬體;設計過程中可用有關軟體進行各種仿真;系統可現場編程,線上升級;整個系統可集成在一個晶片上等特點的利用,使其將廣泛應用於科研工作和新產品的開發工作中。
3.EDA技術將廣泛應用於專用積體電路的開發可編程器件製造廠家可按照一定的規格以通用器件大量生產,用戶可按通用器件從市場上選購,然後按自己的要求通過編程實現專用積體電路的功能。因此,對於積體電路製造技術與世界先進的積體電路製造技術尚有一定差距的我國,開發具有自主知識產權的專用積體電路,已成為相關專業人員的重要任務。
4.EDA技術將廣泛應用於傳統機電設備的升級換代和技術改造傳統機電設備的電氣控制系統,如果利用EDA技術進行重新設計或進行技術改造,不但設計週期短、設計成本低,而且將提高產品或設備的性能,縮小產品體積,提高產品的技術含量,提高產品的附加值。第2章大規模可編程邏輯器件2.1可編程邏輯器件概述
2.2複雜可編程邏輯器件(CPLD)
2.3現場可編程門陣列(FPGA)
2.4在系統可編程(ISP)邏輯器件
2.5FPGA和CPLD的開發應用選擇
2.1可編程邏輯器件概述2.1.1PLD的發展進程最早的可編程邏輯器件出現在20世紀70年代初,主要是可編程只讀記憶體(PROM)和可編程邏輯陣列(PLA)。20世紀70年代末出現了可編程陣列邏輯(PAL—ProgrammableArrayLogic)器件。20世紀80年代初期,美國Lattice公司推出了一種新型的PLD器件,稱為通用陣列邏輯(GAL-GenericArrayLogic),一般認為它是第二代PLD器件。隨著技術的進步,生產工藝的不斷改進,器件規模不斷擴大,邏輯功能不斷增強,各種可編程邏輯器件如雨後春筍般地湧現,如PROM、EPROM、E2PROM等。
在EPROM基礎上出現的高密度可編程邏輯器件稱為EPLD或CPLD。現在一般把超過某一集成度的PLD器件都稱為CPLD。在20世紀80年代中期,美國Xilinx公司首先推出了現場可編程門陣列(FPGA)器件。FPGA器件採用邏輯單元陣列結構和靜態隨機存取記憶體工藝,設計靈活,集成度高,可無限次反復編程,並可現場模擬調試驗證。在20世紀90年代初,Lattice公司又推出了在系統可編程大規模積體電路(ispLSI)。表2.1Altera系列產品主要性能
美國Xilinx公司在1985年推出了世界上第一塊現場可編程門陣列(FPGA)器件,最初3個完整的系列產品分別命名為XC2000、XC3000和XC4000,共有19個品種,後又增加了低電壓(3.3V)的“L”系列、多I/O引腳的“H”系列及更高速的“A”系列,並推出了與XC3000相容的XC3100/A系列,在XC4000的基礎上又增加了“E”和“EX”系列。在1995年,Xilinx又增加了XC5000、XC6200和XC8100FPGA系列,並取得了突破性進展。而後又推出了Spartan和Virture系列。Xilinx還有3個EPLD系列產品:XC7200、XC7300和XC9500,如表2.2所示。表2.2Xilinx系列產品主要性能Lattice公司成立於1983年,是E2CMOS技術的開拓者,發明了GAL器件,是低密度PLD的最大供應商。該公司於20世紀90年代開始進入HDPLD領域,並推出了pLSI/ispLSI器件,實現了在系統可編程技術(ISP)。ISP使用戶能夠在無須從系統板上拔下晶片或從系統中取出電路板的情況下,改變晶片的邏輯內容乃至改變整個電子系統的功能。這種技術能大大縮短設計週期,簡化生產流程,降低設計成本。
Lattice公司目前的pLSI/ispLSI器件主要有6個系列:pLSI/ispLSI1000、2000、3000、5000、6000和8000系列,如表2.3所示。表2.3Lattice系列產品主要性能2.1.2PLD的種類及分類方法目前生產PLD的廠家有Xilinx、Altera、Actel、Atemel、AMD、AT&T、Cypress、Intel、Motorola、Quicklogic、TI(TexasInstrument)等。常見的PLD產品有:PROM、EPROM、EEPROM、PLA、FPLA、PAL、GAL、CPLD、EPLD、EEPLD、HDPLD、FPGA、pLSI、ispLSI、ispGAL和ispGDS等。PLD的分類方法較多,也不統一,下麵簡單介紹4種。1.從結構的複雜程度分類從結構的複雜程度上一般可將PLD分為簡單PLD和複雜PLD(CPLD),或分為低密度PLD和高密度PLD(HDPLD)。通常,當PLD中的等效門數超過500門時,則認為它是高密度PLD。傳統的PAL和GAL是典型的低密度PLD,其餘如EPLD、FPGA和pLSI/ispLSI則稱為HDPLD或CPLD。
2.從互連結構上分類從互連結構上可將PLD分為確定型和統計型兩類。確定型PLD提供的互連結構每次用相同的互連線實現佈線,所以,這類PLD的定時特性常常可以從數據手冊上查閱而事先確定。這類PLD是由PROM結構演變而來的,目前除了FPGA器件外,基本上都屬於這一類結構。統計型結構是指設計系統每次執行相同的功能,卻能給出不同的佈線模式,一般無法確切地預知線路的延時。所以,設計系統必須允許設計者提出約束條件,如關鍵路徑的延時和關聯信號的延時差等。這類器件的典型代表是FPGA系列。
3.從可編程特性上分類從可編程特性上可將PLD分為一次可編程和重複可編程兩類。一次可編程的典型產品是PROM、PAL和熔絲型FPGA,其他大多是重複可編程的。其中,用紫外線擦除的產品的編程次數一般在幾十次的量級,採用電擦除方式的產品的編程的次數稍多些,採用E2CMOS工藝的產品,擦寫次數可達上千次,而採用SRAM(靜態隨機存取記憶體)結構,則被認為可實現無限次的編程。
4.從可編程器件的編程元件上分類最早的PLD器件(如PAL)大多是TTL工藝,但後來的PLD器件(如GAL、EPLD、FPGA及pLSI/ISP器件)都採用MOS工藝(如NMOS、CMOS、E2CMOS等)。目前,一般有下列5種編程元件:①熔絲型開關(一次可編程,要求大電流);②可編程低阻電路元件(多次可編程,要求中電壓);③EPROM的編程元件(需要有石英窗口,紫外線擦除);④EEPROM的編程元件;⑤基於SRAM的編程元件。2.2複雜可編程邏輯器件(CPLD)2.2.1CPLD的基本結構早期的CPLD主要用來替代PAL器件,所以其結構與PAL、GAL基本相同,採用了可編程的與陣列和固定的或陣列結構。再加上一個全局共用的可編程與陣列,把多個宏單元連接起來,並增加了I/O控制模組的數量和功能。可以把CPLD的基本結構看成由邏輯陣列宏單元和I/O控制模組兩部分組成。
1.邏輯陣列宏單元在較早的CPLD中,由結構相同的邏輯陣列組成宏單元模組。一個邏輯陣列單元的基本結構如圖2.1所示。輸入項由專用輸入端和I/O端組成,而來自I/O端口的輸入項,可通過I/O結構控制模組的回饋選擇,可以是I/O端信號的直接輸入,也可以是本單元輸出的內部回饋。所有輸入項都經過緩衝器驅動,並輸出其輸入的原碼及補數。圖2.1中所有豎線為邏輯單元陣列的輸入線,每個單元各有9條橫向線,稱為積項線(或稱為乘積項)。在每條輸入線和積項線的交叉處設有一個EPROM單元進行編程,以實現輸入項與乘積項的連接關係,這樣使得邏輯陣列中的與陣列是可編程的。其中,8條積項線用作或門的輸入,構成一個具有8個積項和的組合邏輯輸出;另一條積項線(OE線)連到本單元的三態輸出緩衝器的控制端,以I/O端作輸出、輸入或雙向輸出等工作方式。圖2.1邏輯陣列單元結構圖
可以看出,早期CPLD中的邏輯陣列結構與PAL、GAL中的結構極為類似,只是用EPROM單元取代了PAL中的熔絲和GAL中的E2PROM單元。和GAL器件一樣,可實現擦除和再編程功能。在基本結構中,每個或門有固定乘積項(8個),也就是說,邏輯陣列單元中的或陣列是固定的、不可編程的,因而這種結構的靈活性差。據統計,實際工作中常用到的組合邏輯,約有70%是只含3個乘積項及3個以下的積項和。另一方面,對遇到複雜的組合邏輯所需的乘積項可能超過8個,這又要用兩個或多個邏輯單元來實現。器件的資源利用率不高。為此,目前的CPLD在邏輯陣列單元結構方面作了很大改進,下麵討論幾種改進的結構形式。1)乘積項數目不同的邏輯陣列單元圖2.2所示是一個具有12個專用輸入端和10個I/O端的CPLD,共有10個邏輯陣列單元,分成5個邏輯單元對,各對分別由不同數量的乘積項組成。由圖2.2可見,中間的邏輯單元對可實現16個積項和的組合邏輯輸出,最外側的邏輯單元對由8個乘積項組成,其餘3對分別由10、12、14個乘積項組成,從而可實現更為複雜的邏輯功能。各邏輯單元中另有一條積項線作輸出三態緩衝器的控制。具有這種結構的代表產品為Atmel公司的AT220V10A器件。圖2.2積項線數不同的邏輯陣列單元2)具有兩個或項輸出的邏輯陣列單元圖2.3是具有兩個固定積項和輸出的CPLD的結構圖。由圖可見,每個單元中含有兩個或項輸出,而每個或項均有固定的4個乘積項輸入。為提高內部各或項的利用率,每個或項的輸出均先送到一個由EPROM單元可編程控制的1分2選擇電路,即陣列單元中上面的或項輸出由選擇電路控制,既可輸送到本單元中第2級或門的輸入端,也可饋送到相鄰的下一個陣列單元第2級或門的輸入端;
同樣,陣列單元中下面的或項輸出由選擇電路控制,可直接送到本單元第2級或門的輸入端,也可饋送到相鄰的前一個陣列單元中的第2級或門輸入端,使本單元不用的或項放到另一單元中發揮其作用。因而每個邏輯陣列單元又可共用相鄰單元中的乘積項,使每個陣列可具有4、8、12和16四種組合的積項和輸出,甚至本單元中的兩個或項都可用於相鄰的兩個單元中。這樣,既提高了器件內部各單元的利用率,又可實現更為複雜的邏輯功能。以這種邏輯單元結構實現的EPLD有Actel公司的EP512器件等。圖2.3具有兩個固定積項和輸出的結構圖
在Atmel公司的ATV750等器件結構調整中,每個邏輯單元中也含有兩個或項,但不同單元中構成或項的積項數卻不同,它是分別由4、5、6、7和8個乘積項輸入到兩個或門所組成的5對陣列單元構成的組合陣列。每個單元中的兩個或項輸出通過輸出邏輯模組中的選擇電路控制,可實現各自獨立的輸出,也可將兩個或項再“線或”起來實現功能更為複雜的組合邏輯輸出,但各個陣列單元中的或項不能為相鄰的陣列單元所共用。3)功能更多、結構更複雜的邏輯陣列單元隨著集成規模和工藝水準的提高,出現了大批結構複雜、功能更多的邏輯陣列單元形式。如Altera公司的EP1810器件採用了全局匯流排和局部匯流排相結合的可編程邏輯宏單元結構:採用多陣列矩陣(MAX—MultipleArrayMatrix)結構的大規模CPLD器件,如Altera公司的EPM系列和Atmel公司的ATV5000系列器件;採用通用互連矩陣(UIM—UniversalInterconnectMatrix)及雙重邏輯功能塊結構的邏輯陣列單元,如Xilinx公司的XC7000和XC9500系列產品。
2.I/O控制模組
CPLD中的I/O控制模組,根據器件的類型和功能不同,可有各種不同的結構形式,但基本上每個模組都由輸出極性轉換電路、觸發器和輸出三態緩衝器三部分及與它們相關的選擇電路所組成。下麵介紹在CPLD中廣泛採用的幾種I/O控制模組。
1)與PAL器件相相容的I/O模組如圖2.4所示,可編程邏輯陣列中每個邏輯陣列邏輯單元的輸出都通過一個獨立的I/O控制模組接到I/O端,通過I/O控制模組的選擇實現不同的輸出方式。根據編程選擇,各模組可實現組合邏輯輸出和寄存器輸出方式。圖2.4與PAL相容的CPLD的I/O控制模組結構2)與GAL器件相相容的I/O模組——輸出宏單元如圖2.5所示,從邏輯陣列單元輸出的積項和首先送到輸出宏單元(OMC—OutputMacroCell)的輸出極性選擇電路,由EPROM單元構成的可編程控制位來選擇該輸出極性(原碼或它的補數)。每個OMC中還有由EPROM單元構成的兩個結構控制位,根據構形單元表,OMC可實現如圖2.6所示的4種不同的工作方式。圖2.5OMC結構圖圖2.6OMC的4種不同的工作方式3)觸發器可編程的I/O模組為了進一步改善I/O控制模組的功能,對I/O模組中的觸發器電路進行改進並由EPROM單元進行編程,可實現不同類型的觸發器結構,即D、T、JK、RS等類型的觸發器,如圖2.7所示。這種改進的I/O控制模組,可組合成高達50種的電路結構。圖2.7觸發器可編程的I/O控制模組結構4)具有兩路積項和輸入與兩個觸發器結構的I/O控制模組如圖2.8所示,模組中兩個觸發器可獨立地回饋回邏輯陣列。由於這種結構的靈活性,可使觸發器成為“內藏(Burried)”工作方式,而且,它具有更多的觸發器,很容易實現更為複雜的狀態機功能。圖2.8具有兩路積項和輸入與兩個觸發器的I/O控制模組結構5)具有三路積項和輸入與兩個觸發器的I/O控制模組如圖2.9所示,每個I/O模組可接受三路積項和輸入,每路各有4個乘積項。利用EPROM控制單元的編程,可實現下列功能:
(1)一路積項和的輸出直接饋送到I/O端,而另兩路積項和的輸出則分別饋送到兩個觸發器的輸入端D1和D2,它們的輸出均可為“內藏”工作方式,通過編程控制可回饋到邏輯陣列匯流排中去。圖2.9具有三路積項和輸入與兩個觸發器的I/O控制模組結構(2)在實現組合邏輯輸出或寄存器方式輸出之前,三路和項還可以通過編程組合在一起,以實現高達12個積項和的組合邏輯輸出或寄存器輸出。
(3)在組合邏輯輸出方式中,通過編程控制可實現4、8或12個積項和的組合邏輯輸出,而模組中的中、下兩路和項仍可分別饋送到兩個觸發器的D1和D2端,它們的輸出Q1和Q2為“內藏”工作方式,可通過編程回饋到邏輯陣列匯流排中去。
(4)在寄存器輸出方式中,上、中兩路組合成8個積項和自動饋送到觸發器D1輸入端,而下路的和項除饋送到觸發器D2輸入端為“內藏”工作方式外,還可與D1共用。(5)兩個觸發器均可有各自的非同步複位和時鐘信號:AR1、CLK1和AR2、CLK2,它們由編程邏輯陣列中的4條積項線提供。
(6)輸出三態緩衝器的控制信號由來自編程邏輯陣列的一條積項線提供。
(7)當I/O端作輸入端使用,或I/O模組的輸出回饋到邏輯陣列匯流排中去時,均通過同一個回饋緩衝器輸出它們的同相和反相兩路信號,饋送到邏輯陣列匯流排中去,而兩個觸發器的輸出Q1和Q2則通過各自的回饋緩衝器,將它們的信號(同相及反相信號)饋送到邏輯陣列匯流排中去。2.2.2Altera公司的器件產品
Altera公司的產品在我國有較多的用戶,如EP220、EP224、EP6010、EP1810等經典產品應用頗廣。後來推出的EPM系列和EPF系列的集成度更是大大提高,品種多樣,性能優越。
Altera公司提供了7種通用PLD系列產品:FLEX10K、FLEX8000、MAX9000、MAX7000、FLASHlogic、MAX5000和Classic。FLEX(FlexibleLogicElementMatriX)結構使用查找表(LUT—LookUpTable)來實現邏輯功能,而多陣列矩陣(MAX—MutipleArrayMatriX)、FLASHlogic和經典系列,採用可編程“與”/固定“或”乘積項結構。所有Altera器件系列都使用CMOS處理工藝,它比雙極性工藝具有更低的功耗和更高的可靠性。
1.FLEX10K系列器件
FLEX10K系列器件是高密度陣列嵌入式可編程邏輯器件系列。這類器件最大可達10萬個典型門,5392個寄存器;採用0.5μmCMOSSRAM工藝製造;具有在系統可配置特性;在所有I/O端口中有輸入/輸出寄存器;3.3V或5.0V工作模式;由Altera公司的MAX+plusⅡ開發系統提供軟體支持,可在PC機或工作站上運行。為了增加邏輯系統要求的集成度,可編程邏輯不僅要增加密度,而且要有效地實現大量的邏輯電路。FLEX10K系列以工業上最大的PLD為特徵(達到10萬門),包括嵌入式陣列、多組低時延時鐘和內部三態匯流排等結構特性,提供了複雜邏輯設計所需的性能和利用主系統級集成的要求。FLEX10K器件可理想地用於複雜門陣列的各種場合,其特性如表2.4所示。表2.4FLEX10K(EPF10K10~10K100)器件特性FLEX10K器件的結構類似於嵌入式門陣列。由於有標準的門陣列,嵌入式門陣列在通用的門海結構中實現一般邏輯。除此之外,嵌入式門陣列有專門的晶片面積以實現大的專用功能。嵌入式門陣列在減少晶片面積的同時具有比標準門陣列更快的速度,這是通過嵌入在矽裏的函數完成的。然而嵌入的宏函數不能被用戶化,限制了設計者的選項。相比之下,FLEX10K器件是可編程的,在調試時,給設計者提供了實現重複設計改變過程中對嵌入宏函數和一般邏輯的完全控制。
每個FLEX10K器件包含一個實現存儲和專用邏輯功能的嵌入陣列和一個實現一般邏輯的邏輯陣列。嵌入陣列和邏輯陣列的結合提供了嵌入式門陣列的高性能和高密度,可以使設計者在某個器件上實現一個完整的系統。嵌入陣列由一系列嵌入陣列塊(EAB)構成。實現存儲功能時,每個EAB提供2048比特,可以用來完成RAM、ROM、雙口RAM或者FIFO功能。實現邏輯功能時
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年教师招聘之《幼儿教师招聘》考试题库及参考答案详解【黄金题型】
- 智能门铃视频通话创新创业项目商业计划书
- 电动汽车充电网络智能调度与分配创新创业项目商业计划书
- 仙客来创新创业项目商业计划书
- 教师招聘之《小学教师招聘》试卷附完整答案详解(夺冠系列)
- 教师招聘之《小学教师招聘》自我提分评估附答案详解(b卷)
- 教师招聘之《幼儿教师招聘》考试历年机考真题集附答案详解(能力提升)
- 教师招聘之《小学教师招聘》能力检测(典型题)附答案详解
- 教师招聘之《小学教师招聘》考试黑钻押题带答案详解(培优b卷)
- 教师招聘之《小学教师招聘》考前冲刺测试卷讲解及参考答案详解1套
- 贵阳市殡仪服务中心招聘考试真题2024
- 中学藏文散文教学课件大纲
- 第4课《乡愁》课件-2025-2026学年统编版语文九年级上册
- 兵役法教学课件
- 第六届山东省无人机技术与应用职业技能竞赛(无人机测绘操控员)题库(含答案)
- 第1章三角形单元测试2025-2026学年苏科版八年级数学上册
- 2025-2026学年人教版小学数学四年级上册教学计划及进度表
- 高中语文课本中的作文素材(选必上)
- 2025年中医确有专长考试题库(附答案)
- 2025年秋季学期(统编版)二年级上册语文教学工作计划及教学进度表
- 2025年小学会计入职考试题库
评论
0/150
提交评论