『壹』 eda技術的核心技術是什麼
eda
一、什麼是EDA
20世紀90年代,國際上電子和計算機技術較先進的國家,一直在積極探索新的電子電路設計方法,並在設計方法、工具等方面進行了徹底的變革,取得了巨大成功。在電子技術設計領域,可編程邏輯器件(如CPLD、FPGA)的應用,已得到廣泛的普及,這些器件為數字系統的設計帶來了極大的靈活性。這些器件可以通過軟體編程而對其硬體結構和工作方式進行重構,從而使得硬體的設計可以如同軟體設計那樣方便快捷。這一切極大地改變了傳統的數字系統設計方法、設計過程和設計觀念,促進了EDA技術的迅速發展。
EDA是電子設計自動化(Electronic Design Automation)的縮寫,在20世紀90年代初從計算機輔助設計(CAD)、計算機輔助製造(CAM)、計算機輔助測試(CAT)和計算機輔助工程(CAE)的概念發展而來的。EDA技術就是以計算機為工具,設計者在EDA軟體平台上,用硬體描述語言HDL完成設計文件,然後由計算機自動地完成邏輯編譯、化簡、分割、綜合、優化、布局、布線和模擬,直至對於特定目標晶元的適配編譯、邏輯映射和編程下載等工作。EDA技術的出現,極大地提高了電路設計的效率和可*性,減輕了設計者的勞動強度。
二、設計方法
前端設計(系統建模RTL 級描述)後端設計(FPGAASIC)系統建模
IP 復用
前端設計
系統描述:建立系統的數學模型。
功能描述:描述系統的行為或各子模塊之間的數
據流圖。
邏輯設計:將系統功能結構化,通常以文本、原
理圖、邏輯圖、布爾表達式來表示設計結果。
模擬:包括功能模擬和時序模擬,主要驗證系統
功能的正確性及時序特性。
三、幾個有關EDA的專題網站
EDA中心 www.eda.ac.cn
EDA中國門戶網站 www.edacn.net
中國EDA技術網 www.51eda.com
EDA愛好者 www.edafans.com
EDA教學與研究 www.edateach.com
附文:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
EDA技術的發展與應用
1 前言 ---- 人類社會已進入到高度發達的信息化社會,信息社會的發展離不開電子產品的進步。 現代電子產品在性能提高、復雜度增大的同時,價格卻一直呈下降趨勢,而且產品更新換代的步伐 也越來越快,實現這種進步的主要原因就是生產製造技術和電子設計技術的發展。前者以微細加工 技術為代表,目前已進展到深亞微米階段,可以在幾平方厘米的晶元上集成數千萬個晶體管;後者 的核心就是EDA技術。EDA是指以計算機為工作平台,融合了應用電子技術、計算機技術、智能化 技術最新成果而研製成的電子CAD通用軟體包,主要能輔助進行三方面的設計工作:IC設計,電子 電路設計以及PCB設計。沒有EDA技術的支持,想要完成上述超大規模集成電路的設計製造是不可 想像的,反過來,生產製造技術的不斷進步又必將對EDA技術提出新的要求。
2 EDA技術的發展 ---- 回顧近30年電子設計技術的發展歷程,可將EDA技術分為三個階段。 ---- 七十年代為CAD階段,這一階段人們開始用計算機輔助進行IC版圖編輯和PCB布局布 線,取代了手工操作,產生了計算機輔助設計的概念。 ---- 八十年代為CAE階段,與CAD相比,除了純粹的圖形繪制功能外,又增加了電路功能設 計和結構設計,並且通過電氣連接網路表將兩者結合在一起,以實現工程設計,這就是計算機輔助 工程的概念。CAE的主要功能是:原理圖輸入,邏輯模擬,電路分析,自動布局布線,PCB後分 析。 ---- 九十年代為ESDA階段。盡管CAD/CAE技術取得了巨大的成功,但並沒有把人從繁重的 設計工作中徹底解放出來。在整個設計過程中,自動化和智能化程度還不高,各種EDA軟體界面千 差萬別,學習使用困難,並且互不兼容,直接影響到設計環節間的銜接。基於以上不足,人們開始 追求貫徹整個設計過程的自動化,這就是ESDA即電子系統設計自動化。
3 ESDA技術的基本特徵 ---- ESDA代表了當今電子設計技術的最新發展方向,它的基本特徵是:設計人員按照"自頂 向下"的設計方法,對整個系統進行方案設計和功能劃分,系統的關鍵電路用一片或幾片專用集成 電路(ASIC)實現,然後採用硬體描述語言(HDL)完成系統行為級設計,最後通過綜合器和適配 器生成最終的目標器件。這樣的設計方法被稱為高層次的電子設計方法,具體流程還將在4.2節中 做深入介紹。下面介紹與ESDA基本特徵有關的幾個概念。 ---- 3.1 "自頂向下"的設計方法 ---- 10年前,電子設計的基本思路還是選擇標准集成電路"自底向上"(Bottom-Up)地構 造出一個新的系統,這樣的設計方法就如同一磚一瓦地建造金字塔,不僅效率低、成本高而且還容 易出錯。 ---- 高層次設計給我們提供了一種"自頂向下"(Top-Down)的全新的設計方法,這種設計 方法首先從系統設計入手,在頂層進行功能方框圖的劃分和結構設計。在方框圖一級進行模擬、糾 錯,並用硬體描述語言對高層次的系統行為進行描述,在系統一級進行驗證。然後用綜合優化工具 生成具體門電路的網表,其對應的物理實現級可以是印刷電路板或專用集成電路。由於設計的主要 模擬和調試過程是在高層次上完成的,這不僅有利於早期發現結構設計上的錯誤,避免設計工作的 浪費,而且也減少了邏輯功能模擬的工作量,提高了設計的一次成功率。 ---- 3.2 ASIC設計 ---- 現代電子產品的復雜度日益加深,一個電子系統可能由數萬個中小規模集成電路構 成,這就帶來了體積大、功耗大、可靠性差的問題,解決這一問題的有效方法就是採用ASIC (Application Specific Integrated Circuits)晶元進行設計。ASIC按照設計方法的不同可分 為:全定製ASIC,半定製ASIC,可編程ASIC(也稱為可編程邏輯器件)。 ---- 設計全定製ASIC晶元時,設計師要定義晶元上所有晶體管的幾何圖形和工藝規則,最 後將設計結果交由IC廠家掩膜製造完成。優點是:晶元可以獲得最優的性能,即面積利用率高、速 度快、功耗低。缺點是:開發周期長,費用高,只適合大批量產品開發。 ---- 半定製ASIC晶元的版圖設計方法有所不同,分為門陣列設計法和標准單元設計法,這 兩種方法都是約束性的設計方法,其主要目的就是簡化設計,以犧牲晶元性能為代價來縮短開發時 間。 ---- 可編程邏輯晶元與上述掩膜ASIC的不同之處在於:設計人員完成版圖設計後,在實驗 室內就可以燒制出自己的晶元,無須IC廠家的參與,大大縮短了開發周期。 ---- 可編程邏輯器件自七十年代以來,經歷了PAL、GAL、CPLD、FPGA幾個發展階段,其中 CPLD/FPGA屬高密度可編程邏輯器件,目前集成度已高達200萬門/片,它將掩膜ASIC集成度高的 優點和可編程邏輯器件設計生產方便的特點結合在一起,特別適合於樣品研製或小批量產品開發, 使產品能以最快的速度上市,而當市場擴大時,它可以很容易的轉由掩膜ASIC實現,因此開發風 險也大為降低。 ---- 上述ASIC晶元,尤其是CPLD/FPGA器件,已成為現代高層次電子設計方法的實現載 體。 ---- 3.3 硬體描述語言 ---- 硬體描述語言(HDL-Hardware Description Language)是一種用於設計硬體電子 系統的計算機語言,它用軟體編程的方式來描述電子系統的邏輯功能、電路結構和連接形式,與傳 統的門級描述方式相比,它更適合大規模系統的設計。例如一個32位的加法器,利用圖形輸入軟體 需要輸入500至1000個門,而利用VHDL語言只需要書寫一行A=B+C即可,而且VHDL語言可讀性強, 易於修改和發現錯誤。早期的硬體描述語言,如ABEL-HDL、AHDL,是由不同的EDA廠商開發的,互 相不兼容,而且不支持多層次設計,層次間翻譯工作要由人工完成。為了克服以上缺陷,1985年 美國國防部正式推出了VHDL(Very High Speed IC Hardware Description Language)語言, 1987年IEEE採納VHDL為硬體描述語言標准(IEEE STD-1076)。 ---- VHDL是一種全方位的硬體描述語言,包括系統行為級、寄存器傳輸級和邏輯門級多個 設計層次,支持結構、數據流、行為三種描述形式的混合描述,因此VHDL幾乎覆蓋了以往各種硬體 描述語言的功能,整個自頂向下或自底向上的電路設計過程都可以用VHDL來完成。另外,VHDL還 具有以下優點: VHDL的寬范圍描述能力使它成為高層次設計的核心,將設計人員的工作重心提高到了系統功 能的實現與調試,只需花較少的精力用於物理實現。 VHDL可以用簡潔明確的代碼描述來進行復雜控制邏輯的設計,靈活且方便,而且也便於設計 結果的交流、保存和重用。 VHDL的設計不依賴於特定的器件,方便了工藝的轉換。 VHDL是一個標准語言,為眾多的EDA廠商支持,因此移植性好。 ---- 3.4 系統框架結構 ---- EDA系統框架結構(Framework)是一套配置和使用EDA軟體包的規范,目前主要的EDA 系統都建立了框架結構,如Cadence公司的Design Framework,Mentor公司的Falcon Framework等,這些框架結構都遵守國際CFI組織(CAD Framework Initiative)制定的統一技術 標准。Framework能將來自不同EDA廠商的工具軟體進行優化組合,集成在一個易於管理的統一的 環境之下,而且還支持任務之間、設計師之間在整個產品開發過程中實現信息的傳輸與共享,這是 並行工程和Top-Down設計方法的實現基礎。
4 EDA技術的基本設計方法 ---- EDA技術的每一次進步,都引起了設計層次上的一個飛躍。 ---- 物理級設計主要指IC版圖設計,一般由半導體廠家完成,對電子工程師並沒有太大的 意義,因此本文重點介紹電路級設計和系統級設計。 ---- 4.1 電路級設計 ----電子工程師接受系統設計任務後,首先確定設計方案,同時要選擇能實現該方案的合適 元器件,然後根據具體的元器件設計電路原理圖。接著進行第一次模擬,包括數字電路的邏輯模 擬、故障分析、模擬電路的交直流分析、瞬態分析。系統在進行模擬時,必須要有元件模型庫的支 持,計算機上模擬的輸入輸出波形代替了實際電路調試中的信號源和示波器。這一次模擬主要是檢 驗設計方案在功能方面的正確性。 ---- 模擬通過後,根據原理圖產生的電氣連接網路表進行PCB板的自動布局布線。在製作 PCB板之前還可以進行後分析,包括熱分析、雜訊及竄擾分析、電磁兼容分析、可靠性分析等,並 且可以將分析後的結果參數反標回電路圖,進行第二次模擬,也稱為後模擬,這一次模擬主要是檢 驗PCB板在實際工作環境中的可行性。 ---- 由此可見,電路級的EDA技術使電子工程師在實際的電子系統產生之前,就可以全面地 了解系統的功能特性和物理特性,從而將開發過程中出現的缺陷消滅在設計階段,不僅縮短了開發 時間,也降低了開發成本。 ---- 4.2 系統級設計 ---- 進入90年代以來,電子信息類產品的開發出現了兩個明顯的特點:一是產品的復雜程 度加深,二是產品的上市時限緊迫。然而電路級設計本質上是基於門級描述的單層次設計,設計的 所有工作(包括設計輸入,模擬和分析,設計修改等)都是在基本邏輯門這一層次上進行的,顯然 這種設計方法不能適應新的形勢,為此引入了一種高層次的電子設計方法,也稱為系統級的設計方 法。 ---- 高層次設計是一種"概念驅動式"設計,設計人員無須通過門級原理圖描述電路,而是 針對設計目標進行功能描述,由於擺脫了電路細節的束縛,設計人員可以把精力集中於創造性的概 念構思與方案上,一旦這些概念構思以高層次描述的形式輸入計算機後,EDA系統就能以規則驅動 的方式自動完成整個設計。這樣,新的概念得以迅速有效的成為產品,大大縮短了產品的研製周 期。不僅如此,高層次設計只是定義系統的行為特性,可以不涉及實現工藝,在廠家綜合庫的支持 下,利用綜合優化工具可以將高層次描述轉換成針對某種工藝優化的網表,工藝轉化變得輕松容 易。具體的設計流程見圖3。 ---- 高層次設計步驟如下: ---- 第一步: ---- 按照"自頂向下"的設計方法進行系統劃分。 ---- 第二步: ---- 輸入VHDL代碼,這是高層次設計中最為普遍的輸入方式。此外,還可以採用圖形輸入 方式(框圖,狀態圖等),這種輸入方式具有直觀、容易理解的優點。 ---- 第三步: ---- 將以上的設計輸入編譯成標準的VHDL文件。對於大型設計,還要進行代碼級的功能仿 真,主要是檢驗系統功能設計的正確性,因為對於大型設計,綜合、適配要花費數小時,在綜合前 對源代碼模擬,就可以大大減少設計重復的次數和時間,一般情況下,可略去這一模擬步驟。 ---- 第四步: ---- 利用綜合器對VHDL源代碼進行綜合優化處理,生成門級描述的網表文件,這是將高層次 描述轉化為硬體電路的關鍵步驟。 ---- 綜合優化是針對ASIC晶元供應商的某一產品系列進行的,所以綜合的過程要在相應的 廠家綜合庫支持下才能完成。綜合後,可利用產生的網表文件進行適配前的時序模擬,模擬過程不 涉及具體器件的硬體特性,較為粗略。一般設計,這一模擬步驟也可略去。 ---- 第五步: ---- 利用適配器將綜合後的網表文件針對某一具體的目標器件進行邏輯映射操作,包括底 層器件配置、邏輯分割、邏輯優化和布局布線。適配完成後,產生多項設計結果:①適配報告,包 括晶元內部資源利用情況,設計的布爾方程描述情況等;②適配後的模擬模型;③器件編程文件。 根據適配後的模擬模型,可以進行適配後的時序模擬,因為已經得到器件的實際硬體特性(如時延 特性),所以模擬結果能比較精確地預期未來晶元的實際性能。如果模擬結果達不到設計要求,就 需要修改VHDL源代碼或選擇不同速度品質的器件,直至滿足設計要求。 ---- 第六步: ---- 將適配器產生的器件編程文件通過編程器或下載電纜載入到目標晶元FPGA或CPLD中。 如果是大批量產品開發,通過更換相應的廠家綜合庫,可以很容易轉由ASIC形式實現。
5 結束語 ---- EDA技術是電子設計領域的一場革命,目前正處於高速發展階段,每年都有新的EDA工 具問世,我國EDA技術的應用水平長期落後於發達國家,因此,廣大電子工程人員應該盡早掌握這 一先進技術,這不僅是提高設計效率的需要,更是我國電子工業在世界市場上生存、竟爭與發展的 需要。
『貳』 為什麼階數為4的群是Abel
階數為4的群在同構意義下只有兩個.都是Abel群
由Lagrange定理,群G的階是4,則其元素的階只能是1,2,4.
其中單位元e的階是1.
若除單位元以外存在4階元素a.則G={e,a,a^2,a^3}=<a>,是循環群,所以是Abel群.
若除單位元以外所有元素都是2階的,則a=a^-1,b=b^-1,c=c^-1,所以ab≠a,ab≠b,ab≠e,所以ab=c,同理ab=ba=c,ac=ca=b,bc=cb=a,所以是Abel群.
『叄』 gal20v8是什麼
GAL20V8是通用陣列邏輯器件,現場可編程器件。它最多可以有20個輸入引腳、最多可以有8個輸出引腳。它既可以實現組合邏輯的邏輯功能,也可以實現時序邏輯的邏輯功能。
通用可編程器件GAL20V8有8個輸出引腳,分別標為IO0~IO7,有I1~I10、I12和I13共12個專用輸入引腳,另有I0/CLK和I11/OE兩個引腳,當被編程的電路需要時鍾信號和使用輸出允許控制時,時鍾脈沖和輸出允許控制信號就只能分別從I0/CLK和I11/OE這兩個引腳輸入;當不需要這兩個信號(或一個)時,它們(或一個)可用作數據輸入引腳。IO0~IO7在某些場合,也可用於輸入功能,或分時用於輸入/輸出功能,可由用戶決定。所以說它最多有20個輸入、8個輸出(至少有2個引腳用於輸出)。
GAL20V8內部,包括輸入緩沖門、輸出反饋緩沖門、與門陣列、輸出邏輯宏單元OLMC(內含或陣列)和輸出三態門等。
要對通用可編程器件GAL20V8進行編程,需要使用專用的軟體工具和能對GAL器件編程的編程器,才可以向GAL20V8器件內寫入所需要的邏輯功能。
設計和操作過程大體如下:
1.編輯擴展名為「.PLD」 的源文件,該文件用於描述在GAL20V8內部實現的邏輯功能。此為文本文件,但格式應符合相應編譯軟體的要求,也可以用ABEL語言編輯擴展名為「.ABL」的源文件,只是要有相應的編譯軟體完成編譯才能使用。
2.用相應的軟體對已設計的源文件進行編譯,以生成GAL20V8的熔絲圖文件,擴展名為「.JED」。
3.用編程設備向GAL20V8器件內寫入熔絲圖文件所規定的內容,即對GAL20V8進行編程。
由於不同廠商提供的編程軟體和編程設備有所不同,具體操作細節請閱讀有關設備的使用手冊。
『肆』 cain&abel 怎麼用啊
Cain 是著名的 Windows 平台口令恢復工具。它能通過網路嗅探很容易的恢復多種口 令,能使用字典破解加密的口令,暴力口令破解,錄音VoIP(IP電話)談話內容,解碼編 碼化的口令,獲取無線網路密鑰,恢復緩存的口令,分析路由協議等。 系統組成 Cain & Abel 是兩個程序。Cain 是圖形界面主程序;Abel 是後台服務程序,由兩個文 件組成:Abel.exe 和Abel.dll。 l 10MB 硬碟空間 l MicrosoftWindows2000/XP/2003 l Winpcap 包驅動 (V2.3 或以上;4.0版本支持AirPcap 網卡) l 程序由以下文件組成: cain.exe 主程序 CA_UserManual.chm 用戶手冊 Abel.exe 名為Abel 的可的Windows 服務 Abell.dll 程序支持文件 Wordlist.txt 小型口令文件 Instal.log 程序安裝日誌 oui.txt MAC 地址廠商文件 <安裝目錄>\winrtgen\winrtgen.exe 字典生成器 <安裝目錄>\winrtgen\charset.txt 字元集文件 <安裝目錄>\Driver\WinPcap_4_0_beta2.exe 原始Winpcap 驅動程序
『伍』 電腦軟體編程入門好學嗎
初學電腦編程需要學習英語,選擇一門編程語言,要有數學基礎,具體介紹如下:
1、英語基礎
計算機英語與傳統的英語知識不同,需要了解的大部分是計算機的專業單詞或者詞彙,普遍較為簡單。但是在高級編程中,會出現比較生澀的詞彙,對於想要參與計算機語言設計以及在職業發展上有更多追求的同學可以自學一下大學英語。
2、選擇一門編程語言
選擇一門編程語言。雖然目前編程語言有600種左右,但是比較流行的編程語言只有幾十種,所以盡量選擇流行程度比較高的編程語言來入門編程。對於沒有明確編程場景的初學者來說,盡量選擇全場景編程語言,比如Java、Python、C#等就是不錯的選擇
3、數學基礎
當然擁有初中階段的數學基礎也可以成為一名合格的程序員,這也是目前很多計算機編程培訓學校招收初中畢業學生的原因。但想要成為一名優秀的程序員,最少要高中及以上的數學基礎,而且要懂得如何舉一反三,靈活運用。
4、了解計算機操作系統原理
所有的開發或者說軟體應用都是在特定的操作系統上進行的,所以計算機操作系統原理可以說是基礎中的基礎是必須要了解的。
5、數據結構和演算法
這門課程能夠決定一個人程序設計水平的高低,是學習過程中需要重點掌握的。C和C++都是可以選擇的,前期可以先學C,再學C++會相對簡單一些。
在學習編程語言的過程中,也需要同時學習計算機網路、資料庫等相關知識,在當前的雲計算和大數據時代背景下,還需要掌握如何通過雲計算(PaaS)來輔助開發,以及如何利用大數據平台的各種資源。
『陸』 自動化行業
VBScript 腳本
自動化行業的技術發展越來越復雜,工藝要求也越來越具各自的特色,單一的組態功能已不能滿足用戶的要求,二次開發的要求日益迫切。
五花八門的偽腳本語言,語法單一,格式單調,功能有限,而用戶希望使用某種簡單而又標準的腳本語言,來進行腳本開發。
傑控FameView組態軟體率先選用並集成了大家熟悉的VBScript腳本語言作為自己的腳本開發語言,在功能強大的組態背後,提供了一套完善的二次開發環境;您只需稍具VB語言的知識,便可以開發出功能豐富的工程項目;您可以任意編寫自己的特殊演算法,並且經過長時間實踐的考驗,證明VBScript腳本在組態軟體的應用是穩定、可靠、快速、成功的。
特色:
n 真正的VBScript腳本嵌入,VB語言中的所有函數和語句都可以被使用;
n 組態系統提供了多達500個開放的系統函數,供您訪問系統的組態和運行資源,或實現某些特殊的功能和演算法;
n 系統提供了畫面腳本和全局腳本供您使用;
n 全局腳本在後台執行,通過腳本文件的方式來體現腳本內容;通過定義腳本運行策略,用時間或變數事件可以觸發執行腳本文件,全局腳本運行結果可被整個系統共享;
n 畫面腳本包含在某幅畫面中,每個畫面可以包含500個畫面腳本,每個畫面腳本可以編寫500條腳本語言;可以在畫面打開、關閉或運行過程中來執行畫面腳本;也可以用畫面提供的定時器來循環執行畫面腳本,也可以通過畫面中的滑鼠等事件來執行,畫面關閉後,畫面腳本便停止運行;
n 腳本編輯器為智能編輯器,通過文本顏色和字元大小寫可以對VBScript關鍵字、系統函數、字元串、數字進行區分和檢查;
n 用戶可以定義自己的子程序;
n 面向對象的腳本函數,具有無限的擴展性,隨著應用的發展,可以方便的添加更多的腳本函數;
n 專門為某些特殊的應用和行業開發了實用的腳本函數;
我們可以為用戶提出的特殊要求,免費編寫腳本函數,使系統具有您自己的特色
Verilog HDL語言在FPGA/CPLD開發中的應用
1 引言
近30年來,由於微電子學和計算機科學的迅速發展,給EDA(電子設計自動化)行業帶來了巨大的變化。特別是進入20世紀90年代後,電子系統已經從電路板級系統集成發展成為包括ASIC、FPGA和嵌入系統的多種模式。可以說EDA產業已經成為電子信息類產品的支柱產業。EDA之所以能蓬勃發展的關鍵因素之一就是採用了硬體描述語言(HDL)描述電路系統。就FPGA和CPLD開發而言,比較流行的HDL主要有Verilog HDL、VHDL、ABEL-HDL和 AHDL 等,其中VHDL和Verilog HDL因適合標准化的發展方向而最終成為IEEE標准。但與VHDL相比,Verilog HDL有個最大的優點:它是一種非常容易掌握的硬體描述語言,只要有C語言的編程基礎,一般經過2~3個月的認真學習和實際操作就能掌握這種設計技術。並且完成同一功能Verilog HDL的程序條數一般僅為VHDL的1/3。而VHDL設計技術則不很直觀,需要有EDA編程基礎,通常需要有多餘半年的專業培訓才能掌握這們技術。可見,用Verilog HDL語言有更高的優越性。
2 設計實例
通常設計數字電路大都採用自頂向下將系統按功能逐層分割的層次化設計方法,這比傳統自下向上的EDA設計方法有更明顯的優勢(當時的主要設計文件是電路圖)。因為由自頂向下的設計過程可以看出,從總體行為設計開始到最終邏輯綜合,形成網路表為止。每一步都要進行模擬檢查,這樣有利於盡早發現系統設計中存在的問題,從而可以大大縮短系統硬體的設計周期。這也是HDL語言設計系統硬體的最突出的優點之一。並且在頂層設計中,要對內部各功能塊的連接關系和對外的介面關系進行描述。而功能塊實際的邏輯功能和具體的實現形式則由下一層模塊來描述。在系統的底層設計中,由於其對系統很強的行為描述能力,可以不必使系統層層細化,從而避開具體的器件結構,從邏輯行為上直接對模塊進行描述和設計,隨後EDA設計軟體或相應的第三方工具軟體中的綜合器將程序自動綜合成為具體FPGA/CPLD等目標晶元的網表文件,這種避開具體器件結構的方式也是它的重要優勢之一。
下面以序列檢測器的設計為例具體說明。
序列檢測器是時序數字電路中非常常見的設計之一。它的主要功能是:將一個指定的序列從數字碼流中識別出來。接下來就以設計「01101」這個序列的檢測器為例,說明Verilog HDL語言的具體應用。設X為數字碼流輸入,Z為檢出標記輸出,高電平表示「發現指定序列」,低電平表示「沒有發現指定的序列」。設輸入的碼流為「001101101111011111...」,則其序列檢測器的邏輯功能如表1所示。
在時鍾2~6中,碼流X里出現指定序列「01101」,對應輸出Z在第6個時鍾變為高電平「1」,表示發現指定序列「01101」,Z輸出「1」。同理在第9個時鍾對應輸出Z也為「1」。根據這個邏輯功能描述,我們可以分析得出狀態轉換圖(見圖1)。
其中狀態A~E表示5位序列「01101」按順序正確地出現在碼流中。因為輸入碼流X是隨機的,因此可能會有很多重疊的情況發生。這樣在轉換圖中相應的還要有狀態F和G。設初始狀態為IDLE,則有相應的Verilog HDL語言程序如下。
mole seqdet(x,z,clk,rst);
input x,clk,rst;
output z;
reg[2:0] state;
wire z;
parameter IDLE=3'd0,
A=3'd1,
B=3'd2,
C=3'd3,
D=3'd4,
E=3'd5,
F=3'd6,
G=3'd7;
assign z=(state==D && x==1)?1:0;
always@(posedge clk or negedge rst)
if(!rst)
begin
state<=IDLE;
end
else
casex(state)
IDLE:if(x==0)
state<=A;
else state<=IDLE;
A:if(x==1)
state<=B;
else state<=A;
B:if(x==1)
state<=C;
else state<=F;
C:if(x==0)
state<=D;
else state<=G;
D:if(x==1)
state<=E;
else state<=A;
E:if(x==1)
state<=C;
else state<=A;
F:if(x==0)
state<=A;
else state<=B;
G:if(x==0)
state<=F;
else state<=G;
default: state<=IDLE;
endcase
endmole
由上述這個程序可以看出:Verilog HDL程序是由模塊構成的。每個模塊的內容都是嵌在mole和endmole兩個語句之間實現特定的功能的。每個模塊都由兩部分組成,一部分描述介面;另一部分描述邏輯功能,即定義輸入是如何影響輸出的。如程序中的sequdet(x,z,clk,rst)就是模塊的埠,聲明了模塊的輸入、輸出口。接下來就是模塊中最重要的部分邏輯功能的定義。在模塊中產生邏輯,Verilog HDL語言有3種方法:
(1)用「assign」聲明語句。這種方法很簡單,只需寫一個「assign」,後面再加一個方程式即可。這也是最常用的方法之一。如程序中的assign z==(state==D && x==1)?1:0;就表示狀態為D時又收到了1,表明收到「01101」應使Z輸出為高電平。
(2)用「always」塊。它常被用來描述時序邏輯,上面的程序中即用這個模塊完成了狀態機的狀態轉化功能。
(3)採用實例元件的方法。這時只要鍵入元件的名字和相連的引腳即可。這樣就可以用上面這不長的程序,完成這個對序列的檢測功能,並且邏輯描述也十分容易理解。
上述程序輸入完成後,接下來首先要經EDA設計軟體進行編譯。本設計採用的是美國ALTERA公司的MAX+PLUSII軟體,經Compiler編譯器編譯,沒有任何問題後。建網表、邏輯綜合、適配、劃分、時域分析、裝配等均已自動完成,並生成多個後續工作要用的文件。編譯成功表明已為所設計的項目建立了一個編程文件,但還不能說明該文件在各種情況下都有正確的響應,因此編譯通過後還要進行功能和時序模擬,模擬結果如圖2所示。
經模擬發現輸出Z和輸入X有一段延時。通過波形很難給出定量的信號延時關系,為此我們在進行定時分析。定時分析結果如圖3所示,從表中顯示出了「CLK」到「Z」的延遲路徑為7.6ns、「X」到「Z」的延遲路徑為6ns。這樣,經Verilog HDL語言的文本編輯、編譯、模擬波形編輯、模擬和定時分析一系列設計步驟,設計出符合要求的數字系統後就可以通過編程器下載到指定的晶元中去。
綜上所述,則更能體會到Verilog HDL語言的優勢:由於它在其門級描述的底層,也就是晶體管開關的描述方面比VHDL等各種其它的HDL語言有更強的功能。所以在復雜數字邏輯電路和系統的設計模擬時更有優勢;描述的設計思想、電路結構和邏輯關系清晰明了,並且設計語言簡練、易學易用;其模塊化分層結構在大規模設計時更能體現出優勢。因此可以看出,Verilog HDL語言在EDA設計中相對與其他的各種硬體描述語言更有優勢。
3 結束語
隨著集成電路規模的越來越大,數字系統設計的越來越復雜,Verilog HDL語言在硬體電路設計的優越性也會越來越顯突出。目前,數百萬門規模的FPGA/CPLD已進入實用,Verilog HDL強大的系統描述能力、規范的設計結構和簡潔、靈活的編程風格會使其必將能會用來完成大數字系統、超大規模數字系統的幾乎全部設計任務。