文档介绍:基于VHDL语言信号发生器的设计
1、设计目的
1) 掌握使用EDA工具设计信号发生器系统的设计思路和设计方法,体会使用EDA综合过程中电路设计方法和设计思路的不同,理解层次化设计理念。
2) 熟悉在Quartus II环境中,用文本输入方式与原理图输入方式完成电路的设计,同时掌握使用这两种方式相结合的EDA设计思路。
3) 通过这一部分的学习,对VHDL语言的设计方法进行进一步的学习,对其相关语言设计规范进行更深层次的掌握,能够更加熟练的做一些编程设计
2、设计的主要内容和要求
通过使用VHDL语言及Quartus II软件,设计多功能信号发生器的每个模块,将正弦波模块,方波模块,三角波模块,阶梯波模块创建相应的元件符号,同时设计好4选1数据选择器模块,再通过原理图输入方式,将各个模块组合起来,设计成一个完整的多种信号发生器电路,同时将各个模块单独进行仿真,设计各个模块的仿真波形,最后进行总原理图电路仿真,设计该信号发生器的总的仿真波形。
信号发生器:体现在它能自动的实现四种波形的转换。
根据题目的分析与整体构思可知,要完成设计任务必须完成以下要求:
1、设计好用于波形切换的四路数据选择器selector4_1;
2、设计好用于总电路设计的各个信号输出模块;
3、设计好数模(D/A)转换器。
3、整体设计方案
基本设计方案:在现有单一信号发生器的基础上,加上其它信号模块,通过组合与设计,用数模转换器(D/A)将选中的信号源发出的信号由数字信号转换为模拟信号,再用示波器显示出来
,。
信号发生器由各个单一信号模块组合而成,其中信号产生模块将产生所需的各种信号,信号发生器的控制模块可以用数据选择器实现,用4选1数据选择器实现对四种信号的选择。最后将波形数据送入D/A转换器,将数字信号转换为模拟信号输出。用示波器测试D/A转换器的输出,可以观测到4种信号的输出。
信号发生器结构框图
通过查找资料把各类信号模块的程序输入到Quartus Ⅱ中进行运行仿真,每一步都要慎重小心,错误难免的,还需要通过课本和资料一一更正。
最后,在前面模块做好的基础上再考虑如何输出波形的问题,通过对四种波形采样就可以得到。
4、硬件电路的设计与软件设计
根据题目分析与整体构思可知,要完成设计任务必须设计出以下模块:
该模块产生以64个时钟为一个周期的正弦波。
其VHDL语言源程序代码如下所示:
LIBRARY IEEE;
USE ;--打开库文件
USE ;
ENTITY sinqi IS
PORT ( clk : IN STD_LOGIC;--声明clk是标准逻辑位类型的输入端口 clr : IN STD_LOGIC; --声明clr是标准逻辑位类型的输入端口
d : OUT integer range 0 to 255); --声明d是标准逻辑向量类型的--输出端口
END sinqi;
ARCHITECTURE sinb OF sinqi IS
BEGIN
PROCESS(clr,clk)
variable temp:integer range 0 to 63;
BEGIN
IF clr='0' THEN d<=0; --clr为低电平d为0
ELSIF clk'EVENT AND clk= '1' THEN --clk为上升沿
IF temp=63 THEN temp:=0;
ELSE
temp:=temp+1;
END IF;
CASE temp IS
when 00=>d<=255;when 01=>d<=254;when 02=>d<=252;
when 03=>d<=249;when 04=>d<=245;when 05=>d<=239;
when 06=>d<=233;when 07=>d<=225;when 08=>d<=217;
when 09=>d<=207;when 10=>d<=197;when 11=>d<=186;
when 12=>d<=174;when 13=>d<=162;when 14=>d<=150;
when 15=>d<=137;when 16=>d<=124;when 17=>d<=112;
when 18=>d<=99;when 19=>d<=87;when 20=>d<=75;
when 21=>d<=64;when 22=>d<=53;when 23=>d<=43;
when 24=>d<