函数信号发生器6341128

上传人:nt****6 文档编号:37182721 上传时间:2018-04-08 格式:DOC 页数:17 大小:761.50KB
返回 下载 相关 举报
函数信号发生器6341128_第1页
第1页 / 共17页
函数信号发生器6341128_第2页
第2页 / 共17页
函数信号发生器6341128_第3页
第3页 / 共17页
函数信号发生器6341128_第4页
第4页 / 共17页
函数信号发生器6341128_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《函数信号发生器6341128》由会员分享,可在线阅读,更多相关《函数信号发生器6341128(17页珍藏版)》请在金锄头文库上搜索。

1、3.3.23.3.2 基于基于 FPGAFPGA 的典型开发系统设计实例的典型开发系统设计实例-函数信号发生器函数信号发生器1 功能描述 利用 GW48-CK 实验开发系统设计一个函数信号发生器, 要求能够输出三角波、方波、 梯形波、阶梯波等波形,可通过按键选择输出不同波形。 2 设计思路 函数信号发生器的原理框图如图 3-11 所示。FPGA 芯片选用 ACEX 1K30TC144-3, D/A 选用 8 位数模转换器 DAC0832,滤波器采用有源滤波,GW48-CK 实验开发系统选 择模式 5。FPGA 芯片D/A 滤波器图 3-11 多波形函数信号发生器原理框图3系统程序设计首先采用

2、VHDL 语言分别编写锯齿波(斜降) 、三角波、锯齿波(斜升) 、阶梯波 (上升) 、正弦波、方波、梯形波、双阶梯波以及八选一数据选择器的程序,各程序如下:(1)锯齿波(斜降)程序 LIBRARY IEEE; USE IEEE. STD_LOGIC_1164.ALL; USE IEEE. STD_LOGIC_UNSIGNED.ALL; ENTITY dcrs IS PORT (clk,reset: IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR (7 DOWNTO 0); END dcrs; ARCHITECTURE behave OF dcrs IS BEGINPRO

3、CESS (clk,reset)VARIABLE tmp: STD_LOGIC_VECTOR (7 DOWNTO 0);BEGINIF reset=0THENtmp:=“11111111“;ELSIF clkEVENT AND clk=1THENIF tmp=“00000000“THENTmp:=“11111111“;155第 3 章 可编程逻辑器件应用系统设计应用系统设计ELSEtmp:=tmp-1;END IF;END IF;q tmp:=0;when 64 to 127 = tmp:=85; when 128 to 191 = tmp:=170; when 192 to 255 = tm

4、p:=255; when others = tmp:=0; end case; END IF;qclk, address=Q1, q = q); END; 此正弦波形的产生方法是通过调用 FPGA 中的 LPM 兆功能块实现的。LPM 是参数 可设置模块,通过修改 LPM 模块的参数,可以获得不同的逻辑功能,而原理图并不改变, 从而使复杂的电子设计变得简单化,设计的效率和可靠性也有了很大的提高。 利用 LPM 产生正弦信号的原理是先把一个正弦波形按相位量化的幅值存储在 ROM 里,通过查找 ROM,输出相应地址里的幅值,合成一个正弦波。正弦波形数据 ROM 由 LPM_ROM 模块构成。LPM

5、_ROM 中初始化数据文件的格式为.MIF 格式,可以用 C 语言 或 MATLAB 生成.MIF 数据文件。采用 MATLAB 生成 64 点正弦波形数据的具体步骤如 下: 1) 创建正弦波形数据。 在 MATLAB 命令窗口中输入如下命令: a=round(127*sin(0:2*pi/(26):2*pi)+127) 这样就可生成地址为 64、最大幅值为 255 的正弦波形数据,数据内容为 127 139 152 164 176 187 198 208 217 225 233 239 244 249 252 253 254 253 252 249 244 239 233 225 217 2

6、08 198 187 176 164 152 139 127 115 102 90 78 67 56 46 37 29 21 15 10 5 2 1 0 1 2 5 10 15 21 29 37 46 56 67 78 90 102 115。 2) 生成.MIF 文件。 在 QUARTUS II 中选择 NewOther FilesMemory Initialization File,选择 ROM 的地址数 Number 为 64,数据宽 Word size 取 8 位,即创建了一个.MIF 的数据表格, 将 MATLAB 中生成的 64 点正弦波数据复制到此表格中,保存并命名为 SIN_RO

7、M,则可 以创建一个.MIF 文件,该 MIF 文件内容如下: WIDTH=8; DEPTH=64; ADDRESS_RADIX=UNS; DATA_RADIX=UNS; CONTENT BEGIN 0 : 127; 1 : 139; 2 : 152; 3 : 164;159第 3 章 可编程逻辑器件应用系统设计应用系统设计4 : 176; 5 : 187; 6 : 198; 7 : 208; 8 : 217; 9 : 225; 10 : 233; 11 : 239; 12 : 244; 13 : 249; 14 : 252; 15 : 253; 16 : 254; 17 : 253; 18

8、: 252; 19 : 249; 20 : 244; 21 : 239; 22 : 233; 23 : 225; 24 : 217; 25 : 208; 26 : 198; 27 : 187; 28 : 176; 29 : 164; 30 : 152; 31 : 139; 32 : 127; 33 : 115; 34 : 102; 35 : 90; 36 : 78; 37 : 67; 38 : 56; 39 : 46; 40 : 37; 41 : 29; 42 : 21;160现代电子系统设计教程43 : 15; 44 : 10; 45 : 5; 46 : 2; 47 : 1; 48 : 0;

9、 49 : 1; 50 : 2; 51 : 5; 52 : 10; 53 : 15; 54 : 21; 55 : 29; 56 : 37; 57 : 46; 58 : 56; 59 : 67; 60 : 78; 61 : 90; 62 : 102; 63 : 115; END; 3) 定制 LPM_ROM 模块。 在 QUARTUS II 中选择 ToolsMega Wizard Plug-In ManagerCreate a new custom megafunction vatiation 定制一个新的模块,在左栏选择 Memory Compiler 项下的 ROM:1-PORT,再在右栏

10、选择器件系列为 ACEX1K,器件描述语言为 VHDL,输入 ROM 文件存 放的路径和文件名,然后单击 Next;选择 ROM 数据位为 8 位,地址数为 64,再次单击 Next(这里要注意的是去掉输出数据时钟锁存信号前的勾) ;在 File name 栏选择指定路径所保存的 SIN_ROM.MIF 文件,继续单击 Next,再单击 Finish 后完成了 SIN_ROM 的定制,之后会自动生成一个用 VHDL 语言描述的 SIN_ROM 模块,以便在主 程序中调用。 (6)方波程序 LIBRARY IEEE; USE IEEE. STD_LOGIC_1164.ALL; ENTITY sq

11、uare ISPORT (clk,reset: IN STD_LOGIC;q:OUT INTEGER RANGE 0 TO 255); END square; ARCHITECTURE behave OF square IS161第 3 章 可编程逻辑器件应用系统设计应用系统设计SIGNAL a: BIT; BEGINPROCESS (clk,reset)VARIABLE cnt: INTEGER RANGE 0 TO 63;BEGINIF reset=0THENA tmp:=tmp+4;when 64 to 127 = tmp:=255; when 128 to 190 = tmp:= tm

12、p-4; when 192 to 255 = tmp:=0; when others = tmp:=0; end case;END IF;q tmp:=0;when 32 to 63 = tmp:=85; when 64 to 95 = tmp:=170; when 96 to 127 = tmp:=255; when 128 to 159 = tmp:=255;when 160 to 191 = tmp:=170;when 192 to 223 = tmp:=85;when 224 to 255 = tmp:=0;when others = tmp:=0; end case; END IF;

13、qqqqqqqqqNULL; END CASE;END PROCESS;164现代电子系统设计教程END behave;其次在 Quartus II 中用图形输入法绘制函数信号发生器的顶层电路如图 3-12 所示。165第 3 章 可编程逻辑器件应用系统设计应用系统设计VCCSEL2.0INPUTVCCCLKINPUTVCCRESETINPUTDOUT7.0OUTPUTclkresetq7.0DCRS1clkresetq7.0DELTA2clkresetq7.0ICRS3clkresetq7.0LADDER_UP4clkresetq7.0SIN5clkresetq7.0TRAP7clkrese

14、tq7.0LADDER_DOWN_UP8sel2.0d07.0d17.0d27.0d37.0d47.0d57.0d67.0d77.0q7.0MUX81a9NOT10clkresetq7.0SQUARE6图 3-12 函数信号发生器顶层电路166现代电子系统设计教程该函数信号发生器在 Quartus II 中的仿真波形如图 3-133-20 所示。图 3-13 锯齿波(斜降)仿真波形图 3-14 三角波仿真波形图 3-15 锯齿波(斜升)仿真波形167第 3 章 可编程逻辑器件应用系统设计应用系统设计图 3-16 阶梯波(上升)仿真波形图 3-17 正弦波仿真波形图 3-18 方波仿真波形168

15、现代电子系统设计教程图 3-19 梯形波仿真波形图 3-20 双向阶梯波仿真波形在 Quartus II 中设定管脚,参见表 3-3。表 3-3 管脚设定信号名称(参考)EP1K30TC144-引脚信号含义GW48-CK 按键CLK126时钟RESET19复位键 8SEL08状态选择 0键 1SEL19状态选择 1键 2SEL210状态选择 2键 3DO041数据输出位 0DO142数据输出位 1DO265数据输出位 2DO367数据输出位 3DO468数据输出位 4DO569数据输出位 5DO670数据输出位 6DO772数据输出位 7169第 3 章 可编程逻辑器件应用系统设计应用系统设计编译完成后下载到 GW48-CK 实验开发系统中,通过示波器观测输出信号的波形如 图 3-213-28 所示(滤波后信号) ,此时 cl

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号