您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页EDA论文

EDA论文

来源:意榕旅游网
陕西理工学院EDA结课论文

《EDA技术与应用》

系班级:姓 名:学 号:

结课论文

物理系电信081班 ### 08100640##

1

陕西理工学院EDA结课论文

基于VHDL语言的正负脉宽信号发生器的设计

姓名###

(陕西理工学院物理系,陕西汉中,723000)

摘 要:本设计通过采用VHDL语言分别进行8位可自加载加法计数器,正负脉宽数控调

制信号发生器的设计,来实现能够利用两个8位预置数进行正负脉宽的控制,从而完成正负脉宽信号发生器的设计,预置数的设定通过开关按键进行控制。

关键词:信号发生器,加法器,正负脉宽

1.引言

信号发生器在测量中作为信号源的应用是非常广泛的,传统的信号源设计常采用模拟分立元件,可产生脉宽的调制,并通过调整外部元件改变输出占空比,但由于采用模拟器件,所用元件的分散性太大,也因参数与外部元件有关(外接的电阻电容对参数影响很大),使占空比稳定度较差,精度低,抗干扰能力低,成本也高;况且其灵活性较差,因此,就要寻求一种新的信号发生器方案,以解决以上问题。

正负脉宽信号发生器在测量中作为信号源的应用是非常广泛的,要得到一个占空比稳定的矩形波的方法很多。此设计的正负脉宽信号发生器能够产生占空比不同的矩形波波,根据预置数的设定,可以得到想要的占空比,并通过开关进行预置数的设定。

1. 正负脉宽信号发生器的设计思路

正负脉宽信号发生器主要由2个8位可自加载加法计数器和正负脉宽信号控制器组成。正负脉宽信号发生器的总体框图如图1所示。图中输出clk接在时钟端。a,b分别输入预置数,进行正负脉宽的设定,pout输出你所设定的占空比的脉宽。

图1 正负脉宽信号发生器的总体框图

2. 模块及模块的功能

2

陕西理工学院EDA结课论文

模块zj8见图2。它是8位可自加载加法计数器。

图2 模块zj8

利用VHDL语言设计8位可自加载加法计数器,其程序为:

library ieee; if ld='1' then count<=d; use ieee.std_logic_1164.all; else count<=count+1; entity zj8 is end if; port(clk:in std_logic; end if; ld:in std_logic; end process; d:in integer range 0 to 255; process(clk,count) cao:out std_logic); begin end zj8; if clk'event and clk='1' then architecture art of zj8 is if count=255 then cao<='1'; signal count:integer range 0 to 255; else cao<='0'; begin end if; process(clk) is end if; begin end process; if clk'event and clk='1' then end art;

通过仿真得出结果如图3所示

本设计的核心元件就是8位可自加载加法计数器,实现正负脉冲的设计,和参数的可调,实现任意占空比的矩形波的产生。

3

陕西理工学院EDA结课论文

设计的控制框图图4如下:

图4 正负脉宽信号发生器控制图

3. 正负脉宽可控信号发生器的总体仿真结果及源程序

由于本模块只是单一的模块,没有任何的仿真波形的输出,系统的上层软件设计源程序如下:

library ieee; signal ps:std_logic; use ieee.std_logic_1164.all; begin entity pulse is u1:zj8 port port(clk:in std_logic; map(clk=>clk,ld=>ld1,d=>a,cao=>cao1) a:in std_logic_vector(7 downto ; 0); u2:zj8 port b:in std_logic_vector(7 downto map(clk=>clk,ld=>ld2,d=>b,cao=>cao20); ); pout:out std_logic); process(cao1,cao2) is end pulse; begin architecture art of pulse is if cao1='1' then ps<='0'; component zj8 is elsif cao2'event and cao2='1' then port(clk:in std_logic; ps<='1'; ld:in std_logic; end if; d:in std_logic_vector(7 end process; downto 0); ld1<=not ps; cao:out std_logic); ld2<=ps; end component zj8; pout<=ps; signal cao1,cao2:std_logic; end art; signal ld1,ld2:std_logic;

4

陕西理工学院EDA结课论文

设计的整体程序运用了学习的元件例化的方式,实现模块之间的完整的衔接。正负脉宽信号发生器的仿真的波形图如图5:

图5正负脉宽信号发生器的仿真的波形图

4. 仿真注意事项

在整个设计的进行过程中,一定要注意的两个问题,下面分别给我遇到的问题和解决办法给介绍如下:

1) 设计的元件例化的源文件一定要和总体的文件放在同一个文件夹下,否则

在你的仿真过程中,你会遇到VHDL程序的错误,文件的加载如下图6:

图6 文件正确加载图

2)

仿真中,一定要根据你的VHDL程序对于输入的设定,进行仿真时钟的设定。否则可能在你的VHDL程序没有错误,可是你的仿真波形却是没法仿真出来,所以一定要把仿真的时序设定好。

5. 结束语

通过这个课题,成功实现了正负脉宽信号发生器的设计。通过整个系统的软件调试,实现了任意占空比的矩形波输出的功能,通过在quartusII9.0实际编程,证明:这种设计是合理和正确的。另外,其可以在课题中进行三角波的设计,也可以进行振幅可调,由于期末时间的限制和考试的逼近,整个设计只是尽快的完成,其中有很多可以进行功能增强和改善的地方。我会在在后续的时间里,进行更为细致的研究和实时的仿真,最后谢谢卢老师一直对我们的照顾,支持和鼓励,让我们可以大胆放手去做。

注:本论文已用,仅作论文形式参考。

5

陕西理工学院EDA结课论文

6

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务