最近在使用QUARTUSII设计直接数字频率合成器,用VHDL语言编写各个模块并单独设计仿真后需要把模块综合起来使用,虽然可以将各个模块单独生成.bsf文件,再使用原理图连接,但终归违背了语言的初衷。查阅资料,发现VHDL语言的元件调用语句成分可以实现单独的模块综合调用!
一下以直接数字频率合成器为例进行说明!其中涉及到的有普通模块的调用,ROM存储器的调用!
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY tot IS--定义震哥哥系统的输入输出端口
port(
INCLK: in STD_LOGIC;--inital clock--总的时钟频率接口,我的是48MHZ,进行3分频得到1MHZ作为模块时
钟
SINO:OUT STD_LOGIC_VECTOR(9 DOWNTO 0);--正弦波输出总端口
COSO:OUT STD_LOGIC_VECTOR(9 DOWNTO 0);--余弦波输出总端口
KL:IN STD_LOGIC_VECTOR(3 DOWNTO 0);--4位频率累加器中的步数N
KH:IN STD_LOGIC_VECTOR(3 DOWNTO 0));--4位相位控制字
END tot;
architecture TA OF tot IS--对单独模块进行元件定义
COMPONENT adder IS--相位累加器中的加法器
PORT