EDA課程設(shè)計副本
《EDA課程設(shè)計副本》由會員分享,可在線閱讀,更多相關(guān)《EDA課程設(shè)計副本(20頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 課程設(shè)計說明書 名稱 任意波形產(chǎn)生電路設(shè)計 院 系 班 級 姓 名 系 主 任 教研室主任 指導(dǎo)教師 第一章 緒論 電子設(shè)計自動化(Electronic Design Automation)技術(shù)以計算機為基礎(chǔ)工作平臺,以微電子技術(shù)為物理基礎(chǔ),以現(xiàn)代電子技術(shù)設(shè)計技術(shù)為靈魂,采用計算機軟件工具,最終實現(xiàn)電子系統(tǒng)或?qū)S眉呻娐返脑O(shè)計。EDA技術(shù)的使用包括兩類:一類是專用集成電路芯片的設(shè)計研發(fā)人員;另一類是廣大電子線路設(shè)計人員。
2、后者并不具備專門的IC深層次的知識。EDA技術(shù)可簡單概括為以大規(guī)??删幊踢壿嬈骷樵O(shè)計載體,通過硬件描述語言或?qū)⑦壿媹D輸入給相應(yīng)EDA開發(fā)軟件,經(jīng)過編譯和仿真,最終將所設(shè)計的電路下載到設(shè)計載體中,從而完成系統(tǒng)設(shè)計任務(wù)的一門新技術(shù)。 1.1 EDA技術(shù)發(fā)展歷程 伴隨著計算機、集成電路、電子系統(tǒng)設(shè)計的發(fā)展,EDA技術(shù)經(jīng)歷了計算機輔助設(shè)計、計算機輔助工程設(shè)計和電子設(shè)計自動化三個發(fā)展階段。 (1)70年代為計算機輔助設(shè)計CAD(ComputerAidedDe-sign)階段。這一階段人們將電子設(shè)計中涉及到的許多計算開始用計算機程序?qū)崿F(xiàn)。 (2)80年代為計算機輔助工程CAE(Computer
3、 Aided Engineeirng)階段。這一階段出現(xiàn)了一些繪圖軟件,減輕了設(shè)計人員的勞動。 (3)90年代以來為電子設(shè)計自動化EDA(Electminic Design Automation)階段。這一階段人們借助開發(fā)軟件的幫助,可以將設(shè)計過程中的許多細節(jié)問題拋開,而將注意力集中在產(chǎn)品的總體開發(fā)上,提高了設(shè)計效率,縮短了產(chǎn)品的研制周期,實現(xiàn)了真正意義上的電子設(shè)計自動化。 1.2 EDA技術(shù)的應(yīng)用 EDA技術(shù)在進入21世紀后,得到了更大的發(fā)展應(yīng)用,突出表現(xiàn)在以下幾個方面: 1.在FPGA上實現(xiàn)DSP應(yīng)用成為可能,用純數(shù)字邏輯進行DSP模塊的設(shè)計,使得高速DSP實現(xiàn)成為現(xiàn)實,并有力地
4、推動了軟件無線電技術(shù)的實用化和發(fā)展。基于FPGA的DSP技術(shù),為高速數(shù)字信號處理算法提供了實現(xiàn)途徑。 2.嵌入式處理器軟核的成熟,使得SOPC(System On a Programmable Chip)步入大規(guī)模應(yīng)用階段,在一片F(xiàn)PGA中實現(xiàn)一個完備的數(shù)字處理系統(tǒng)成為可能。 3.使電子設(shè)計成果以自主知識產(chǎn)權(quán)的方式得以明確表達和確認成為可能。 4.在仿真和設(shè)計兩方面支持標準硬件描述語言且功能強大的EDA軟件不斷推出。 目前EDA技術(shù)已在各大公司、企事業(yè)單位和科研教學部門廣泛使用。例如在飛機制造過程中,從設(shè)計、性能測試及特性分析直到飛行模擬,都可能涉及到EDA技術(shù)。 1.3 EDA技
5、術(shù)的設(shè)計方法 數(shù)字系統(tǒng)的設(shè)計可采用不同的方法:一種為由底向上的設(shè)計方法,也稱傳統(tǒng)的設(shè)計方法;另一種為自頂向下的設(shè)計方法,也稱現(xiàn)代的設(shè)計方法。 原理圖/VHDL文本編輯 綜 合 FPGA/CPLD適配 時序與功能仿真 FPGA/CPLD編程下載 FPGA/CPLD器件和電路系統(tǒng) 由底向上的設(shè)計方法是傳統(tǒng)的IC和PCB的設(shè)計方法。采用由底向上的設(shè)計方法需要設(shè)計者先定義和設(shè)計 每個基本模塊,然后對這些模塊進行連線以完成整體設(shè)計。在IC設(shè)計復(fù)雜程度低于10 000門時,常采用這種設(shè)計方法,但是隨著設(shè)計復(fù)雜程度的增加,該方法會 產(chǎn)生產(chǎn)品生產(chǎn)周期長、可靠性低、 開發(fā)費用高等問題。
6、 EDA技術(shù)采用現(xiàn)代的設(shè)計方法 ——自頂向下的設(shè)計方法。采用自 頂向下技術(shù)進行設(shè)計可分為三個主 要階段:系統(tǒng)設(shè)計、系統(tǒng)的綜合優(yōu) 化和系統(tǒng)實現(xiàn),各個階段之間并沒 有絕對的界限。 EDA設(shè)計流程為:設(shè)計輸入、 時序與功能仿真、綜合、適配與下 載。右圖圖1-1是運用EDA技術(shù)進 圖1-1 EDA技術(shù)數(shù)字 行數(shù)字系統(tǒng)設(shè)計的流程圖。 系統(tǒng)設(shè)計的流程圖
7、1.3 數(shù)字系統(tǒng)設(shè)計 1.3.1 數(shù)字系統(tǒng)設(shè)計的模型 數(shù)字系統(tǒng)的設(shè)計就是用規(guī)范的和形式化的方式作出正確的系統(tǒng)邏輯功能的描述,詳細反映系統(tǒng)的邏輯進程和具體的邏輯運算操作,并選用具體的電路來實現(xiàn)所描述的系統(tǒng)邏輯。用于數(shù)字系統(tǒng)設(shè)計的EDA軟件有3類:—是允許用戶用高級語言(如C語言)描述數(shù)字系統(tǒng)的邏輯功能,并能自動實現(xiàn)電路的設(shè)計,這種軟件的自動化程度最高;二是允許用戶以邏輯流程圖的方式描述系統(tǒng)的邏輯關(guān)系,軟件自動將邏輯流程圖設(shè)計成數(shù)字電路,這種軟件的自動化程度次之:三是要求用戶先以人工方式設(shè)計出數(shù)字電路,再用電路圖方式或硬件描述語言的方式輸入計算機,由EDA軟件作優(yōu)化、仿真等后續(xù)處理。 1.
8、3.2 數(shù)字系統(tǒng)設(shè)計的基本步驟 數(shù)字系統(tǒng)設(shè)計的基本步驟有:系統(tǒng)任務(wù)分析,確定邏輯算法,系統(tǒng)劃分,系統(tǒng)邏輯描述,邏輯電路設(shè)計,仿真、驗證,物理實現(xiàn)。 (1)系統(tǒng)任務(wù)分析:數(shù)字系統(tǒng)設(shè)計中的第一步是明確系統(tǒng)的任務(wù)。設(shè)計任務(wù)書可用各種方式提出對整個數(shù)字系統(tǒng)的邏輯要求,常用的方式有自然語言、邏輯語言描述、邏輯流程圖、時序圖等。 (2)確定邏輯算法:實現(xiàn)系統(tǒng)邏輯運算的方法稱為邏輯算法,簡稱算法。一個數(shù)字系統(tǒng)的邏輯運算往往有多種算法,設(shè)計者的任務(wù)要比較各種算法的優(yōu)劣,取長補短,從中確定最合理的一種。數(shù)字系統(tǒng)的算法是邏輯設(shè)計的基礎(chǔ),算法不同,則系統(tǒng)的結(jié)構(gòu)也不同,算法的合理與否直接影響系統(tǒng)結(jié)構(gòu)的合理性。
9、 (3)系統(tǒng)劃分:當算法明確后,應(yīng)根據(jù)算法構(gòu)造系統(tǒng)的硬件框架(也稱為系統(tǒng)框圖),將系統(tǒng)劃分為若干個部分,各部分分別承擔算法中不同的邏輯操作功能。 (4)系統(tǒng)邏輯描述:當系統(tǒng)中各個子系統(tǒng)和模塊的邏輯功能和結(jié)構(gòu)確定后,則需采用比較規(guī)范的形式來描述系統(tǒng)的邏輯功能。對系統(tǒng)的邏輯描述可先采用較粗略的邏輯流程圖,再將邏輯流程圖逐步細化為詳細邏輯流程圖,最后將詳細邏輯流程圖表示成與硬件有對應(yīng)關(guān)系的形式,為下一步的電路級設(shè)計提供依據(jù)。 (5)邏輯電路設(shè)計:電路級設(shè)計是指選擇合理的器件及連接關(guān)系以實現(xiàn)系統(tǒng)邏輯要求。電路級設(shè)計的結(jié)果通常采用兩種方式來表達:電路圖方式和硬件描述語言方式。EDA軟件支持這兩種方式
10、的輸入。 (6)仿真、驗證:當電路設(shè)計完成后必須驗證設(shè)計是否正確。在早期,只能通過搭試硬件電路才能得到設(shè)計的結(jié)果。目前,數(shù)字電路設(shè)計的EDA軟件都有具有驗證(也稱為仿真、電路模擬)的功能,先通過電路驗證(仿真),當驗證結(jié)果正確后再進行實際電路的測試。由于EDA軟件的驗證結(jié)果十分接近實際結(jié)果,因此,可極大地提高電路設(shè)計的效率。 (7)物理實現(xiàn):最終用實際的器件實現(xiàn)數(shù)字系統(tǒng)的設(shè)計,用儀表測量設(shè)計的電路是否符合設(shè)計要求?,F(xiàn)在的數(shù)字系統(tǒng)往往采用大規(guī)模和超大規(guī)模集成電路,由于器件集成度高、導(dǎo)線密集,故一般在電路設(shè)計完成后即設(shè)計印刷電路板,在印刷電路板上組裝電路進行測試。需要注意的是、印刷電路板本身的
11、物理特性也會影響電路的邏輯關(guān)系。 1.4 Quartus II 介紹 Quartus II 是MAX+plus II的升級版本,是ALTERA公司的第四代開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設(shè)計輸入形式,編譯快速,器件編程直接、易懂,它能夠支持邏輯門數(shù)在百萬門以上的邏輯器件的開發(fā),并且為第三方工具提供了無縫接口。Quartus II軟件包的編程器是系統(tǒng)的核心,提供強大的設(shè)計處理功能,設(shè)計者可以通過添加特定的約束條件來提高芯片的利用率。 Altera Quartus II 作為一
12、種可編程邏輯的設(shè)計環(huán)境, 由于其強大的設(shè)計能力和直觀易用的接口,越來越受到數(shù)字系統(tǒng)設(shè)計者的歡迎。 第二章:設(shè)計要求 電路要求可以產(chǎn)生方波、正弦波、三角波,波形的頻率可調(diào),通過控制開關(guān)控制產(chǎn)生的波形,并通過控制按鍵控制設(shè)計信號的頻率,改變頻率的方法可以采用分頻和DDS的原理進行控制信號頻率。并進行D/A轉(zhuǎn)換電路與濾波電路的設(shè)計,通過采用施密特觸發(fā)器對波形進行整形,設(shè)計一頻率測量電路對所產(chǎn)生的頻率進行測量,通過數(shù)碼管顯示出來,并在數(shù)碼管上顯示當前的波形代碼。 至少產(chǎn)生的波形如下: 圖2-1 正弦波形 圖2-2 三角波形
13、 圖2-3 方波波形 圖2-4 特殊波形 第三章:系統(tǒng)的設(shè)計 3.1 設(shè)計思路 采用由底向上的設(shè)計方法,根據(jù)系統(tǒng)對硬件的要求詳細編制技術(shù)規(guī)格書,畫出系統(tǒng)控制流程圖,仔細分析系統(tǒng)要求達到的各個功能,將系統(tǒng)的功能進行細化,合理地劃分功能模塊,并畫出系統(tǒng)的功能框圖;進行各功能模塊的設(shè)計,運用VHDL語言設(shè)計出各個功能模塊;在軟件環(huán)境下導(dǎo)出各個功能框圖,在將各個模塊按系統(tǒng)要求達到的功能連接起來,做出系統(tǒng)的原理圖;編譯、調(diào)試完成后,在下載到硬件結(jié)構(gòu)中,進行硬件調(diào)試。 (1)提出設(shè)計說明書,即用自然語言表達系統(tǒng)項目的功能特點和技術(shù)參數(shù)等
14、。 (2)建立VHDL行為模型,這一步是將設(shè)計說明書轉(zhuǎn)化為VHDL行為模型。 (3)VHDL行為仿真。這一階段可以利用VHDL仿真器(如ModelSim)對頂層系統(tǒng)的行為模型進行仿真測試,檢查模擬結(jié)果,繼而進行修改和完善。 (4)VHDL-RTL級建模。如上所述,VHDL只有部分語句集合可用于硬件功能行為的建模,因此在這一階段,必須將VHDL的行為模型表達為VHDL行為代碼(或稱VHDL-RTL級模型)。 (5)前端功能仿真。 (6)邏輯綜合。 (7)測試向量生成。這一階段主要是針對ASIC設(shè)計的。FPGA設(shè)計的時序測試文件主要產(chǎn)生于適配器。對ASIC的測試向量文件是綜合器結(jié)合含有
15、版圖硬件特性的工藝庫后產(chǎn)生的,用于對ASIC的功能測試。 (8)功能仿真。利用獲得的測試向量對ASIC的設(shè)計系統(tǒng)和子系統(tǒng)的功能進行仿真。 (9)結(jié)構(gòu)綜合。主要將綜合產(chǎn)生的表達邏輯連接關(guān)系的網(wǎng)表文件,結(jié)合具體的目標硬件環(huán)境進行標準單元調(diào)用、布局、布線和滿足約束條件的結(jié)構(gòu)優(yōu)化配置,即結(jié)構(gòu)綜合。 (10)門級時序仿真。在這一級中將使用門級仿真器或仍然使用VHDL仿真器(因為結(jié)構(gòu)綜合后能同步生成VHDL格式的時序仿真文件)進行門級時序仿真,在計算機上了解更接近硬件目標器件工作的功能時序。 (11)硬件測試。這是對最后完成的硬件系統(tǒng)(如ASIC或FPGA)進行檢查和測試。 3.2 設(shè)計流程
16、 1、系統(tǒng)任務(wù)分析:數(shù)字系統(tǒng)設(shè)計中的第一步是明確系統(tǒng)的任務(wù)。 2、確定邏輯算法:實現(xiàn)系統(tǒng)邏輯運算的方法稱為邏輯算法,簡稱算法。數(shù)字系統(tǒng)的算法是邏輯設(shè)計的基礎(chǔ),算法不同,則系統(tǒng)的結(jié)構(gòu)也不同,算法的合理與否直接影響系統(tǒng)結(jié)構(gòu)的合理性。 3、系統(tǒng)劃分:當算法明確后,應(yīng)根據(jù)算法構(gòu)造系統(tǒng)的硬件框架(也稱為系統(tǒng)框圖),將系統(tǒng)劃分為若干個部分,各部分分別承擔算法中不同的邏輯操作功能。 4、系統(tǒng)邏輯描述:對系統(tǒng)的邏輯描述可先采用較粗略的邏輯流程圖,再將邏輯流程圖逐步細化為詳細邏輯流程圖,最后將詳細邏輯流程圖表示成與硬件有對應(yīng)關(guān)系的形式,為下一步的電路級設(shè)計提供依據(jù)。 5、邏輯電路設(shè)計
17、:電路級設(shè)計是指選擇合理的器件及連接關(guān)系以實現(xiàn)系統(tǒng)邏輯要求。電路級設(shè)計的結(jié)果通常采用兩種方式來表達:電路圖方式和硬件描述語言方式。EDA軟件支持這兩種方式的輸入。 6、仿真、驗證:當電路設(shè)計完成后必須驗證設(shè)計是否正確。目前,數(shù)字電路設(shè)計的EDA軟件都有具有驗證(也稱為仿真、電路模擬)的功能,先通過電路驗證(仿真),當驗證結(jié)果正確后再進行實際電路的測試。 3.3 設(shè)計步驟及程序 分頻模塊 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC
18、_UNSIGNED.ALL;
ENTITY fp IS
port(clk:in std_logic; --input 1K Hz
k:in std_logic_vector(3 downto 0);
clko:buffer std_logic); --out 1 hz
end fp;
architecture a of fp is
signal temp:std_logic_vector(3 downto 0);
begin
process(clk)
begin
if clk'event and clk='1' then
if temp 19、en
temp<=temp+1;
else
temp<="0000";
clko<=not clko;
end if;end if;
end process;
end a;
正弦函數(shù)模塊
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity sin is
port(clk4:in std_logic;
k:: 20、in integer range 15 downto 0;
dd4:out integer range 255 downto 0);
end sin;
architecture dacc of sin is
signal q: integer range 63 downto 0;
begin
process(clk4)
begin
if (clk4'event and clk4='1') then
q<=q+k;
end if; 21、
end process;
process(q)
begin
case q is
when 00=>dd4<=255;
when 01=>dd4<=254;
when 02=>dd4<=253; when 36=>dd4<=10;
when 03=>dd4<=250; when 37=>dd4<=15;
when 04=>dd4<=245; 22、when 41=>dd4<=47;
when 05=>dd4<=240; when 38=>dd4<=21;
when 06=>dd4<=234; when 39=>dd4<=29;
when 07=>dd4<=226; when 40=>dd4<=37;
when 08=>dd4<=218; when 41=>dd4<=47;
when 09=>dd4<=208; when 42=>dd4<=57;
when 10=>dd 23、4<=198; when 43=>dd4<=67;
when 11=>dd4<=188; when 44=>dd4<=79;
when 12=>dd4<=176; when 45=>dd4<=90;
when 13=>dd4<=165; when 46=>dd4<=103;
when 14=>dd4<=152; when 47=>dd4<=115;
when 15=>dd4<=140; when 24、 48=>dd4<=128
when 16=>dd4<=128; when 49=>dd4<=140;
when 17=>dd4<=115; when 50=>dd4<=165;
when 18=>dd4<=103; when 51=>dd4<=176;
when 19=>dd4<=90; when 52=>dd4<=188;
when 20=>dd4<=79; when 53=>dd4<=198;
when 21=>d 25、d4<=67; when 54=>dd4<=208;
when 22=>dd4<=57; when 55=>dd4<=218;
when 23=>dd4<=47; when 56=>dd4<=226;
when 24=>dd4<=37; when 57=>dd4<=234;
when 25=>dd4<=29; when 58=>dd4<=240;
when 26=>dd4<=21; 26、when 59=>dd4<=245;
when 27=>dd4<=15; when 60=>dd4<=250;
when 28=>dd4<=10; when 61=>dd4<=253;
when 29=>dd4<=5; when 62=>dd4<=254;
when 30=>dd4<=2; when 63=>dd4<=255;
when 31=>dd4<=1; when 63=>dd4<=255;
when 27、32=>dd4<=0; when others=>null;
when 33=>dd4<=1; end case;
when 34=>dd4<=2; end process;
when 35=>dd4<=5; end dacc;
三角波
library ieee;
use ieee.std_logic_1164.al 28、l;
use ieee.std_logic_unsigned.all;
entity tria is
port(clk3:in std_logic;
k:in integer range 15 downto 0;
dd3:out integer range 255 downto 0);
end tria;
architecture dacc of tria is
signal b:std_logic;
signal c:integer range 255 downto 0;
begin
process(clk3)
begin
if 29、(clk3'event and clk3='1') then
if(b='0') then
c<=c+k;
if(c>=250) then
b<='1';
end if;
elsif(b='1') then
c<=c-k;
if(c<=1) then
b<='0';
end if;
end if;
dd3<=c;
end if;
end process;
end dacc;
方波 30、
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity square is
port(clk1 : in std_logic;
k:in integer range 15 downto 0;
dd1 : buffer integer range 255 downto 0);
end square;
architecture dacc of square is 31、
signal q: integer range 255 downto 0;
begin
process(clk1)
begin
if (clk1'event and clk1='1') then
q<=q+k;
end if;
end process;
process(q)
begin
case q is
when 0 to 127=>dd1<=255;
when 128 to 255=>dd1<=127;
when others=>null;
end case;
end process;
end dac 32、c;
特殊波形
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity sintra is
port(clk4:in std_logic;
k:in integer range 15 downto 0;
dd4:out integ 33、er range 255 downto 0);
end sintra;
architecture dacc of sintra is
signal q: integer range 63 downto 0;
begin
process(clk4)
begin
if (clk4'event and clk4='1') then
q<=q+k;
end if;
end process;
process(q)
begin
case q is
when 00=>dd4<=255;
when 01=>dd4< 34、=254;
when 02=>dd4<=253; when 36=>dd4<=10;
when 03=>dd4<=250; when 37=>dd4<=15;
when 04=>dd4<=245; when 41=>dd4<=47;
when 05=>dd4<=240; when 38=>dd4<=21;
when 06=>dd4<=234; when 39=> 35、dd4<=29;
when 07=>dd4<=226; when 40=>dd4<=37;
when 08=>dd4<=218; when 41=>dd4<=47;
when 09=>dd4<=208; when 42=>dd4<=57;
when 10=>dd4<=198; when 43=>dd4<=67;
when 11=>dd4<=188; when 44=>dd4<=79;
when 12=>dd4<=176; 36、 when 45=>dd4<=90;
when 13=>dd4<=165; when 46=>dd4<=103;
when 14=>dd4<=152; when 47=>dd4<=115;
when 15=>dd4<=140; when 48=>dd4<=128
when 16=>dd4<=128; when 49=>dd4<=140;
when 17=>dd4<=115; when 50=>dd4 37、<=165;
when 18=>dd4<=103; when 51=>dd4<=176;
when 19=>dd4<=90; when 52=>dd4<=188;
when 20=>dd4<=79; when 53=>dd4<=198;
when 21=>dd4<=67; when 54=>dd4<=208;
when 22=>dd4<=57; when 55=>dd4<=218;
when 23=>dd4<=47; 38、 when 56=>dd4<=226;
when 24=>dd4<=37; when 57=>dd4<=234;
when 25=>dd4<=29; when 58=>dd4<=240;
when 26=>dd4<=21; when 59=>dd4<=245;
when 27=>dd4<=15; when 60=>dd4<=250;
when 28=>dd4<=10; when 61 39、=>dd4<=253;
when 29=>dd4<=5; when 62=>dd4<=254;
when 30=>dd4<=2; when 63=>dd4<=255;
when 31=>dd4<=1; when 63=>dd4<=255;
when 32=>dd4<=0; when others=>null;
when 33=>dd4<=1; end case;
when 34=>dd4<=2; 40、 end process;
when 35=>dd4<=5; end dacc;
分頻1Hz
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY fp1HZ IS
PORT(clk:in std_logic; --10M
clk1Hz: buffer STD_LOGIC);
41、
END fp1hz;
ARCHITECTURE one OF fp1hz IS
SIGNAL test: integer range 0 to 6000000;
begin
process(clk)
begin
if clk'event and clk='1' then
if test<5000000 then
test<=test+1;
else
test<=0;
clk1hz<=not clk1hz;
end if;
end if;
end process;
end one;
測頻模塊
LIBRA 42、RY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY freq IS
PORT(fsin: in STD_LOGIC;
clk: IN STD_LOGIC;
dout0,dout1,dout2,dout3: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END freq;
ARCHITECTURE one OF freq IS
SIGNAL test_en: STD_LOGIC;
SIGNAL 43、clear: STD_LOGIC;
SIGNAL data: STD_LOGIC_VECTOR(15 DOWNTO 0);
BEGIN
PROCESS(clk)
BEGIN
IF clk'event AND clk='1' THEN test_en<=NOT test_en;
END IF;
END PROCESS;
clear<=NOT clk AND NOT test_en;
PROCESS(fsin)
BEGIN
IF clear='1' THEN data<="0000";
ELSIF fsin'ev 44、ent AND fsin='0'
THEN
IF data(15 DOWNtO 0)="1001"
THEN data<=data+"0111";
elsIF data(11 DOWNtO 0)=""
THEN data<=data+"";
ELSIF data(7 DOWNTO 0)="10011001"
THEN data<=data+"01100111";
ELSIF data(3 DOWNTO 0)="1001"
THEN data<=data+"0111";
ELSE data<=data+1;
45、 END IF;
END IF;
END PROCESS;
PROCESS(test_en,data)
BEGIN
IF test_en'event AND test_en='0' THEN
dout0<=data(3 downto 0);
dout1<=data(7 downto 4);
dout2<=data(11 downto 8);
dout3<=data(15 downto 12);
END IF;
46、 END PROCESS;
END one;
控制模塊
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all
entity control is
port(sel:in std_logic_vector(1 downto 0);
k0,k1,k2,k3:in integer range 255 downto 0;
qout:out i 47、nteger range 255 downto 0);
end control;
architecture a of control is
begin
process(sel,k0,k1,k2,k3)
begin
if sel=“00” then
qout<=k0;
elsif sel=“01” then
qout<=k1;
elsif sel=“10” then
qout<=k2;
elsif se 48、l=“11” then
qout<=k3;
end if;
end process;
end a;
3.4 電路模塊組成及引腳設(shè)置
3.4.1路模塊組成
3.4.2引腳設(shè)置
3.5 硬件實現(xiàn)及調(diào)試結(jié)果
下載編譯成功后,定義芯片管腳,開關(guān)K1、K2、K3控制分頻系數(shù),K14、K15為Sel選擇信號,Sel=00時為正弦波,Sel=01時為三角波,Sel=10時為方波,Sel=11時為特殊波形。將示波器連接到硬件上,觀察輸出波形。
第四章 課程設(shè)計總 49、結(jié)
通過這次課程設(shè)計,我受益匪淺。我們不僅鞏固了課上學到的知識,提高了我們實際動手的能力,而且了解到理論聯(lián)系實際和團結(jié)協(xié)作的重要性。同時我們也意識到在以后的學習和生活中要始終保持一絲不茍的態(tài)度,杜絕馬虎的態(tài)度,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固。
通過本次設(shè)計,增加自己的理論知識,系統(tǒng)的了解了波形發(fā)生器的 50、設(shè)計流程,尤其是硬、軟件的設(shè)計方法,掌握了波形發(fā)生器的基本功能及編程方法,掌握了它的一般原理,也進一步掌握了QuartusⅡ的使用。而且也開拓了思路,鍛煉了實踐動手能力,提高了分工協(xié)作能力和分析問題,解決問題的能力,達到了本次課程設(shè)計的目的。
此次任意波形發(fā)生器的設(shè)計,給我留下深刻的印象。我會在以后的學習、生活中磨練自己,使自己能夠滿足社會的需求。同時,我非常感謝張老師的指導(dǎo),在她的細心講解下,我順利的完成的此次任意波形發(fā)生器的課程設(shè)計。
參考文獻
[1] 江國強 EDA技術(shù)與應(yīng)用 北京:電子工業(yè)出版社,2005
[2]孫加存 電子設(shè)計自動化 西安:西安電子科技大學出版社 2008
[3] 林明權(quán),等 VHDL數(shù)字控制系統(tǒng)設(shè)計范例 北京:電子工業(yè)出版社,2005
[4] 焦素敏 EDA應(yīng)用技術(shù) 北京:清華大學出版社,2005
[5] 王振紅 VHDL數(shù)字電路設(shè)計與應(yīng)用實踐教程 北京:機械工業(yè)出版社,2003
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 110中國人民警察節(jié)(筑牢忠誠警魂感受別樣警彩)
- 2025正字當頭廉字入心爭當公安隊伍鐵軍
- XX國企干部警示教育片觀后感筑牢信仰之基堅守廉潔底線
- 2025做擔當時代大任的中國青年P(guān)PT青年思想教育微黨課
- 2025新年工作部署會圍繞六個干字提要求
- XX地區(qū)中小學期末考試經(jīng)驗總結(jié)(認真復(fù)習輕松應(yīng)考)
- 支部書記上黨課筑牢清廉信念為高質(zhì)量發(fā)展營造風清氣正的環(huán)境
- 冬季消防安全知識培訓(xùn)冬季用電防火安全
- 2025加強政治引領(lǐng)(政治引領(lǐng)是現(xiàn)代政黨的重要功能)
- 主播直播培訓(xùn)直播技巧與方法
- 2025六廉六進持續(xù)涵養(yǎng)良好政治生態(tài)
- 員工職業(yè)生涯規(guī)劃方案制定個人職業(yè)生涯規(guī)劃
- 2024年XX地區(qū)黨建引領(lǐng)鄉(xiāng)村振興工作總結(jié)
- XX中小學期末考試經(jīng)驗總結(jié)(認真復(fù)習輕松應(yīng)考)
- 幼兒園期末家長會長長的路慢慢地走