女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

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

電子工程師 ? 來源:未知 ? 作者:王淳 ? 2018-10-23 10:05 ? 次閱讀

FPGA芯片為載體, 通過QuartusII 的LPM_ROM 模塊和VHDL 語言為核心設計一個多功信號發生器,根據輸入信號的選擇可以輸出遞增鋸齒波、遞減鋸齒波、三角波、階梯波和方波等5 種信號,通過QuartusII 軟件進行波形仿真、定時分析,仿真正確后,利用實驗板提供的資源,下載到芯片中實現預定功能。

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

1 正弦信號發生器的LPM 定制

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

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

圖1 信號發生器結構框圖

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

1.1 定制初始化數據文件

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

圖2 .mif 數據表格

將波形數據填入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 命令行下執行命令:

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 控制線、地址線和數據線。這里選擇地址線位寬和ROM 中數據數分別為6 和64; 選擇地址鎖存控制信號inclock。

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

1.3 完成頂層設計

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

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

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

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

2 其他信號部分原程序

其他各信號發生器可參照正弦信號發生器的設計方法設計或直接采用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 位數字信號

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 個模塊生成符號,供頂層電路調用。這些模塊分別是:遞減鋸齒波信號產生模塊signall、遞增鋸齒波信號產生模塊signal2、三角波信號產生模塊signal3、階梯波信號產生模塊signal4、方波信號產生模塊signal5 和數據選擇器mux51。頂層電路的連接如圖5 所示。

圖5 信號發生器頂層電路

4 D/A 轉換器的連接

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

圖6 DAC0832 的連接電路

5 實現與測試

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

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

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

圖8 階梯波信號產生模塊signal4 的仿真波形

6 結束語

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


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

    關注

    1643

    文章

    21950

    瀏覽量

    613737
  • ROM
    ROM
    +關注

    關注

    4

    文章

    578

    瀏覽量

    86961
  • vhdl
    +關注

    關注

    30

    文章

    819

    瀏覽量

    129525
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    信號發生器PM調制信號設置

    通過精準生成各種類型的電信號,模擬和測試不同電路和系統的響應。信號發生器的種類多樣,其中PM(相位調制)調制信號設置,作為其中一種重要
    的頭像 發表于 02-20 16:56 ?502次閱讀
    <b class='flag-5'>信號</b><b class='flag-5'>發生器</b>PM調制<b class='flag-5'>信號</b>設置

    基于555電路的頻率發生器

    基于555電路的頻率發生器是一種常用的電子電路,它能夠產生穩定且可調的頻率信號。以下是對基于555電路的頻率發生器的介紹: 一、工作原理 555電路是一種多功能的集成電路,其
    的頭像 發表于 11-12 10:35 ?1171次閱讀

    信號發生器怎么輸出調制信號的頻率

    發生器的基本原理 信號發生器核心原理是利用振蕩產生周期性的電信號,然后
    的頭像 發表于 06-03 15:24 ?1909次閱讀

    信號發生器單位怎么換mv

    在電子測量領域,信號發生器是一種非常重要的儀器,它能夠產生各種類型的電信號,如正弦波、方波、三角波等。信號發生器的輸出電壓通常以毫伏(mV)
    的頭像 發表于 06-03 14:19 ?1623次閱讀

    數字信號發生器怎么調有效值

    數字信號發生器(Digital Signal Generator,簡稱DSG)是一種用于產生各種數字信號的設備,廣泛應用于通信、電子測量、自動測試等領域。數字信號
    的頭像 發表于 06-03 14:14 ?2298次閱讀

    數字序列信號發生器如何測量

    數字序列信號發生器(Digital Sequence Signal Generator,簡稱DSSG)是一種用于生成數字序列信號的設備。它廣泛應用于通信、雷達、電子對抗等領域。本文將詳細介紹數字序列
    的頭像 發表于 06-03 14:04 ?870次閱讀

    信號發生器是干什么用的 信號發生器可以輸出電流嗎

    領域。 信號發生器的工作原理 信號發生器核心是振蕩,它負責產生周期性的電
    的頭像 發表于 06-03 11:29 ?2855次閱讀

    信號發生器如何設置頻率幅值范圍

    波形,然后通過放大器和濾波調整波形的幅度和頻率。信號發生器通常可以產生正弦波、方波、三角波等不同類型的波形。 2. 頻率設置 頻率是信號
    的頭像 發表于 06-03 11:21 ?6222次閱讀

    信號發生器怎么輸出直流電壓的

    詳細介紹如何使用信號發生器輸出直流電壓。 信號發生器的基本原理 信號發生器
    的頭像 發表于 06-03 11:13 ?4178次閱讀

    信號發生器頻率怎么調

    信號發生器是一種電子設備,用于產生具有特定頻率、幅度和波形的電信號。這些信號可以用于測試和校準各種電子設備,如放大器、濾波、振蕩
    的頭像 發表于 06-03 11:06 ?2857次閱讀

    信號發生器功能和使用方法是什么

    發生器功能、分類、使用方法以及應用場景。 一、信號發生器功能 產生標準信號
    的頭像 發表于 06-03 11:01 ?4771次閱讀

    信號發生器的sync什么意思

    信號發生器是一種電子設備,用于產生具有特定頻率、幅度和波形的電信號。這些信號可以用于測試和測量電子設備的性能,或者作為其他電子系統的輸入信號
    的頭像 發表于 06-03 10:59 ?4824次閱讀

    信號發生器的使用方法 信號發生器的幅值是有效值嗎

    信號發生器是一種電子設備,用于生成具有特定特性的電信號,如正弦波、方波、鋸齒波等。信號發生器廣泛應用于測試和測量領域,如電子電路設計、通信系
    的頭像 發表于 06-03 10:56 ?4559次閱讀

    函數信號發生器的各類按鍵

    在電子測試和測量的領域中,函數信號發生器是一種不可或缺的重要工具。它能夠模擬產生各種波形信號,如正弦波、方波、三角波等,電路測試、信號模擬
    的頭像 發表于 05-30 16:05 ?2206次閱讀

    任意波形發生器和矢量信號發生器有什么區別

    在電子測試與測量領域,任意波形發生器(Arbitrary Waveform Generator,簡稱AWG)和矢量信號發生器是兩種常見的信號源設備。它們各自具有獨特的
    的頭像 發表于 05-30 16:02 ?4612次閱讀