衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

以FPGA芯片為載體設計一個多功能信號發(fā)生器

電子工程師 ? 來源:未知 ? 作者:胡薇 ? 2018-10-14 09:17 ? 次閱讀

信號發(fā)生器又稱為波形發(fā)生器, 是一種常用的信號源,廣泛應用于電子電路、通信、控制和教學實驗等領域。它是科研及工程實踐中最重要的儀器之一, 以往多用硬件組成,系統(tǒng)結構比較復雜,可維護性和可操作性不佳。隨著計算機技術的發(fā)展,信號發(fā)生器的設計制作越來越多的是用計算機技術,種類繁多,價格、性能差異很大。用FPGACPLD 來實現(xiàn),它的優(yōu)點是可以進行功能仿真,而且FPGA 和CPLD 的片內資源豐富,設計的流程簡單。用FPGA 所構成的系統(tǒng)來產(chǎn)生波形信號,這個系統(tǒng)既能和主機系統(tǒng)相連,用相應的上層軟件展示波形信號, 又方便程序的編寫, 而且還有A/D0809接口可以產(chǎn)生模擬信號的輸出和外面的示波器相連。

1 正弦信號發(fā)生器的LPM 定制

正弦信號發(fā)生器由計數(shù)器或地址發(fā)生器(6 位)、正弦信號數(shù)據(jù)ROM (6 位地址線,8 位數(shù)據(jù)線, 含有64 個8 位數(shù)據(jù), 一個周期)、原理圖頂層設計和8 位D/A ( 實驗中用DAC0832 代替)。

其框圖如圖1 所示。其中信號產(chǎn)生模塊將產(chǎn)生所需的各種信號,這些信號的產(chǎn)生可以有多種方式,如用計數(shù)器直接產(chǎn)生信號輸出,或者用計數(shù)器產(chǎn)生存儲器的地址,在存儲器中存放信號輸出的數(shù)據(jù)。信號發(fā)生器的控制模塊可以用數(shù)據(jù)選擇器實現(xiàn), 用8 選1 數(shù)據(jù)選擇器實現(xiàn)對5 種信號的選擇。

圖1 信號發(fā)生器結構框圖

最后將波形數(shù)據(jù)送入D/A 轉換器,將數(shù)字信號轉換為模擬信號輸出。用示波器測試D/A 轉換器的輸出,可以觀測到5 種信號的輸出。

1.1 定制初始化數(shù)據(jù)文件

QuartusII 能接受的LPM_ROM 模塊中的初始化數(shù)據(jù)文件的格式有兩種:。mif 格式文件和。hex 格式文件。實際應用中只要使用其中一種格式的文件即可。下面采用。mif 格式文件,調出產(chǎn)生ROM 數(shù)據(jù)文件大小的選擇窗。根據(jù)64 點8 位正弦數(shù)據(jù)的情況,可選ROM 的數(shù)據(jù)數(shù)Number 為64,數(shù)據(jù)寬Word size 取8 位。單擊OK 按鈕,將出現(xiàn)圖2 所示的空的。mif數(shù)據(jù)表格,表格中的數(shù)據(jù)格式可通過鼠標右鍵單擊窗口邊緣的地址數(shù)據(jù)彈出的窗口選擇。

圖2 .mif 數(shù)據(jù)表格

將波形數(shù)據(jù)填入mif 文件表中也可以使用QuartusII 以外的編輯器設計MIF 文件,其格式如下:

#include

#include "math.h"

main()

{int i;float s;

for (i=0;i<1024; i++)

{ s = sin(atan(1)*8*i/1024);

printf("%d : %d;\n",i,(int)((s+1)*1023/2)); }}

把上述程序編譯成程序后, 可在DOS 命令行下執(zhí)行命令:

romgen > sin_ rom. mif;

1.2 定制LPM 元件

打開Mega Wizard Plug_In Manager 初始對話框, 選擇Create a new custom… 項。單擊Next 按鈕后,選擇Storage 項下的LPM_ROM, 再選擇ACEX1K 器件和VHDL 語言方式;最后輸入ROM 文件存放的路徑和文件名:F:\sing_gnt\data_rom (定制的ROM 元件文件名),單擊Next 按鈕,選擇ROM 控制線、地址線和數(shù)據(jù)線。這里選擇地址線位寬和ROM 中數(shù)據(jù)數(shù)分別為6 和64; 選擇地址鎖存控制信號inclock。

對于地址信號發(fā)生器的設計。方法一:用VHDL 語言設計6 位計數(shù)器,產(chǎn)生其元件符號;方法二:仍采用LPM 定制的方法。

1.3 完成頂層設計

按圖3 畫出頂層原理圖,然后進行編譯,波形仿真如圖4所示。

圖3 簡易正弦信號發(fā)生器頂層電路設計

圖4 當前工程仿真波形輸出

對當前設計通過執(zhí)行Quartus II 的命令Create ∠ Update/ Create Symbol Files for Current File,可以為設計電路建立一個元件符號,以便被頂層設計多功能信號發(fā)生器所調用。

2 其他信號部分原程序

其他各信號發(fā)生器可參照正弦信號發(fā)生器的設計方法設計或直接采用VHDL 硬件描述語言進行設計。

LIBRARY IEEE;--遞增鋸齒波的設計

USE IEEE.STD LOGIC 1164.ALL;

USE IEEE.STD LOGIC UNSIGNED.ALL;

ENTITY signal2 IS --遞增鋸齒波signal1

PORT(clk,reset:IN std_logic;--復位信號reset, 時鐘信號clk

q:OUT std_logic_vector (7 DOWNTO 0));--輸出信號q

END signal2;

ARCHITECTURE b OF signal2 IS

BEGIN

PROCESS(clk,reset)

VARIABLE tmp:std_logic_vector(7 DOWNTO 0);

BEGIN

IF reset='0' THEN

tmp:="00000000";

ELSIT rising_ege(clk)THEN

IF tmp="11111111"THEN

tmp:="00000000";

ELSE

tmp:=tmp+1; --遞增信號的變化

END IF;

END IF;

q<=tmp:

END PROCESS;

END b;

LIBRARY IEEE;--方波的設計

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

entity signal5 is --方波signal5

PORT(clk,reset:in std_logic; --復位信號reset,時鐘信號clk

q:out std_logic_vector (7 DOWNTO 0)); --輸出信號q,8 位數(shù)字信號

END signal5;

ARCHITEECTURE a OF signal5 IS

SIGNAL; a:std_logic;

BEGIN

PROCESS(clk,reset)

YARIABLE tmp:std_logic_vector(7 downto 0);

BEQIN

IF reset='0' then

a<='0';

elsif rising_edge(clk)THEN

IF tmp="11111111" THEN

tmp:="00000000";

ELSE

tmp:=tmp+1;

END IF;

if tmp<="10000000" then

a<='1';

else

a<='0';

END IF;

END IF;

END PROCESS;

PROCESS(clk,a)

BEGIN

IF rising_edge(clk)THEN

IF a='1' THEN

q<="11111111";

ELSE

q<="00000000";

END IF;

END IF;

END PROCESS;

END a;

3 頂層電路的設計

將上述6 個模塊生成符號,供頂層電路調用。這些模塊分別是:遞減鋸齒波信號產(chǎn)生模塊signall、遞增鋸齒波信號產(chǎn)生模塊signal2、三角波信號產(chǎn)生模塊signal3、階梯波信號產(chǎn)生模塊signal4、方波信號產(chǎn)生模塊signal5 和數(shù)據(jù)選擇器mux51。頂層電路的連接如圖5 所示。

圖5 信號發(fā)生器頂層電路

4 D/A 轉換器的連接

選擇一個D/A 轉換器,將數(shù)據(jù)選擇器的輸出與D/A 轉換器的輸入端連接。D/A 轉換器的可選范圍很寬,這里以常用的DAC0832 為例。DAC0832 的連接電路如圖6 所示。

圖6 DAC0832 的連接電路

5 實現(xiàn)與測試

信號發(fā)生器頂層電路的仿真波形如圖7 所示,這里只就輸入選擇信號等于5 時的情況進行仿真,此時輸出波形是方波,輸出的數(shù)字信號為周期性的全0 或全1。

圖7 信號發(fā)生器頂層電路的仿真波形

信號發(fā)生器的底層電路模塊也可以分別進行仿真,例如對階梯波信號產(chǎn)生模塊signal4 進行仿真,仿真波形如圖8 所示,輸出的數(shù)字信號為階梯狀變化。

圖8 階梯波信號產(chǎn)生模塊signal4 的仿真波形

6 結束語

硬件電路設計主要是設計相關模塊的設計思想的可視化,是相關模塊的電路圖的匯總和其相關仿真波形的集錦,該部分條理清晰,思路明確,從中我們可以清晰地看到該設計方案的具體模塊和整個設計的原理結構實圖;程序設計這一部分主要闡述該設計的設計方法與設計思想,進一步從軟件設計上揭示設計構思,主要包含了整個設計所用到的模塊的硬件描述語言的設計, 本文設計思路清晰,通過QuartusII 軟件進行波形仿真成功,特別是正弦信號發(fā)生器的LPM 定制對于編程不是特別強的人員提供另一種途徑來實現(xiàn),加深理解EDA 的層次設計思想,很好的把握住了教學的改革方向,更好的鍛煉了學生理論聯(lián)系實踐的能力。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1630

    文章

    21796

    瀏覽量

    605973
  • 信號發(fā)生器

    關注

    28

    文章

    1480

    瀏覽量

    109023

原文標題:基于FPGA的信號發(fā)生器設計

文章出處:【微信號:FPGAer_Club,微信公眾號:FPGAer俱樂部】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    種電路簡單、成本低廉,簡易多功能信號發(fā)生器

    簡易多功能信號發(fā)生器信號發(fā)生器種,在生產(chǎn)實踐和科研領域中有著廣泛的應用。在研制、生產(chǎn)、測試
    的頭像 發(fā)表于 02-26 09:40 ?3.2w次閱讀
    <b class='flag-5'>一</b>種電路簡單、成本低廉,簡易<b class='flag-5'>多功能</b><b class='flag-5'>信號</b><b class='flag-5'>發(fā)生器</b>

    通過LPM_ROM模塊和VHDL語言核心設計多功能信號發(fā)生器

    FPGA芯片載體, 通過QuartusII 的LPM_ROM 模塊和VHDL 語言核心設計
    的頭像 發(fā)表于 10-23 10:05 ?1.4w次閱讀
    通過LPM_ROM模塊和VHDL語言<b class='flag-5'>為</b>核心設計<b class='flag-5'>多功能</b><b class='flag-5'>信號</b><b class='flag-5'>發(fā)生器</b>

    基于CPLD和單片機的多功能信號發(fā)生器

    基于CPLD和單片機的多功能信號發(fā)生器
    發(fā)表于 08-25 08:51

    基于FPGA多功能圖像目標發(fā)生器的設計與實現(xiàn)

    本文介紹了種基于FPGA 的圖像目標發(fā)生器的設計方法,介紹了它的設計原理、硬件電路結構、各功能的實現(xiàn)方法。該圖像發(fā)生器能產(chǎn)生灰度階圖像、靜
    發(fā)表于 09-02 11:16 ?27次下載

    多功能函數(shù)信號發(fā)生器的設計及電路圖

    摘要:介紹了種采用傳統(tǒng)的信號發(fā)生器的原理結合直接數(shù)字波形合成(DDS) 技術、高速DPA、APD 轉換技術、數(shù)字信號處理(DSP) 技術和智能儀器儀表技術而設計的
    發(fā)表于 03-21 17:37 ?628次下載
    <b class='flag-5'>多功能</b>函數(shù)<b class='flag-5'>信號</b><b class='flag-5'>發(fā)生器</b>的設計及電路圖

    基于FPGA LPM多功能信號發(fā)生器設計

    FPGA芯片載體,通過QuartusII的LPM_ROM模塊和VHDL語言核心設計
    發(fā)表于 08-15 11:00 ?92次下載
    基于<b class='flag-5'>FPGA</b> LPM<b class='flag-5'>多功能</b><b class='flag-5'>信號</b><b class='flag-5'>發(fā)生器</b>設計

    基于FPGA信號發(fā)生器設計

    FPGA 芯片載體, 通過QuartusII 的LPM_ROM 模塊和VHDL 語言核心設
    發(fā)表于 09-26 14:05 ?8688次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>信號</b><b class='flag-5'>發(fā)生器</b>設計

    信號發(fā)生器原理_DDS芯片及應用_DDS信號發(fā)生器設計

    本專題匯集了四十種DDS信號發(fā)生器各部分資料,包括信號發(fā)生器原理,DDS芯片及應用,信號
    發(fā)表于 06-23 10:41
    <b class='flag-5'>信號</b><b class='flag-5'>發(fā)生器</b>原理_DDS<b class='flag-5'>芯片</b>及應用_DDS<b class='flag-5'>信號</b><b class='flag-5'>發(fā)生器</b>設計

    基于FPGA的正弦信號發(fā)生器

    基于FPGA的正弦信號發(fā)生器的 技術論文
    發(fā)表于 10-30 10:39 ?20次下載

    基于FPGA多功能圖像目標發(fā)生器的設計與實現(xiàn)

    基于FPGA多功能圖像目標發(fā)生器的設計與實現(xiàn)
    發(fā)表于 08-30 15:10 ?6次下載

    基于FPGA和PWM的多路信號發(fā)生器設計

    基于運放的信號發(fā)生器精度低且穩(wěn)定性和可調節(jié)性差,而基于DDS的信號發(fā)生器則成本高、電路復雜。為此提出了基于FPGA+PWM的多路
    發(fā)表于 11-18 09:42 ?6952次閱讀
    基于<b class='flag-5'>FPGA</b>和PWM的多路<b class='flag-5'>信號</b><b class='flag-5'>發(fā)生器</b>設計

    DG4000系列多功能信號發(fā)生器介紹

    DG4000系列是集函數(shù)發(fā)生器,任意波形發(fā)生器,脈沖發(fā)生器,諧波發(fā)生器,模擬/數(shù)字調制,頻率計等功能
    的頭像 發(fā)表于 03-02 16:36 ?1127次閱讀
    DG4000系列<b class='flag-5'>多功能</b><b class='flag-5'>信號</b><b class='flag-5'>發(fā)生器</b>介紹

    EDA程序設計之多功能信號發(fā)生器的設計

    1.1 設計要求1.1.1 設計任務 設計并實現(xiàn)基于FPGA多功能信號發(fā)生器。1.1.2
    發(fā)表于 08-22 10:17 ?1次下載

    如何設計并實現(xiàn)基于FPGA多功能信號發(fā)生器

    多功能信號發(fā)生器的原理框圖如圖所示。其中,CLKGEN是分頻,提供的50MHz的主頻率進行分頻,得到滿足
    發(fā)表于 08-25 16:34 ?2663次閱讀
    如何設計并實現(xiàn)<b class='flag-5'>一</b><b class='flag-5'>個</b>基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>多功能</b><b class='flag-5'>信號</b><b class='flag-5'>發(fā)生器</b>?

    信號發(fā)生器如何輸出直流信號

    信號發(fā)生器多功能的測試設備,用于產(chǎn)生各種波形、頻率和幅度的電信號
    的頭像 發(fā)表于 05-20 16:02 ?2277次閱讀
    百家乐游戏单机牌| 基础百家乐官网的玩法技巧和规则| 百家乐桌布9人| 金臂百家乐官网开户送彩金| 网上玩百家乐会出签吗| 八大胜百家乐官网娱乐城| 博亿线上娱乐城| 虎和鼠做生意和财吗| 全讯网| 网上的百家乐怎么才能赢| 百家乐官网群| 百家乐官网投注哪个信誉好| 澳门顶级赌场官网| 24 山杨公斗首择日吉凶| 真人百家乐官网作假视频| 貔喜脉动棋牌下载| 百家乐缆法排行榜| 百家乐官网送现金200| 88娱乐城天上人间| 冠赌球网| 劳力士百家乐的玩法技巧和规则 | 网站百家乐官网博彩| 安溪县| 网络赌博游戏| 明升备用网址 | 大发888娱乐场 ylc8| 大发888-娱乐平台| 免水百家乐的玩法技巧和规则| 百家乐平技巧| 百家乐官网赢一注| 真人百家乐官网赌城| 桦南县| 金狮国际| 龙口市| 鲁甸县| 澳门葡京赌场图片| 娱乐城送白菜| 全讯网新2| KK百家乐的玩法技巧和规则| 海立方百家乐客户端| 百家乐官网平注常赢玩法技巧|