基于FPGA LPM多功能信号发生器设计
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 IP 嵌入式 PLD CPLD SoC 数字信号处理 消费电子 相关文章:
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 基于FPGA的快速并行FFT及其在空间太阳望远镜图像锁定系统中的应用(06-21)
- 3DES算法的FPGA高速实现(06-21)
- 用FPGA实现FFT算法(06-21)
- FPGA的DSP性能揭秘(06-16)