freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)論文設計-函數(shù)信號發(fā)生器的fpga設計(編輯修改稿)

2025-07-09 17:20 本頁面
 

【文章內(nèi)容簡介】 述語言并獲得廣泛應用,它自身必然具有很多其他硬件描述語言所不具備的優(yōu)點。但是它也并不是一種完全理想的硬件 描述語言。同樣,它也具有一些自身的缺點,或者說 VHDL 語言還有一些需要不斷完善的地方。 圖 2- 1 為VHDL 硬件描述語言的優(yōu)缺點對照。 優(yōu)點 缺點 語言功能強大,設計方式多樣 1. VHDL 語言有時不能準確地描述硬件電路 語言具有強大的硬件描述能力 福建農(nóng)林大學本科畢業(yè)論文 7 3. VHDL 語言具有強大的移植能力 2. VHDL 語言的系統(tǒng)級抽象描述能力較差 4. VHDL 語言的設計描述與器件無關 5. VHDL 語言程序易于共享和復用 3. VHDL 語言不能描述模擬電路 圖 21 VHDL 優(yōu)缺點對照 VHDL 語言的開發(fā)流程 VHDL 語言作為一種標準化的硬件描述語言 [3],在對硬件電路進行描述的過程中應該遵循一定的流程。對于設計人員來說,掌握 VHDL 語言的開發(fā)流程圖和開發(fā)步驟是具有普遍指導意義的。 采用 VHDL 語言進行硬件電路設計的流程圖如圖 2- 2 所示。 圖 22 VHDL 設計流程圖 VHDL 語言設計總結 通過前面對 VHDL 的學習,基本掌握了基于 FPGA 的 VHDL 語言的設計方法和理念。以下是基于 FPGA 的 VHDL 設計的一些經(jīng)驗。 養(yǎng)成良好的編程習慣是非常重要的 [2],特別是在剛開 始學習 VHDL 設計時,一定要注意編寫代碼的格式和風格,這對以后的學習和工作都有重大的促進意義。 良好的編程習慣就是在滿足功能和性能目標的前提下,增強代碼的可讀性、可移植福建農(nóng)林大學本科畢業(yè)論文 8 性。良好的代碼編寫風格的通則簡要地概括如下: ( 1)對所有的信號名、變量名和端口名都用小寫,這樣做是為了和業(yè)界的習慣保持一致;對常量名和用戶定義的類型用大寫。 ( 2)使用有意義的信號名、端口名、函數(shù)名和參數(shù)名。 ( 3)信號名長度不要太長,要注意簡潔明了。對于超過 28 個字符的信號名,有些EDA 工具不能夠識別,再者太長的信號名也不容易記憶。因此, 在描述清楚的前提下,根據(jù)信號本身的功能,盡可能采用較短的信號命名,最好是利用信號功能的英文單詞縮寫來命名。 ( 4)對于時鐘信號使用 clk 作為信號名,如果設計中存在多個時鐘,使用 clk 作為時鐘信號的前綴,如 clk clk clk_interace 等。 ( 5)對來自同一驅動源的信號,在不同的子模塊中采用相同的名字,這要求在芯片總體設計時就定義好頂層子模塊間連線的名字,端口和連接端口的信號盡可能采用相同的名字。 ( 6)對于低電平有效的信號,應該以一個下劃線跟一個小字母 b 或 n 表示( a2b_req_n、 a2b_req_b)。注意,在同一個設計中要使用同一個小寫字母表示低電平有效。 ( 7)對于復位信號使用 rst 作為信號名,如果復位信號是低電平有效,建議使用rst_n。 ( 8)盡量遵守業(yè)界已經(jīng)習慣的一些約定。如 *_r 表示寄存器輸出, *_a 表示異步信號等等一些習慣的約定。 ( 9)在源文件、批處理文件的開始處應該包含一個文件頭,文件頭是程序中很重要的一部分,有助于程序閱讀者對程序的理解,提高程序的可讀性。文件頭一般包含如下的內(nèi)容:文件名,設計者,模塊名,模塊的實現(xiàn)功能概述,使用的仿真軟件以及軟件運行的平臺,使用的綜合工具以 及工具運行的平臺,文件創(chuàng)建時間,文件修改時間。 ( 10)使用適當簡短的語句注釋所有的進程、函數(shù)、端口含義、信號含義、變量含義及信號組、變量組的意義等。注釋應在代碼附近,要求簡明扼要,只要足夠說明設計意圖即可,避免過于復雜。 ( 11)每一行語句獨立成行。 ( 12)建議采用縮進提高續(xù)行和嵌套語句的可讀性。 ( 13)在 RTL 源碼的設計中任何元素,包括端口、信號變量函數(shù)、任務、模塊等的命名都不能取 Verilog 和 VHDL 的保留字。例如:將輸出端口命名為 out,就和 VHDL 的保留字 OUT 相同,編譯時就會報錯。 福建農(nóng)林大學本科畢業(yè)論文 9 ( 14)在進行模塊的端口申明時,每行只申明一個端口,并建議采用以下順序:輸入信號的 clk、 rst、 enables other control signals、 data and adderss signals,然后再申明輸出信號的 clk、 rst、 enables other control signals、 data signals。 ( 15)在例化模塊時,使用名字顯式映射而不要采用位置相關的映射,這樣可以提高代碼的可讀性和避免編譯連線錯誤。 ( 16)如果同一段代碼要重復多次,盡可能使用函數(shù),如果有可能,可以將函數(shù)通用 化,以使得它可以復用。 ( 17)盡可能使用循環(huán)語句和寄存器組來提高源代碼的可讀性,這樣可以有效地減少代碼行數(shù)。 ( 18)代碼編寫時的數(shù)據(jù)類型只使用 IEEE 定義的標準類型。 ( 19)在設計中不要直接使用數(shù)字,作為例外,可以使用 0 和 1。 ( 20)不要在源代碼中使用嵌入式的 dc_shell 綜合命令。 ( 21)在設計中避免實例化具體的門級電路。 Quartus II 軟件介紹 Quartus II 概述 Quartus II是 Altera公司的綜合性 PLD開發(fā)軟件 [8],支持原理圖、 VHDL、 VerilogHDL以及 AHDL( Altera Hardware Description Language)等多種設計輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設計輸入到硬件配置的完整 PLD 設計流程。 Altera 公司的 Quartus II 軟件提供完整的多平臺設計環(huán)境,能夠直接滿足特定的設計需要,為 FPGA/CPLD 開發(fā)提供全面的設計環(huán)境。設計軟件提供完整的多平臺設計環(huán)境,能夠直接滿足特定設計需要,為可編程芯片系統(tǒng)( SOPC)提供全面的設計環(huán)境。Quartus II 軟件含有 FPGA 和 CPLD 設計所有階段 的解決方案。在 Quartus II 軟件中,設計者可以依照個人偏好,自定義開發(fā)環(huán)境的布局、菜單、命令和圖表等。 Quartus II 的前身 —— MAX+plus II,雖然是一個非常成功的開發(fā)環(huán)境,但是隨著集成電路的發(fā)展,規(guī)模的飛速擴大, MAX+plus II 這種基于底層的開發(fā)環(huán)境越來越不能滿足現(xiàn)在對系統(tǒng)級開發(fā)的要求,隨著用戶要求的不斷提高, Altera 公司終于發(fā)布了它的替代產(chǎn)品 —— Quartus II。 Quartus II 軟件的一些特性及功能如下: ⑴編譯和時序逼近的增強特性。 ⑵時序估算迅速提高時序性能。 福建農(nóng)林大學本科畢業(yè)論文 10 ⑶ SOPC Builder—— 提高設計效率。 ⑷ I/O 引腳分配和確認。 ⑸ HardCopy II 結構化 ASIC HardCopy II 移植支持。 ⑹ OS 支持。 ⑺ Quartus II 軟件增加的器件支持。 Quartus II 的設計流程 用戶首先對所做項目進行設計 [10],明確設計目的、設計要求。然后利用原理圖輸入方式或文本輸入方式進行設計輸入。輸入完成后進行編譯,若編譯過程中發(fā)現(xiàn)錯誤,則應檢查設計輸入以修改錯誤,直至沒有錯誤產(chǎn)生。編譯完成后進行仿真,檢查是否達到設計要求,若未達到要求,需重新檢查設計輸入及編譯過程,不斷迭代、收斂直至滿足設計要求。最后將設計配置到目標器件中進行硬件驗證與測試。 Quartus II 的設計流程圖如圖 2- 3 所示。 圖 23 Quartus II 的設計流程圖 Quartus II 設計方法 在建立新設計時,應重視和考慮 Quartus II 軟件提供的設計方法,包括自上而下或自下而上的漸進式設計流程,以及基于模塊的設計流程。不管是否使用 EDA 設計輸入和綜合工具,都可以使用這些設計流程。 自上而下與自下而上的設計方法比較: Quartus II 軟件同時支持自上而下和自下而上的編譯過程。在自上而下的編譯過程福建農(nóng)林大學本科畢業(yè)論文 11 中,一個設計人員或工程負責人在軟件中對整個設計進行編譯。不同的設計人員或者 IP提供者設計并驗證設計的不同部分,工程負責人在設計實體完成后將其加入到工程中。工程負責人從整體上編譯并優(yōu)化頂層工程。在設計中完成的部分得到適配結果,當設計的其他部分 改動時,其性能保持不變。 在自下而上的設計過程中,每個設計人員在各自的工程中對其設計進行優(yōu)化后,將每一個底層工程集成到一個頂層工程中。漸進式編譯提供導出和導入功能來實現(xiàn)這種設計方法。 作為底層模塊設計人員,可以針對設計,導出優(yōu)化后的網(wǎng)表和一組分配。然后,工程負責人將每一個設計模塊作為設計分區(qū)導入到頂層工程中。在這種情況下,工程負責人必須指導底層模塊設計人員,保證每一分區(qū)使用適當?shù)钠骷Y源。 在完整的漸進式編譯流程中,如果以前出于保持性能不變的原因而采用自下而上的方法,那么現(xiàn)在可以采用自上而下方法來達到同樣的 目的。這一功能之所以重要出于兩方面的原因。第一,自上而下流程要比對應的自下而上流程執(zhí)行起來簡單一些。第二,自上而下的方法為設計軟件提供整個設計的信息,因此,可以進行全局優(yōu)化,而在自下而上的設計方法中,軟件在編譯每一個底層分區(qū)時,并不知道頂層設計其他分區(qū)的情況,因此,必須進行資源均衡和時序預算。 福建農(nóng)林大學本科畢業(yè)論文 12 3 函數(shù)信號發(fā)生器的 FPGA 設計 三角波信號發(fā)生器的設計 三角波的 VHDL 描述 :設定一個變量 n,定義其范圍為 “00000111” 到 “11111000”, 每到一個脈沖 ,分別對它 進行 +8 或 8,然后把改變后的 n 送到輸出 y,生成了三角波信號。 三角波產(chǎn)生電路的 VHDL 描述如下。 (三角波 ) LIBRARY IEEE。 USE 。 USE 。 ENTITY delta IS PORT(clk,clr:in std_logic。 y:OUT std_logic_vector(7 DOWNTO 0))。 END delta。 ARCHITECTURE rtl OF delta IS BEGIN PROCESS(clk,clr) VARIABLE n:std_logic_vector(7 DOWNTO 0)。 VARIABLE f:std_logic。 BEGIN IF clr=39。039。THEN n:=00000000。 ELSIF CLK39。EVENT AND clk=39。139。THEN IF f=39。039。THEN IF n=11111000THEN n:=11111111。 福建農(nóng)林大學本科畢業(yè)論文 13 f:=39。139。 ELSE n:=n+8。 END IF。 ELSE IF n=00000111THEN n:=00000000。 f:=39。039。 ELSE n:=n8。 END IF。 END IF。 END IF。 y=n。 END PROCESS。 END rtl。 三角波信號發(fā)生器的邏輯電路圖 通過電路觀察器( RTL Viewer)可查看設計文件通過分析與綜合之后生成的邏輯電路構成。三角波信號發(fā)生器 的 RTL 圖如 圖 3- 1 所示。 圖 31 三角波 信號發(fā)生器 的 RTL 圖 福建農(nóng)林大學本科畢業(yè)論文 14 正弦波信號發(fā)生器的設計 正弦波的 VHDL 描述 :通過定義正弦數(shù)據(jù)表 ,每到一個脈沖 ,逐次查找并輸出相應的正弦數(shù)據(jù) ,生成了正弦波形。 當給輸入信號 clr 賦于 1 值時,檢測 到時鐘 clk 的上升沿。如果 tmp 達到 63 時則清 0,否則 tmp 就做加 1 的操作。 正弦波產(chǎn)生
點擊復制文檔內(nèi)容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1