姚 寧
(許昌學(xué)院 電氣機(jī)電工程學(xué)院,河南 許昌 461000)
在分立元件時(shí)期,傳統(tǒng)的電子電路的設(shè)計(jì)方法很大程度上依賴(lài)于設(shè)計(jì)者本身的經(jīng)驗(yàn),設(shè)計(jì)者必須非常了解器件的工藝、特性,然后才能對(duì)器件一個(gè)一個(gè)選型、組建,先完成原理圖的設(shè)計(jì),接著完成PCB板圖的印制,然后完成電路板的組裝調(diào)試.若組裝完成的電路調(diào)試不能完成相應(yīng)功能或出錯(cuò),則必須從原理圖開(kāi)始一步步重新來(lái)過(guò),這稱(chēng)為“自底而上”[1]的設(shè)計(jì)方法,效率可想而知,所以產(chǎn)品的更新?lián)Q代較為緩慢.隨著大規(guī)模集成電路的發(fā)展,電子電路的設(shè)計(jì)進(jìn)入EDA(Electronic Design Automation——電子設(shè)計(jì)自動(dòng)化)時(shí)代,設(shè)計(jì)者不需要了解器件的工藝,只要會(huì)畫(huà)原理圖或會(huì)用硬件描述語(yǔ)言,就可以在大規(guī)??删庉嬤壿嬈骷拈_(kāi)發(fā)軟件及實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng)上完成電路的設(shè)計(jì)和調(diào)試[2],這稱(chēng)為“自上而下”的設(shè)計(jì)方法.當(dāng)今的EDA技術(shù)更多的是指SOC(System on a Chip)[1]——芯片內(nèi)電子系統(tǒng)設(shè)計(jì)自動(dòng)化.
函數(shù)發(fā)生器是一種在工程教育、科學(xué)研究及生產(chǎn)實(shí)踐中經(jīng)常用到的設(shè)備.目前使用最多的函數(shù)發(fā)生器,絕大多數(shù)都是由電子元器件組成的模擬電路構(gòu)成的,其頻率可達(dá)上百兆赫茲,但是體積較大,并且最不利的是損耗大[3-5].本文以多波形智能函數(shù)發(fā)生器為設(shè)計(jì)對(duì)象,描述了利用EDA技術(shù)完成此設(shè)計(jì)的方法,應(yīng)用EDA工具對(duì)函數(shù)發(fā)生器按照設(shè)計(jì)流程完成設(shè)計(jì)并結(jié)合硬件描述語(yǔ)言——VHDL、FPGA的軟件開(kāi)發(fā)平臺(tái)——Quartus II 9.0及EDA/SOPC型實(shí)驗(yàn)開(kāi)發(fā)裝置上配置的編程和仿真工具,完成智能函數(shù)發(fā)生器的各種波形驗(yàn)證,并完成實(shí)驗(yàn)的硬件仿真,顯示仿真的結(jié)果.
本文以6種波形(正弦波、三角波、方波、階梯波、遞增斜波和遞減斜波[6])的顯示為例,采用文本和原理圖的混合輸入方式,以L(fǎng)PM_ROM實(shí)現(xiàn)波形的產(chǎn)生,同時(shí)加入頻率可調(diào)模塊,設(shè)計(jì)框圖如圖1所示,硬件系統(tǒng)通過(guò)輸入信號(hào)來(lái)驅(qū)動(dòng),在不同輸入信號(hào)前提下產(chǎn)生不同的輸出結(jié)果[7].本設(shè)計(jì)的智能函數(shù)發(fā)生器易于使用,可以通過(guò)按鈕選擇波形,也可以通過(guò)頻率的調(diào)節(jié)產(chǎn)生能夠滿(mǎn)足不同人不同場(chǎng)合需要的波形輸出[8].
LPM(Library of Parameterized Modules),參數(shù)可設(shè)置模塊庫(kù),此庫(kù)中包含了豐富的模塊單元,如存儲(chǔ)器、DSP模塊、PLL模塊等[9].方便設(shè)計(jì)者可以根據(jù)自己的需要選擇合適LPM模塊設(shè)計(jì)相應(yīng)的電子系統(tǒng).

圖1 多波形函數(shù)發(fā)生器設(shè)計(jì)框圖

圖2 正弦波部分?jǐn)?shù)據(jù)
存儲(chǔ)器需要的初始化文件進(jìn)行配置,這里采用mif格式文件.mif格式文件的生成方法有:直接編輯法、文件直接編輯法、高級(jí)語(yǔ)言生成法和專(zhuān)用mif文件生成器創(chuàng)建法[2].本文采用專(zhuān)用mif文件生成器——MIF_Maker2010自動(dòng)生成6種波形.要求波形數(shù)據(jù)線(xiàn)寬8位,地址線(xiàn)寬8位,保存后備用,正弦波部分?jǐn)?shù)據(jù)如圖2所示.
(1)波形模塊的生成
LPM_ROM模塊具有非常多的用處,本文調(diào)用并編輯此元件作為波形發(fā)生器的數(shù)據(jù)存儲(chǔ)器,調(diào)入mif文件,分別生成對(duì)應(yīng)的正弦波、三角波、方波、階梯波、遞增斜波和遞減斜波6種波形模塊.正弦波模塊如圖3(a)所示.
(2)頻率控制模塊的生成

…
entity FCT2 is
port(CLK,RST : in std_logic;
key: in std_logic_vector(3 downto 0);
add: out std_logic_vector(7 downto 0));
end FCT2;
architecture behave of FCT2 is
signal A : std_logic_vector(7 downto 0);
signal F : INTEGER RANGE 0 to 30;
BEGIN
P0: PROCESS(CLK,RST)
VARIABLE Q : STD_LOGIC_VECTOR(7 downto 0);
BEGIN
IF RST='0' THEN Q : = (OTHERS=>'0');
ELSIF CLK’EVENT AND CLK= '1' THEN A<=A+F;
END IF;
END PROCESS P0;
P1: PROCESS(KEY)
BEGIN
CASE KEY IS
WHEN "0001" =>F<=2; WHEN"0010"=>F<=4;
WHEN "0011" =>F<=6; WHEN "0100" =>F<=8;
WHEN "0101" =>F<=10; WHEN "0110" =>F<=12;
WHEN "0111" =>F<=14; WHEN "1000" =>F<=16;
WHEN "1001" =>F<=18; WHEN "1010" =>F<=20;
WHEN "1011" =>F<=22; WHEN "1100" =>F<=24;
WHEN "1101" =>F<=26; WHEN OTHERs =>F<=1;
end case;
end process p1;
add<=a;
end behave;
(3)頻率可調(diào)的波形模塊的生成
將頻率控制模塊與ROM生成的正弦波模塊相連組成頻率可調(diào)的正弦波模塊,如圖3(c)所示.
波形選擇模塊仍然采用LPM_MUX實(shí)現(xiàn),實(shí)現(xiàn)過(guò)程同LPM_ROM.sel是選擇控制鍵,通過(guò)sel的值選擇不同的波形輸出.sel的值分別為“0”、“1”、“2”、“3”、“4”、“5”是對(duì)應(yīng)選擇的波形分別為正弦波、三角波、方波、階梯波、遞增斜波和遞減斜波.
調(diào)用以上各個(gè)模塊組合生成函數(shù)發(fā)生器,原理圖如圖4所示.clk是時(shí)鐘信號(hào),rst是復(fù)位信號(hào),key為頻率控制信號(hào),sel為輸出波形控制字.

圖3 正弦波模塊的生成

圖4 多波形函數(shù)發(fā)生器的生成
當(dāng)sel=0時(shí)輸出波形為正弦波,波形仿真圖如圖5所示,數(shù)據(jù)與圖1中相比,證明是正弦波.

圖5 正弦波仿真波形
以階梯波為例顯示頻率變化時(shí)的仿真結(jié)果,如圖6所示.

圖6 頻率變化時(shí)階梯波的仿真波形
波形仿真結(jié)果不能直觀(guān)反應(yīng)測(cè)試結(jié)果,所以,在此調(diào)入邏輯分析儀SignalTap II進(jìn)行顯示,如圖7所示.圖7中圖(a)~(f)為頻率為1 MHz時(shí)的6種波形,圖7(a)為正弦波,圖7(b)為三角波,圖7(c)為方波,圖7(d)為階梯波,圖7(e)為遞增斜波,圖7(f)為遞增斜波.圖7中圖(g)~(k)為頻率改變時(shí)的正弦波,圖7(g)為頻率為7.8 KHz時(shí)正弦波波形,圖7(h)為頻率為15.6 KHz時(shí)正弦波波形,圖7(k)為頻率為31.2 KHz時(shí)正弦波波形.


圖7 邏輯分析儀結(jié)果顯示
本文中的多波形智能函數(shù)發(fā)生器主要采用LPM,生成了頻率可變的方波、三角波、階梯波、正弦波、遞增斜波和遞減斜波6種波形,用邏輯分析觀(guān)察顯示波形結(jié)果,簡(jiǎn)單、直觀(guān),缺點(diǎn)是不是任何頻率的信號(hào)都能產(chǎn)生,這是后續(xù)要改進(jìn)的地方.此實(shí)驗(yàn)說(shuō)明,采用LPM模塊實(shí)現(xiàn)函數(shù)發(fā)生器是可行的,此設(shè)計(jì)方法可以推廣到相似的其它電子系統(tǒng)的設(shè)計(jì)中.
參考文獻(xiàn):
[1] 潘 松,黃繼業(yè).EDA技術(shù)實(shí)用教程——VHDL版[M].5版,北京: 科學(xué)出版社,2014.
[2] 譚會(huì)生,張昌凡.EDA技術(shù)及應(yīng)用[M].2版,西安: 西安電子科技大學(xué)出版社,2006.
[3] 楊麗君.智能數(shù)字式低頻信號(hào)發(fā)生器[J].沈陽(yáng)航空航天大學(xué)學(xué)報(bào),1999,16(1): 42-44.
[4] 任志平,黨瑞榮.基于EDA技術(shù)的智能函數(shù)發(fā)生器的設(shè)計(jì)[J].科學(xué)技術(shù)與工程,2008,8(4): 1 076-1 078.
[5] 林金陽(yáng).基于EDA的智能函數(shù)發(fā)生器的設(shè)計(jì)[J].西安文理學(xué)院學(xué)報(bào):自然科學(xué)版,2010,13(4): 54-56.
[6] 梁向紅.智能函數(shù)發(fā)生器的VHDL設(shè)計(jì)與仿真[J].江蘇工業(yè)學(xué)院學(xué)報(bào),2008,20(3): 66-69.
[7] 侯伯亨,顧 新.VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)[M].西安: 西安電子科技大學(xué)出版社, 2004.
[8] 郝小江,羅 彪.基于FPGA的函數(shù)發(fā)生器[J].電測(cè)與儀表,2008,45:49-51.
[9] 張愛(ài)文.EDA與FPGA應(yīng)用設(shè)計(jì)[M].2版,北京: 電子工業(yè)出版社,2016.
[10] 楊 蕊.基于DDS技術(shù)的實(shí)用信號(hào)源設(shè)計(jì)[D].武漢:華中師范大學(xué),2012.
[11] 王 丹,李 平,文玉梅.采用DDS頻率合成的虛擬信號(hào)發(fā)生器研究[J].傳感技術(shù)學(xué)報(bào),2007,9(3): 586-591.