process (fclk,reset,da) variable porn :std_logic; begin
if reset='1' then da<=\ d_out<=\porn:='0'; else
if fclk='1' and fclk'event then if porn='0' then
if da<=126 then da<=da+1; else porn:='1'; end if; else
if da>0 then da<=da-1; else porn:='0'; 其波形图如下:
4.3正弦波模块
设计程序如下: case tmp is
when 00=>d_out<=255; when 01=>d_out<=254; when 02=>d_out<=252; when 03=>d_out<=249; when 04=>d_out<=245; when 05=>d_out<=239; when 06=>d_out<=233; when 07=>d_out<=225; when 08=>d_out<=217; when 09=>d_out<=207; when 10=>d_out<=197; when 11=>d_out<=186; when 12=>d_out<=174; when 13=>d_out<=162; when 14=>d_out<=150; when 15=>d_out<=137; when 16=>d_out<=124; when 17=>d_out<=112; when 18=>d_out<=99; when 19=>d_out<=87; when 20=>d_out<=75; when 21=>d_out<=64; when 22=>d_out<=53; when 23=>d_out<=43; when 24=>d_out<=34; when 25=>d_out<=26; when 26=>d_out<=19; when 27=>d_out<=13; when 28=>d_out<=8; when 29=>d_out<=4; when 30=>d_out<=1; when 31=>d_out<=0; when 32=>d_out<=0; when 33=>d_out<=1; when 34=>d_out<=4; when 35=>d_out<=8;
when 36=>d_out<=13; when 37=>d_out<=19; when 38=>d_out<=26; when 39=>d_out<=34; when 40=>d_out<=43; when 41=>d_out<=53; when 42=>d_out<=64; when 43=>d_out<=75; when 44=>d_out<=87; when 45=>d_out<=99; when 46=>d_out<=112; when 47=>d_out<=124; when 48=>d_out<=137; when 49=>d_out<=150; when 50=>d_out<=162; when 51=>d_out<=174; when 52=>d_out<=186; when 53=>d_out<=197; when 54=>d_out<=207; when 55=>d_out<=217; when 56=>d_out<=225; when 57=>d_out<=233; when 58=>d_out<=239; when 59=>d_out<=245; when 60=>d_out<=249; when 61=>d_out<=252; when 62=>d_out<=254; when 63=>d_out<=255; when others=>null; end case; end if;
d<=conv_std_logic_vector(d_out,8); end process; end sin_arc;
其波形图如下:
五.系统调试
5.1 嵌入式逻辑分析
随着逻辑设计复杂性的不断增加,仅依赖于软件方式的仿真测试来了了解设计系统
的硬件功能和存在的问题已远远不够了,而需要重复进行的硬件系统的测试也变得更为困难。为了解决这些问题,设计者可以将一种高效的硬件测试手段和传统的系统测试方法相结合。这就是嵌入式逻辑分析仪的使用。
SignalTapII是集成在QuartusII中的嵌入式逻辑分析仪,设计者可以通过SignalTapII在线观察FPGA片内的信号变化,为验证设计提供了非常强大的工具。SignalTapII与仿真是有区别的,仿真是在假设的情况下进行,而SignalTapII是实际运行中观察信号,两者有本质的区别。另外,SignalTapII本身集成在QuartusII中,不需要额外付费,而且使用非常方便。 SignalTapII的工作原理是把要观察的信号预先保存在FPGA的片内RAM中,然后再通过USB‐Blaster传输到计算机,所以可观察信号的数量与FPGA剩余的片内RAM有关,剩余的片内RAM越多,可观察的信号也就越多。 5.2 仿真波形图 1. 方波
2. 三角波
3. 正弦波
5.3 实验结果
1、方波
方波调节占空比:
2、三角波
三角波调节频率和幅度:
3、正弦波
正弦波调节频率和幅度:
六.实验总结 6.1 总结
本次试验是第一次接触QuartusⅡ软件,从一开始按照搜集的资料一点点按部就班的运行软件,到后来不断调试就不断熟练。
感觉只要软件仿真正确后,硬件仿真和实物仿真就简单多了,只是每一步骤都需要很细心。其实每次试验都有这样的感觉,就是很多软件硬件,我们都是用的国外货或者是汉化的国外货,我在想是我们没有必要研制自己的软件,还是我们的能力不行?还是软件作为一种工具,本身已经没有了可以说明的问题? 我本身是具备科研的基本素养的,在实验过程中一般不会感到很压抑,即使很多还不懂,也是还有很大的好奇心,虽然不知道所做的东西未来会不会用的到,但是既然动手花时间做了,我就想做好。 参考文献
[1] Douglas L.Perry.VHDL编程实例(第四版)[M].北京:电子工业出版社.
[2] 张亦华.数字电路EDA入门——VHDL程序实例集[M].北京:北京邮电大学出版社. [3] 赵新民.智能仪器设计基础[M].哈尔滨:哈尔滨工业大学出版社.
[4] 卢毅,赖杰.VHDL与数字电路设计[M].北京:科学出版社,2001:256-261.
[5] 褚振勇,翁木云.FPGA设计及应用[M].西安:西安电子科技大学出版社,2003:1-22. [6] 潘松,黄继业.EDA技术实用教程[M].北京:科学出版社,2003:1-14.