EDA課設報告--信號發(fā)生器的方案設計書_第1頁
EDA課設報告--信號發(fā)生器的方案設計書_第2頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、封面作者:PanHongliang僅供個人學習目錄摘要. .2Abstract. .3緒論. .41. VHDL 簡介.51.1 VHDL 的特點. 51.2 VHDL 發(fā)展史. 52. 設計的方案確定 . 62.1 . AD558 工作原理. 62. 2 設計方案.73. 設計流程. .84. 結束語. 145. 參考文獻. .15附錄. .16摘要本說明書首先介紹了 VHDL 語言的特點及發(fā)展史;接著簡要說明了 D/A 接 口(函數發(fā)生器)的工作原理及設計思想和設計方案的確定;然后著重解釋了 使用 VHDL 語言設計 D/A 接口(函數發(fā)生器)的具體操作步驟及主要流程。為 了更加詳細的解釋

2、清楚主要流程在本課程設計說明書中還附加了相應的圖片。 最后還附加了實現設計的VHDL 源程序。關鍵詞: VHDLD/A 接口 設計AbstractThis manual in troduces the VHDL Ian guage features and developme nt historyfollowed by a brief description of the D/A interface and the working principle anddesign ideas and the way that the design program was confirmred and t

3、hen I explainthe emphasis on the use of VHDL language to design D/A interface and the specificsteps and the main process. In order to explain in more details of the main process Ialso attached the corresponding pictures. Finally I added the VHDL design sourcecodes in the addendum.Keywords: VHDL D/A

4、Interface Design緒論EDA 是電子設計自動化 (Electronic Design Automation) 的縮寫。EDA 技術就 是依賴功能強大的計算機,在 EDA 工具軟件平臺上,對以硬件描述語言HDL(Hardware Description Lan guage)為系統(tǒng)邏輯描述手段完成的設計文件,自 動地完成邏輯編譯、化簡、分割、綜合、布局布線以及邏輯優(yōu)化和仿真測試, 直至實現既定的電子線路系統(tǒng)功能。 EDA 技術使設計者的工作僅局限于利用軟 件的方式來完成對系統(tǒng)硬件功能的實現,可以說 EDA 技術的產生與發(fā)展是電子 設計技術的一個巨大進步。 EDA 技術融合了眾多電子設

5、計技術和計算機輔助技 術,使得它在現代電子學方面的應用越來越廣泛,也成為電子、電氣類大學生 必須熟練掌握的一種設計工具。硬件描述性語言 HDL 是 EDA 技術的重要組成部分,常見 HDL 的有VHDL、HDL、ABEL、Verilog、AHDL、SystemC 等。其中 VHDL、Verilog 在 現在的 EDA 設計中使用的最多,也擁有了幾乎所有主流 EDA 工具的支持,而 相對于其他語言 VHDL 更加完善。 VHDL 是英文全名是 VHSIC(Very High Speed In tegratedCircuit) Hardware Descripti on Lan guag 是硬件描

6、述語言的業(yè)界 標準之一。它作為一個規(guī)范語言和建模語言,具有與具體硬件電路無關及設計 平臺無關的特性,而且還有很強的電路行為描述和建模能力,能從多個層次的 數字系統(tǒng)進行建模和描述,從而大大簡化了硬件設計的任務,提高了設計效率 和可靠性。D/A 轉換器的功能是把二進制數字信號轉換為與其數值成正比的模擬信號。 AD558 是并行 8 位 D/A 轉換芯片, 應用 CPLD 可以完成對 AD558 的控 制。CPLD與 CPLD 結合之后可以完成函數發(fā)生器的基本功能:波形輸出。要 實現這種結合就需要應用 VHDL 語言完成 D/A 接口的設計。通過合適的 VHDL 語言可以完成遞增斜波、遞減斜波、三角

7、波、遞增階梯波的輸出。1. VHDL簡介1.1 VHDL的特點VHDL 語言功能強大、設計靈活。 VHDL 語言可以用簡潔明確的源代碼 來描述復雜的邏輯控制,它具有多層次的設計描述功能,層層細化,最后可 直接生成電路級描述。 VHDL 支持同步電路、異步電路和隨機電路的設計, 這是其他硬件描述語言雖不能比擬的。 VHDL 還支持多種設計方法,既支持 自底向上的設計,又支持自頂向下的設計;既支持模塊化設計,又支持層次 化設計。由于 VHDL 已經成為 IEEE 標準所規(guī)定的硬件描述性語言,目前大 多數 EDA 工具幾乎都支持 VHDL 。因為 VHDL 易讀和結構化且易于修改設 計所以在硬件電路

8、設計過程中, VHDL 語言得到廣泛應用。VHDL 語言獨立于器件的設計與工藝無關。因而設計人員用 VHDL 進行 設計時,不需要考慮選擇器件得問題,就可以集中精力進行設計的優(yōu)化。當 設計描述完成后,可以用多種不同的器件結構來實現其功能。VHDL 語言易于共享和復用。 VHDL 采用基于庫( Library )的設計方 法,可以建立各種可再次利用的模塊。這些模塊可以預先設計或使用以前設 計中的存檔模塊,將這些模塊存放到庫中,就可以在以后的設計中進行復 用,可以使設計成果在設計人員之間進行交流和共享,減少硬件電路設計。 VHDL 豐富的仿真語句和庫函數,使得在任何大系統(tǒng)的設計早期就能查驗設 計系

9、統(tǒng)的功能可行性,隨時可對設計進行仿真模擬。VHDL 語句的行為描述能力和程序結構決定了它具有支持大規(guī)模設計的 分解和已有設計的再利用功能。這個特點很好的符合了市場需求。對于用 VHDL 完成的一個確定的設計,可以利用 EDA 工具進行邏輯綜合和優(yōu)化,并 自動的把 VHDL 描述的設計轉變成門級網表??傊?,由于 VHDL 語言有的這些優(yōu)良的特點,它被廣泛的應用在電子線 路和電子系統(tǒng)的設計中。1.2 VHDL發(fā)展史VHDL 于 1983 年由美國國防部發(fā)起創(chuàng)建,由 IEEE 進一步發(fā)展,并在1987 年作為“IEEE 標準 1076 ”發(fā)布。從此 VHDL 成為硬件描述語言的業(yè)界 標準之一。隨后各

10、 EDA 公司相繼推出了自己的 VHDL 設計環(huán)境,或宣布自 己的設計工具支持 VHDL 。此后 VHDL 在電子設計領域得到了廣泛的接受, 并逐步取代了原有的非標準的硬件描述語言。1993 年, IEEE 對 VHDL 進行了修訂,從更高的抽象層次和系統(tǒng)描述能 力上擴展了 VHDL 的內容,公布了新版本的 VHDL ,即 IEEE 標準的 10761993 版本?,F在, VHDL 和 Verilog 作為 IEEE 的工業(yè)標準硬件描述語言,得 到眾多 EDA 公司的支持,在電子工程領域,已成為事實上的通用硬件描述語 言?,F在公布的最新 VHDL標準版本是 IEEE1076-2002 。在現代

11、電子行業(yè)中, VHDL 語言將承擔起大部分的數字系統(tǒng)設計任務。 目前,它在中國的應用多數是用在 FPGA/CPLD/EPLD 的設計中,當然在一 些實力較為雄厚的單位,它也被用來設計 ASIC 。2.設計方案的確定2.1AD558工作原理A/D 轉換器和 D/A 轉換器是把微型計算機的應用領域擴展到檢測和過程控 制的必要裝置,是把計算機和生產過程、科學實驗過程聯(lián)系起來的重要橋梁。 D/A 轉換器的功能是把二進制數字信號轉換為與其數值成正比的模擬信號。 D/A 轉換器相對于A/D 轉換器在時序上要求較低。在 D/A 參數中一個最重要的 參數就是分辨率,它是指輸入數字量發(fā)生單位數碼變化時,所對應輸

12、出模擬量 (電壓或電流 )的變化量。分辨率是指輸入數字量最低有效位為1 時,對應輸出可分辨的電壓變化量U 與最大輸出電壓 Um 之比。D/A 轉換器 AD558 是 EDA 實驗箱上自帶的并行 8 位 D/A 轉換芯片,它可 以把輸入的 8 位數字量轉化為 02.56V 的電壓量,它與 CPLD 器件聯(lián)合使用可 以產生幾種波形。其芯片管腳外形和內部結構框圖分別如圖 1、圖 2 所示:圖1 AD558芯片管腳外形圖圖2 AD558內部結構框圖AD558 的真值表如圖 3 所示。由真值表可知:當 CS 為低電平、CE 為電平 時,AD558 保持上次的轉換結果;當 CS 和 CE 同時為電平時,通

13、過數據總線 D7.0讀入數據,同時講轉換結果輸出。圖 3. AD558 真值表2.2設計方案本次 D/A 接口(函數發(fā)生器)的設計中,轉換結果是時時輸出的。根據對 AD558真值表的分析可知:當 CE 和 CS 同時置 0時 AD558 的工作模式為時 時輸出。因此在本次設計中我只需要將 CE 和 CS 同時置 0即可。根據對 AD558 功能的分析可知:利用 VHDL 語言編寫源程序通過 CPLD 完成對 AD558 的控制,并與 AD558 結合可以完成四種波形的產生。具體設計方案如下:利用 VHDL 語言設計 0255 循環(huán)加法計數器、 2550 循環(huán)減法計數器、 01280 循環(huán)加減計

14、數器、 0224 等梯度循環(huán)加法計數器便可 分別完成遞增斜波、遞減斜波、三角波、遞增階梯波的輸出。每個計數器還設 計了片選端和清零端。當清零端為 0 時計數器恢復為初始狀態(tài)。為了實現輸出 波形模式的選擇,在本次設計中我使用了一個四選一選擇器:輸入為 2 位邏輯 數組輸出為 4 個一位邏輯量。每一種輸入狀態(tài)對于于一種輸出狀態(tài),每個狀態(tài) 有且僅有一位為 1,其余 3 位皆為 0,每個輸出量與一種計數器的片選端相連 接,即每個輸入狀態(tài)都只選中一種輸出狀態(tài)。由于 CPLD 實驗箱上沒有 D/A 轉換器,為了顯示設計結果檢驗設計成果我 決定使用 7 段數碼管顯示產生波形的數字量。由于輸出范圍為 0255

15、,在十六 進制數OHEEH 的范圍內,而且實驗箱上只有 8 個 7 段數碼管因此我各用 2 個 7 段數碼管顯示 4 種波形的輸出。在每個計數器輸出端口和 7 段譯碼器中間添加一個輸入頻率為 1OOOHZ 的 4 選1 數據選擇器,并利用兩個撥碼開關實現輸入數據的選擇。由于實驗箱上自 帶的時鐘源頻率為 2OMHZ ,為了得到 1OOOHZ 的頻率,我還設計了一個分頻 器。以上即為本次 D/A 接口(函數發(fā)生器)的主要設計方案。3.設計流程首先啟動 Quartus II 軟件如圖 4 所示:圖 4 Quartus II 啟動界面 接著利用向導,建立一個新的工程。在 File 菜單中選擇 New

16、Project Wizard 選項啟動工程向導。如圖 5 所示,分別指定創(chuàng)建工程的路徑,工程名和頂層文 件名。工程名和頂層文件可以一致也可以不同。一個工程中可以有多個文件, 但只能有一個頂層文件。這里我將工程名取為:keshe 頂層文件名取為zhuanhuan 女口圖 5 所示。圖5創(chuàng)建工程界面圖在圖 5 所示界面點擊 NEXT 按鈕出現對話框如圖 6 所示直接點 Finish 按鈕然 后在出現的界面中依次點擊 File/new 出現如圖 7 所示界面。點擊創(chuàng)建 VHDL 編 輯界面中 VHDLFile 按鈕即進入 VHDL 語言編輯區(qū)如圖 8 所示。圖6創(chuàng)建工程的結束界面圖7創(chuàng)建VHDLFi

17、le對話框圖8 VHDL語言編輯框在圖 8 所示的 VHDL 語言編輯框中依次輸入分頻器、四選一選擇器、循環(huán) 加法計數器等 4 鐘計數器、七段譯碼器等功能模塊的 VHDL 語言源程序。輸入 完成之后單擊保存圖標并輸入相應的文件名。保存之后即可對源程序進行編 譯。如果編譯成功則源程序完全正確,否則應該返回到出錯處改正錯誤直至編 譯成功為止。編譯成功之后選中源程序依次單擊 File、 NEW、 create/update、 create symbol filefor current file 便可對相應的模塊生產元器件。本次設計中對頂層文 件采取原理圖輸入法,利用前期設計的各模塊的元器件圖連接成整

18、體電路圖。 修改設計直至編譯成功為止,電路原理圖如圖 9 所示:圖9整體電路圖原理圖設計成功之后,根據實驗箱上相應的管教,鎖定管教之后再次編譯,編譯成功之后就可以把程序下載到實驗箱上進行功能驗證了。若功能驗證結果符合設計要求則設計至此結束。結束語結束語通過這次 EDA 課程設計,我對課堂上所學到的理論知識的理解加深了許 多,自己動腦、動手設計的能力也得到了較大提高。雖然我們這學期學習了 EDA 這門課,但是由于學時十分有限,當時學的有 些不系統(tǒng)。而且在第八周課程及結束了,十一周考完考試之后就幾乎沒有再接 觸 EDA 的知識了。在此次課程設計之前,有許多細節(jié)我已經不是很清楚了,為此我特意花了兩天

19、的時間提前再次學習了EDA 技術與 VHDL 這本教材。我想這和課堂上的學習一樣是我能順利完成本次課程設計的一個重要原因。在這次課程設計的過程中,我對 VHDL 語言有了更深的認識。通過查閱相關 資料和動手設計我發(fā)現我以前對 VHDL 語言的認識太過膚淺,認為 VHDL 語言只 能用于設計小型的電路系統(tǒng)。但有了更深刻的認識之后我發(fā)現學好VHDL 語言可以設計出大規(guī)模的、功能復雜的電路系統(tǒng)。以前之所以會有錯誤的認識是因為 自己對VHDL 語言的了解和掌握還不夠?,F在仔細想想,這次課程設計使得我對 VHDL 語言的理解與應用能力得到了較大的提升,也讓我認識到只要升入學習, 提升的空間永遠的存在的。

20、在設計的過程中我遇到了一些問題,如:編寫源程序中出現了語法錯誤,使用原理圖設計頂層文件是對輸入輸入輸出端口的位數選擇錯誤和端口命名錯 誤等。通過查閱書本和以前設計的程序我發(fā)現了產生錯誤的原因并解決了問題 完成了設計。經過反思我發(fā)現較大一部分錯誤時因為操作的不熟練照成的,這 也讓我明白了要保持設計的高效率及必須經常練習。另一方面我也發(fā)現了動手實踐的重要性。動手實踐是理論知識得以靈活運 用的必要前提,也是今后今后走上工作崗位之后能夠很好的完成設計工作的技 術保證。只有遇到實際問題并根據自己對課堂上獲得的專業(yè)知識的理解來解決 它才能真正的提高自己的能力。這也提醒我在平時的學習生活中不能一味埋頭 于課

21、本知識,當今社會競爭越來越激烈,社會對人才的要求越來越全面,只有 理論知識是遠遠不夠的,必須靠動手能力做支撐。因此在學習之余我們應該積 極參加各種與專業(yè)知識有關的實踐活動和知識競賽,鞏固所學的理論知識,多 注重培養(yǎng)實際動手能力和專業(yè)技術能力,這樣才能在以后的工作崗位上有所作 為。參考文獻【1】潘松 黃繼業(yè).EDA 技術與 VHDL (第二版).北京:清華大學出版社, 2005.7【2】康華光 . 電子技術基礎 . 北京:高等教育出版社 .2006.1【3】付家才 . EDA 工程實踐技術 . 北京:化學工業(yè)出版社, 2007.1【4】漢澤西 . EDA 技術及其應用 . 北京:北京航空航天大學

22、出版社,2004.5【5】趙剛.EDA 技術簡明教程.成都:四川大學出版社,2004.6【6】章彬宏 周正林.EDA 應用技術.北京:北京理工大學出版社,2007.7【7】劉艷萍 高振斌 李志平.EDA 實用技術及應用.北京:國防工業(yè)出版社,2006.1分頻器源程序: library ieee。use ieee.std_logic_1164.al。use ieee.std_logic_ un sig ned.a。 entity fpq is port(clk: in std_logic。f_out:out std_logic)。end entity。architecture bhv of fp

23、q is signal b:integer range 0 to 200000。 beginprocess(clk)beginif clkevent and clk=1 thenif b=20000 then b=0。 f_out=1。elsif b20000 then b=b+1。 f_out=0。 end if。end if。end process。end bhv。4 選 1 選擇器源程序:library ieee use ieee.std_logic_1164.al。 use ieee.std_logic_ un sig ned.a。 entityxuanze4_1 is port(a1

24、:in std_logic。a2:in std_logic。q1:out std_logic。q2:out std_logic。q3:out std_logic。q4:out std_logic)。end entity xuanze4_1。 architecture bhv of xuanze4_1 is signal q:std_logic_vector(3downto 0)。 signal a:std_logic_vector(1 downto 0)。 begin process(a) begina q q q q=1000 。end case。q1=q(0) 。 q2=q(1)。 q3=

25、q(2)。 q4=q(3)。end process。 end bhv。遞增計數器源程序: llibrary ieee 。use ieee.std_logic_1164.al。use ieee.std_logic_ un sig ned.a。 entity dizeng is port(clk,cs,ret:in std_logic。q1:buffer integer range 0 to 256。) end entity dizeng。architecture bhv of dizeng is beginprocess(clk,cs,ret)beginif cs=1 thenif ret=0

26、then q1=0。elsif ret=1 thenif clkevent and clk=1 thenif q1=255 then q1=0。elsif q1255 then q1=q1+1。end if。end if。end if。end if。end process。end bhv。遞減計數器源程序:library ieee。use ieee.std_logic_1164.al。use ieee.std_logic_ un sig ned.a。 entity dijian is port(clk,cs,ret:in std_logic。q1:buffer integer range 0

27、to 256。)end entity dijian。 architecture bhv of dijian is begin process(clk,cs,ret) begin if cs=1thenif ret=0 then q1=0。 elsif ret=1 thenif clkevent and clk=1 then if q1=0 then q10 then q1=q1-1。endif 。end if 。end if 。end if 。 end process。 end bhv。 三角波發(fā)生器源程序: library ieee。use ieee.std_logic_1164.al。us

28、e ieee.std_logic_ un sig ned.a。 entity sanjiao is port(clk,cs,ret:in std_logic。q:buffer integer range 0 to 256。) end entity sanjiao。architecture bhv of sanjiao is signal q1:integer range 0 to 256。 beginprocess(clk,cs,ret,q1)beginif cs=1 thenif ret=0 then q1=0。elsif ret=1 thenif clkevent and clk=1 th

29、enif q1=255 then q1=0。elsif q1255 then q1=q1+1。end if 。end if 。end if 。end if。if q1=128 then q128 then q=255-q1。end if。end process。end bhv。 遞增階梯波發(fā)生器源程序: library ieee。use ieee.std_logic_1164.al。use ieee.std_logic_ un sig ned.a。entity jieti isport(clk,cs,ret:in std_logic。q1:buffer integer range 0 to 2

30、56。) end entity jieti。architecture bhv of jieti isbeginprocess(clk,cs,ret)beginif cs=1 thenif ret=0 then q1=0。elsif ret=1 thenif clkevent and clk=1 then if q1=224 then q1=0。 elsif q1224 then q1=q1+32。end if 。end if 。end if 。end if 。end process。end bhv。4 選 1 選擇器源程序: library ieee。use ieee.std_logic_11

31、64.al。use ieee.std_logic_ un sig ned.a。 entity choose is port(m1,m2:in std_logic。a,b,c,d:in integer range 0 to 256。 q:out integer range 0 to 256。)end entity choose。 architecture bhv of choose is signal x:std_logic_vector(0 to 1)。beginx=m1&m2 。with x selectq=a when 00,b when 01,c when 10,d when o

32、thers。end bhv。7 段譯碼器源程序:library ieee。use ieee.std_logic_1164.al。entity scan isport(clk:in std_logic。aa:in integer range 0 to 256。 out3:buffer integer range 0 to 7。segout:out std_logic_vector(7 downto 0)。end scan。architecture behave of scan issignal a,b,c,segin:integer range 0 to 。9begina=aa/100。 b=(

33、aa-100*a)/10。 c=aa-100*a-10*b。processbeginwait until clkevent and clk=1。if out3=2 then out3=0。else out3seginseginseginnull。end case。end process。with segin selectsegout=00111111when 0,00000110when 1,01011011when 2,01001111when 3,01100110when 4,01101101when 5,01111101when 6,00000111when 7,01111111when 8,01101111when 9,un affected whe n othersend behave版權申明本文部分內容,包括文字、圖片、以及設計等在網上搜集整 理。版權為潘宏亮個人所有This article includes some parts, including text,pi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論