BEGIN
PROCESS(CLK,en,reset ) --LPM_ROM地址发生器进程 BEGIN
if reset='0' then Q1<=\
elsif CLK'EVENT AND CLK = '1' and en='1' THEN Q1<=Q1+1; --Q1作为地址发生器计数器 END IF;
END PROCESS;
u1 : sinx PORT MAP(address=>Q1, q => DOUT,inclock=>CLK);--例化 END;
斜波扫描电路 LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; --正弦信号发生器源文件 USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY xiebos IS
PORT ( CLK,en ,reset: IN STD_LOGIC; --信号源时钟
DOUT : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) );--8位波形数据输出 END xiebos;
ARCHITECTURE behave OF xiebos IS
COMPONENT xiebo --调用波形数据存储器LPM_ROM文件:datarom.vhd声明 PORT(address : IN STD_LOGIC_VECTOR (7 DOWNTO 0);--8位地址信号 inclock : IN STD_LOGIC ;--地址锁存时钟
q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) ); END COMPONENT;
SIGNAL Q1 : STD_LOGIC_VECTOR (7 DOWNTO 0); --设定内部节点作为地址计数器 BEGIN
PROCESS(CLK,en,reset ) --LPM_ROM地址发生器进程 BEGIN
if reset='0' then Q1<=\
elsif CLK'EVENT AND CLK = '1' and en='1' THEN Q1<=Q1+1; --Q1作为地址发生器计数器 END IF;
END PROCESS;
u1 : xiebo PORT MAP(address=>Q1, q => DOUT,inclock=>CLK);--例化 END;
方波扫描电路 LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; --正弦信号发生器源文件 USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY fangbos IS
PORT ( CLK,en ,reset: IN STD_LOGIC; --信号源时钟
DOUT : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) );--8位波形数据输出 END fangbos;
ARCHITECTURE behave OF fangbos IS
COMPONENT fangbo --调用波形数据存储器LPM_ROM文件:datarom.vhd声明 PORT(address : IN STD_LOGIC_VECTOR (7 DOWNTO 0);--8位地址信号 inclock : IN STD_LOGIC ;--地址锁存时钟
q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) ); END COMPONENT;
SIGNAL Q1 : STD_LOGIC_VECTOR (7 DOWNTO 0); --设定内部节点作为地址计数器 BEGIN
PROCESS(CLK,en,reset ) --LPM_ROM地址发生器进程 BEGIN
if reset='0' then Q1<=\
elsif CLK'EVENT AND CLK = '1' and en='1' THEN Q1<=Q1+1; --Q1作为地址发生器计数器 END IF;
END PROCESS;
u1 : fangbo PORT MAP(address=>Q1, q => DOUT,inclock=>CLK);--例化 END;
三角波扫描电路 LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; --正弦信号发生器源文件 USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY sanjiaos IS
PORT ( CLK,en ,reset: IN STD_LOGIC; --信号源时钟
DOUT : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) );--8位波形数据输出 END sanjiaos;
ARCHITECTURE behave OF sanjiaos IS
COMPONENT sanjiao --调用波形数据存储器LPM_ROM文件:datarom.vhd声明 PORT(address : IN STD_LOGIC_VECTOR (7 DOWNTO 0);--8位地址信号 inclock : IN STD_LOGIC ;--地址锁存时钟
q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) ); END COMPONENT;
SIGNAL Q1 : STD_LOGIC_VECTOR (7 DOWNTO 0); --设定内部节点作为地址计数器 BEGIN
PROCESS(CLK,en,reset ) --LPM_ROM地址发生器进程 BEGIN
if reset='0' then Q1<=\
elsif CLK'EVENT AND CLK = '1' and en='1' THEN Q1<=Q1+1; --Q1作为地址发生器计数器 END IF;
END PROCESS;
u1 : sanjiao PORT MAP(address=>Q1, q => DOUT,inclock=>CLK);--例化 END; 方波仿真
三、各模块仿真结果
斜波仿真
三角仿真
正弦仿真
四选一仿真
二四译码器
四、实验感悟
大学的生活就要接近尾声,为了巩固我们所学的专业知识,学院为我们开设了这门实验课,说真的我十分喜欢FPGA课程,因为从一开始我就认准这个行业会是将来发展的热门行业,因此我不仅把全部的精力投注到了这门实验上,而且为了进一步学到多的知识,我选择了有关FPGA的毕业设计课题。在这次的试验站一开始我是承担的是小组组长的职责,但是到最后我才发现此次的课设成员工作分配出现了极大的错误,幸好我及时的纠正了这个错误,最后让每一个小组成员都参与到了其中的工作中来。我感到非常的荣幸,能有这么好的队友,他们踏实肯干,不偷懒,协调大家的每一个进程,让这个课题到最后能够完美的结束。
在此次的课题中我极大地应用到了quartues2软件,不仅仅是代码的仿真,而且在其中的出现的每一个问题我都得到了深入的理解,这将对我的毕业设计有很大的帮助,至少我是这么想的。我通过对此次的课程进行完成,更加强烈的爱上了这门课程。在这里我感谢在课程中指导我们的王老师跟刘老师,如果不是他们的细心指导,我们的工作也不知道会不会完美完成,在此我再次感谢他们的指导。