EDA大作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信号发生器的设计
要求:
(1) 产生方波、三角波、锯齿波、正弦波
(2)产生波形的模式可选
(3)频率为10KHz
设计方案:
1.总体设计思路
1.1 设计步骤
此设计将按模块式实现,据设计要求,设计总共分四大步份完成:(1)产生波形(四种波形:方波、三角波、矩形波和锯齿波)信号;(3)频率为10KHZ 幅度固定;
1.2设计思想
利用VHDL编程,依据基本数字电路模块原理进行整合。系统各部分所需工作时钟信号由输入系统时钟信号得到。总体设计框图如下图1所示:
波形输出
2. 方案论证
2.1方案
采用VHDL 语言来编程,然后下载文件到FPGA 来实现。VHDL 语言是电子设计领域的主流硬件描述语言,具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大降低了硬件设计任务,提高了设计效率和可靠性,要比模拟电路快得多。该方案是利用FPGA 具有的静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改,极大地提高了电子系统设计的灵活性和通用性,设计图如图2。
图2 FPGA 总体设计图 (需要修改)
通过FPGA 软件扫描方式将波形数据读出传输给DAC0832(为8分辨率的D/A 转换集成芯片㈠
)产生波形输出。这种方法在软、硬件电路设计上都简单,且与我们的设计思路紧密结合。
3硬件选择
4软件设计
4.1.1 波形产生模块
本设计用VHDL 语言根据傅立叶函数采集点进行扫描,分别产生正弦波、三角波和矩形波。以下介绍各种常用周期信号的傅立叶函数展开式。 4.1.3正弦波
(1)设计思想
正弦波发生分为两个步骤,即正弦波幅值采样存储和正弦波波形的还原输出。幅值采样是将一个周期正弦波进行64等分,如图3所示,将64个采样点
进行量化处理,量化值=255*sin360o
/64(V ),将64点量化值存入存储器ROM 。正弦波形的产生是通过循环反复将存储器中的64点采样值通过DAC0832进行还原输出,得到幅值正比于64点采样值的正弦波。
t
(2)VHDL 实现
1.正弦信号波形数据文件建立
正弦波波形数据由64个点构成,此数据经DAC0832,可在示波器上观察到正弦波形。源程序见附录: 4.1.2 矩形波
1设计思路
矩形波的实现较之正弦波发生简单,由于矩形波是两个电平值间的交替变换,因此波形采样值的预存只要有两个不同的数值就行了,为了使矩形波发生的频率灵活可调,采用60个采样值扫描输出来实现,每半个矩形波周期采用三十个采样值,循环反复将存储器中的60点采样值通过DAC0832进行还原输出,得到幅值正比于点采样值的矩形波。采样图如图4所示。
2 VHDL 实现 源程序见附录。 4.1.
3 三角波
1设计思路
由于三角波是线性的,比较简单就可以产生,如果最低电压设为15V ,最高是255V ,那么根据它的公式255/15=17,每个点的电压只要依次加17就可以得到,一个波形所以采用简单的加减算法就可实现,如图5所示三角波的采样图:
图5 三角波采样图
2 VHDL实现
具体源程序见附录。
4.1.4 基波
通过VHDL编程产生的正弦波、方波、三角波三种周期性波形即为基波。
4.1.5谐波的产生
采用与基波产生的同样原理,编程产生三种波形的谐波,所不同的是一个波形的周期采样的点数不同,如果基波采样点为63个,谐波采样点数则为21个,其每点的电压值为255*(sin360/60+sin360/20)(V),在对其进行循环扫描即可实现基波与谐波的线性叠加。
4.1.6 波形模块图
最终波形的设计模块图如图6所示,L1是三角波,L2是方波,L3是正弦波,L4是谐波。
4.2 频率控制模块
本课题要求频率控制是在10KHZ。在本题设计中只需借助FPGA便可完成。如下图7所示:
4.3 选择波形模块
这一部分主要是通过一个按键对波形进行循环选择,按下确认按钮后进行波形的调用。设计流程图如下图7所示
图6 波形模块图
图7 选择波形电路设计流程图
【实验9】波形发生与扫频信号发生器电路设计
1、实验目的:学习用VHDL设计波形发生器和扫频信号发生器,掌握FPGA对D/A的接口和控制技术,学会LPM_ROM在波形发生器设计中的实用方法。
2、实验原理:如实验图5所示,完整的波形发生器由4部分组成:
∙ FPGA中的波形发生器控制电路,它通过外来控制信号和高速时钟信号,向波形数据ROM发出地址信号,输出波形的频率由发出的地址信号的速度决定;当以固定频率扫描输出地址时,模拟输出波形是固定频率,而当以周期性时变方式扫描输出地址时,则模拟输出波形为扫频信号。
∙波形数据ROM中存有发生器的波形数据,如正弦波或三角波数据。当接受来自FPGA 的地址信号后,将从数据线输出相应的波形数据,地址变化得越快,则输出数据的速度越快,从而使D/A输出的模拟信号的变化速度越快。波形数据ROM可以由多种方式实现,如在FPGA 外面外接普通ROM;由逻辑方式在FPGA中实现(如例6);或由FPGA中的EAB模块担当,如利用LPM_ROM实现。相比之下,第1种方式的容量最大,但速度最慢;,第2种方式容量最小,但速度最最快;第3种方式则兼顾了两方面的因素;
∙D/A转换器负责将ROM输出的数据转换成模拟信号,经滤波电路后输出。输出波形的频率上限与D/A器件的转换速度有重要关系,本例采用DAC0832器件。
DAC0832是8位D/A转换器,转换周期为1µs,其引脚信号以及与FPGA目标器件典型的接口方式如附图2-7所示。其参考电压与+5V工作电压相接(实用电路应接精密基准电压)。DAC0832的引脚功能简述如下:
∙ILE(PIN 19):数据锁存允许信号,高电平有效,系统板上已直接连在+5V上。
∙WR1、WR2(PIN 2、18):写信号1、2,低电平有效。
∙XFER(PIN 17):数据传送控制信号,低电平有效。
∙VREF(PIN 8):基准电压,可正可负,-10V~+10V。
∙RFB(PIN 9):反馈电阻端。
∙IOUT1/ IOUT2(PIN 11、12):电流输出1和2 。D/A转换量是以电流形式输出的,所以必须如实验结构图NO.5所示的连接方式将电流信号变为电压信号。
∙AGND/DGND(PIN 3、10):模拟地与数字地。在高速情况下,此二地的连接线必须尽可能短,且系统的单点接地点须接在此连线的某一点上。
例6中的正弦波波型数据由64个点构成,此数据经DAC0832,并经滤波器后,可在示波器上观察到光滑的正弦波(若接精密基准电压,可得到更为清晰的正弦波形)。
3、实验内容1:根据示例例6,及以上的设计原理,完成波形发生器和扫频信号源的设计,仿真测试及实验系统上的硬件测试。
硬件实验中注意DAC0832及滤波电路须接+/-12V 电压。然后将实验系统左下角选择插针处用短路帽短路“D/A直通”,而“滤波1”,“滤波0”处通过短路或不接短路帽达到不同的滤波方式。将示波器的地与EDA实验系统的地相接,信号端与“AOUT”信号输出端相接;建议CLK接clock0,由此50MHz频率,此频率扫描波形数据;CLK1接clock5,由此接“1024Hz”,此频率决定扫频速度;选电路模式1;KK接键8,当为高电平时,正弦波点频输出,11位输入数据DATA由键3、键2和键1控制,信号源的输出频率由此3键输入的12位二进制数决定,数值越大,输出频率越高;“FD0”时为最高频率;键8低电平时,正弦波扫频输出,扫频速度由clock5的频率决定。输向0832的8位数据由DD输出。
实验图5 波形发生器电路系统结构图