畢業(yè)論文EDA設(shè)計基于CPLD的信號發(fā)生器設(shè)計_第1頁
畢業(yè)論文EDA設(shè)計基于CPLD的信號發(fā)生器設(shè)計_第2頁
畢業(yè)論文EDA設(shè)計基于CPLD的信號發(fā)生器設(shè)計_第3頁
畢業(yè)論文EDA設(shè)計基于CPLD的信號發(fā)生器設(shè)計_第4頁
畢業(yè)論文EDA設(shè)計基于CPLD的信號發(fā)生器設(shè)計_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、基于cpld的信號發(fā)生器設(shè)計 摘 要:本文給出了一種采用cpld作為主控器的信號發(fā)生器設(shè)計方案。由于采用eda技術(shù)進行設(shè)計,該方案具有工作速度快,硬件體積小,可靠性高等優(yōu)點。關(guān)鍵詞:信號發(fā)生器;vhdl ;eda ;cpld 1 引言隨著社會的發(fā)展,人們對生活的要求也逐步提高,也越來越希望在各個方面都有很大的提高,尤其是在信號方面,信號發(fā)生器作為提供測試用電信號的儀器必不可少。傳統(tǒng)信號發(fā)生器要用模擬器件來實現(xiàn),后來出現(xiàn)了用數(shù)字電路來設(shè)計的方案,例如采用單片機等。eda技術(shù)的出現(xiàn)與可編程器件的應(yīng)用改變了數(shù)字電路的設(shè)計方法。采用可編程器件進行項目開發(fā)具有費用低、開發(fā)時間短的特點,有利于新產(chǎn)品占領(lǐng)市

2、場。本文給出了一種采用cpld作為主控部件的信號發(fā)生器設(shè)計方案,在設(shè)計輸入時采用vhdl進行描述,再連入外圍電路與cpld構(gòu)建起整個系統(tǒng)。2 系統(tǒng)設(shè)計2.1 設(shè)計要求信號發(fā)生器能夠產(chǎn)生正弦波、方波、三角波,并可通過開關(guān)選擇輸出波形。2.2 設(shè)計思路 根據(jù)設(shè)計要求,智能信號發(fā)生器由4部分組成,既電源模塊、時鐘信號發(fā)生器、主控器、d/a轉(zhuǎn)換模塊,系統(tǒng)結(jié)構(gòu)如圖1所示。晶體振蕩器產(chǎn)生穩(wěn)定度很高的時鐘信號,在時鐘信號的作用下,主控器產(chǎn)生頻率可變的波形數(shù)據(jù)信號,經(jīng)數(shù)/摸轉(zhuǎn)換電路最終輸出所需要的波形。圖1 系統(tǒng)結(jié)構(gòu)框圖 2.3 模塊設(shè)計2.3.1 主控器設(shè)計在主控器內(nèi)部也共有四個模塊,既三角波模塊,正弦波模

3、塊,方波模塊和一個控制模塊,通過編程可以分別設(shè)計這四個模塊。了【】 圖3 cpld內(nèi)部控制原理圖2.3.1.1 三角波模塊 三角波模塊是在設(shè)計時置一變量作為工作狀態(tài)標(biāo)志,在此變量全為0時,當(dāng)檢測到時鐘的上升沿時進行加同一個數(shù)操作,全為0時,進行減同一個數(shù)操作。由于a/d轉(zhuǎn)換采用12位的adc7545芯片,且設(shè)64個時鐘為一個三角波周期,輸出每次加/減8。設(shè)計程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity delta is port(clk,reset:in std_logi

4、c;q: out std_logic_vector(7 downto 0);end delta ;architecture behave of delta isbeginprocess(clk,reset)variable tmp: std_logic_vector(7 downto 0);variable a: std_logic;begin if reset=0then tmp:=”00000000”;elsif clkevent and clk=1thenif a=0 thenif tmp=”11111110”then tmp:=”11111111”; a:=1;else tmp:=tm

5、p+1; - 遞增運算 end if; else if tmp=”00000001”then tmp:=”00000000”; a:=0; else tmp:=tmp-1; -遞減運算 end if; end if; end if; q<=tmp; end process;end behave;2.3.1.2 正弦波模塊 正弦波模塊是對一個正弦波周期分為64個采樣點,然后量化為8位2進制數(shù)據(jù),最大值為255,最小值為0,由此得到正弦波表,經(jīng)d/a轉(zhuǎn)換得到波形。設(shè)計程序為:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic

6、_unsigned.all;entity sin isport(clk,clr:in std_logic;d: out integer range 0 to 255);end sin;architecture behave of sin isbeginprocess(clk,clr)variable tmp: integer range 0 to 63;begin if clr=0then d<=0; elsif clkevent and clk=1thenif tmp=63 then -一個周期取64點 tmp:=0; else tmp:=tmp+1; end if; case tmp

7、 is -查表輸出 when 00=>d<=255; when 01=>d<=254; when 02=>d<=252; when 03=>d<=249; when 04=>d<=245; when 05=>d<=239; when 06=>d<=233; when 07=>d<=225;when 08=>d<=217; when 09=>d<=207; when 10=>d<=197; when 11=>d<=186; when 12=>d&l

8、t;=174; when 13=>d<=162; when 14=>d<=150; when 15=>d<=137; when 16=>d<=124; when 17=>d<=112; when 18=>d<=99; when 19=>d<=87; when 20=>d<=75; when 21=>d<=64; when 22=>d<=53; when 23=>d<=43; when 24=>d<=34; when 25=>d<=26; w

9、hen 26=>d<=19; when 27=>d<=13;when 28=>d<=8; when 29=>d<=4; when 30=>d<=1; when 31=>d<=0; when 32=>d<=0; when 33=>d<=1; when 34=>d<=4; when 35=>d<=8; when 36=>d<=13; when 37=>d<=19; when 38=>d<=26; when 39=>d<=34; wh

10、en 40=>d<=43; when 41=>d<=53; when 42=>d<=64; when 43=>d<=75; when 44=>d<=87; when 45=>d<=99; when 46=>d<=112; when 47=>d<=124;when 48=>d<=137; when 49=>d<=150; when 50=>d<=162; when 51=>d<=174; when 52=>d<=186; when 53=&g

11、t;d<=197; when 54=>d<=207; when 55=>d<=217; when 56=>d<=225; when 57=>d<=233; when 58=>d<=239; when 59=>d<=245; when 60=>d<=249; when 61=>d<=252; when 62=>d<=254; when 63=>d<=255; end case; end if; end process;end behave;2.3.1.3 方波模塊 方波模

12、塊設(shè)計是交替送出全0和全1,并以32個延時實現(xiàn),64個時鐘為一個周期。設(shè)計程序為:library ieee;use ieee.std_logic_1164.all;entity square is port(clk,clr:in std_logic;q: out integer range 0 to 255);end square;architecture behave of square is signal a:bit;begin process(clk,clr)variable cnt: integer ;begin if clr=0 then a<=0; elsif clkeven

13、t and clk=1then if cnt<63 then cnt:=cnt+1; else cnt:=0; a<=not a ; end if; end if;end process;process(clk,a)begin if clkevent and clk=1then if a=1 then q<=255; else q <=0; end if; end if; end process;end behave; 2.3.1.4 控制模塊控制模塊是通過sel0和sel1來選擇波形,并且用reset作為清零開關(guān)結(jié)束上一次的波形選擇。通過q0q7輸出。設(shè)計程序為:li

14、brary ieee;use ieee.std_logic_1164.all;entity ch61a is port(sel : in std_logic_vector(1 downto 0); d0,d1,d2 : in std_logic_vector(3 downto 0); q: out std_logic_vector(3 downto 0); end ch61a;architecture behave of ch61a is process(sel) begin case sel is when “00”=>q<=d0; -三角波形出 when “01”=>q&

15、lt;=d1; -正弦波輸出 when “10”=>q<=d2; -方波形輸出 when others=>null; end case; end process;end behave;2.3.2 d/a轉(zhuǎn)換模塊 圖4 d/a轉(zhuǎn)換電路電路中,ad7545將波形數(shù)據(jù)轉(zhuǎn)換為模擬信號;lf353進行信號濾波和整形。2.3.3 晶振電路模塊 圖5 晶振電路在此電路中,通過12m的石英晶體和電容及74ls04來產(chǎn)生12mhz的頻率電路。2.3.4 電源模塊圖6 電源原理圖在此電路中,220v電壓經(jīng)變壓器到整流橋能產(chǎn)生直流電壓,再通過電容濾波,通過7805和7905來產(chǎn)生穩(wěn)定的+5v和-5

16、v電壓。2.4 設(shè)計驗證圖7 三角波仿真圖圖8 正弦波仿真 圖9 方波仿真圖2.5 印制電路板設(shè)計 圖10 系統(tǒng)原理圖 圖11 pcb板圖圖12 3d圖3 結(jié)束語本文介紹了一種基于cpld的信號器的設(shè)計方案,用vhdl語言來設(shè)計主控器部分,并用d/a轉(zhuǎn)換將數(shù)字信號轉(zhuǎn)換成模擬信號用示波器顯示出波形。主控器部分采用max+plus ii進行仿真,仿真結(jié)果驗證了設(shè)計的正確性。致 謝在作者設(shè)計的過程中,指導(dǎo)老師陳衛(wèi)兵給予了大力支持,陳老師認真負責(zé)的工作態(tài)度,嚴謹?shù)闹螌W(xué)精神和深厚的理論水平使作者受益匪淺。在此表示感謝!參考文獻1 李國洪,沈明山.可編程器件eda技術(shù)與實踐m. 北京:機械工業(yè)出版社,20

17、042 王金明.verilog hdl程序設(shè)計教程m. 北京:人民郵電出版社,20043 潘松、黃繼業(yè).eda技術(shù)實用教程m. 北京:科學(xué)出版社,20024 徐惠民,安德寧. 數(shù)字邏輯設(shè)計與vhdl描述m. 北京: 機械工業(yè)出版社, 20025 杜建國. verilog hdl 硬件描述語言m. 北京:國防工業(yè)出版社, 2004.16 廖裕平,陸瑞強. 數(shù)字電路設(shè)計使用max+plus iim. 北京:清華大學(xué)出版社,2001signal generator design based on cpld name: liu zhiyi student number:200440602115 advisor: chen weibing abstract: t

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論