多功能信号发生器设计报告.doc
文本预览下载声明
重庆大学城市科技学院电气学院
EDA课程设计报告
题 目: 多功能信号发生器
专 业: 电子信息工程
班 级: 2006级03班
小 组: 第12组
学号及姓名: 春
志磊
浩真
指导教师 : 戴琦琦
设计日期 : 2009-6-19
多功能信号发生器设计报告
一、设计题目
运用所掌握的VHDL语言,设计一个信号发生器,要求能输出正弦波、方波、三角波、锯齿波,并且能改变其输出频率以及波形幅度,能在示波器上有相应波形显示。
二、课题分析
(1).要能够实现四种波形的输出,就要有四个ROM(64*8bit)存放正弦波、方波、三角波、锯齿波的一个周期的波形数据,并且要有一个地址发生器来给ROM提供地址,ROM给出对应的幅度值。
(2).因为要设计的是个时序电路,所以要实现输出波形能够改变频率,就必须对输入的信号进行分频,以实现整体的频率的改变。
(3).设计要求实现调幅,必须对ROM输出的幅度信息进行处理。最简单易行的方法是对输出的8位的幅度进行左移(每移移位相当于对幅度值行除以二取整的计算),从而达到幅度可以调节的目的。同时为了方便观察,应再引出个未经调幅的信号作为对比。
三、设计的具体实现
1、系统概述
系统应该由五个部分组成:分频器(DVF)、地址发生器(CNT6B)、四个ROM模块(data_rom_sin、data_rom_sqr、data_rom_tri、data_rom_c)、四输入多路选择器mux、幅度调节单元w。
2、?单元电路设计与分析
外部时钟信号经过分频器分频后提供给地址发生器和ROM,四个ROM的输出接在多路选择器上,用于选择哪路信号作为输出信号,被选择的信号经过幅度调节单元的幅度调节后连接到外部的D/A转换器输出模拟信号。
分频器(DVF)
分频器(DVF)的RTL截图
分频器(DVF)的源代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY DVF IS
PORT( D_MODE: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
D_CLK: IN STD_LOGIC;
D_OUT: OUT STD_LOGIC);
END DVF;
ARCHITECTURE behav of DVF IS
SIGNAL FULL: STD_LOGIC;
BEGIN
P_REG: PROCESS(D_CLK)
VARIABLE CNT8:STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
IF D_CLKEVENT AND D_CLK=1 THEN
IF CNT8=1111 THEN
CNT8:=D_MODE;
FULL=1;
ELSE CNT8:=CNT8+1;
FULL=0;
END IF;
END IF;
END PROCESS P_REG;
P_DIV:PROCESS(FULL)
VARIABLE CNT2:STD_LOGIC;
BEGIN
IF FULLEVENT AND FULL=1 THEN
CNT2:=NOT CNT2;
IF CNT2=1 THEN D_OUT=1; ELSE D_OUT=0;
END IF;
END IF;
END PROCESS P_DIV;
END behav;
(2)地址发生器(CNT6B)
地址发生器(CNT6B)的RTL截图
地址发生器(CNT6B)的源代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CNT6B IS
PORT (C_CLK,C_RST,C_EN : IN STD_LOGIC;
C_OUT : OUT STD_LOGIC_VECTOR(5 DOWNTO 0));
END CNT6B;
ARCHITECTURE behav OF CNT6B IS
SIGNAL CQI : STD_LOGIC_VECTOR(5 DOWNTO
显示全部