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

正文內(nèi)容

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

2024-07-09 17:20 本頁(yè)面
 

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