一种波形产生数字电路设计及仿真

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一种波形产生数字电路设计及仿真

1设计原理

DDS 直接频率合成技术是一种直接从相位的角度合成所需波形的技术。此设计旨在设计一个模拟波形的产生电路,采用quartus ii 软件作为可编程逻辑设计环境,该软件有两种设计方式,原理图输入和采用HDL 语言输入,实现模拟波形的产生。数字电路设计包含组合逻辑电路和时序逻辑电路设计,其中组合逻辑电路的设计是设计的重点。因此需要对时钟有较强的理解。本设计可以采用Verilog HDL 硬件描述语言编写程序实现波形的产生,可以产生三种波形,正弦波,方波以及三角波。其中正弦波调用quartus 自带的IP 核,通过单端口的ROM 来查表获得查表数据,通过调用ip 可以实现设计要求。方波和三角波虽然也可以通过此方式,但是也可以通过编写计数器分频实验来实现设计,方波可以直接通过半个周期信号为低电平,半个周期为高电平。三角波通过将计数器的值先增加后减少获得。波形产生电路在电子设计中占据很重要的地方,有一定的研究价值。

2功能描述

(1)实现正弦波、三角波、方波的输出;

(2)信号输出通过各个波形的使能信号来区分输出何种波形;

(3)信号调节方式可控,这里由于是仿真故没编写按键扫描程序; FPGA 的设计流程如下:

系统框图如图所示:

3设计定义

4 HDL语言编写流程

设计代码包含设计时钟分频进程、三角波产生进程、方波产生进程和信号输出电路进程。其中每个进程通过过程语句always来通过敏感信号如时钟上升沿和异步复位信号时钟下降沿来采样。其中设计流程图如下图所示:

5设计代码

见附录

6验证及仿真

仿真的方式有功能仿真和时序仿真,要设计这么一款电路,首先需要通过功能仿真。工具有quartus ii自带的波形仿真文件和编写顶层设计的testbench 测试程序来进行仿真。其中可以设置仿真时间、仿真精度、以及信号的输入类型定义和数值,设置好这些数据就可以进行仿真,不过采用testbench仿真相对复杂一点,需要用到modelsim软件来仿真,优点是仿真时间和仿真精度可以更高,仿真波形也相对较美观。

一个最基本的Testbench包含三个部分,信号定义、模块接口和功能代码。编写Testbench的三个基本步骤:

1、对被测试设计的顶层接口进行例化;

2、给被测试设计的输入接口添加激励;

3、判断被测试设计的输出相应是否满足设计要求。

方式一:采用波形仿真

(1)首先新建一个仿真波形文件,save 为.vwf的文件格式。

设置仿真输入输入输出变量及其仿真波形初始化设置,具体配置如下。

(2)开始功能仿真设置

由于设计综合后需要观察,输入变量是否能对输出变量进行控制,需要先进行功能仿真,在Processing->Simulation Tool下面,选择功能仿真Function,仿真输出加入你保存的波形文件,点击Start开始仿真,等待一定时间,生成Report 同时quartus波形仿真功能还可以设置仿真的结束时间,默认为1us,这里根据要求可以将时间设置到50us,以便于更好的观察波形。

正弦信号功能仿真图

这里仿真的时钟周期设置为10ns,而1-ROM中数据需要通过address地址端来自增才能在qout端口输出ROM中保存的数据,address通过时钟上升沿触发来控制,相当于时钟对其进行采样。

方波输出功能仿真图

方波的输出,其实就是在一个周期中,一半时间处于高电平,一半时间处于低电平,故其波形相对其他几种波形较容易实现。

三角波功能仿真图

要输出三角波,需要定义一个计数变量0~255之间取值,然后在0~255处于计数上升,255~0处于计数递减。

锯齿波功能仿真图

锯齿波的形成类似于三角波,但是上升时间与下降时间不同。

RTL传输图

下面是该系统的寄存器传输水平的电路图。

方式二:采用Testbench仿真

仿真代码附录所示。

板级验证图

7设计总结

通过本次设计了解了FPGA的开发流程,以及如何运用EDA工具进行数字电路的开发,学会了简单的使用HDL语言,主要是Verilog HDL语言进行开发。基本了解了设计过程的如何去验证程序,如何检验时序是否符合设计要求。过程犯了很多错误,总结得出,程序书写的规范性是很重要的,只有书写规范了,才能更好的检测到错误所在,模块设计的设计思想是很重要的,首先编写好各个底层模块,顶层模块通过调用子层模块的来设计,如果一个设计要求用到系统分频后的时钟,不能直接用计数器分频的时钟作为其他模块的时钟,可以采用时钟使能的方

式,增加一个使能信号来控制其他模块的时钟。

相关文档
最新文档