基于VHDL语言的简易信号发生器_第1页
基于VHDL语言的简易信号发生器_第2页
基于VHDL语言的简易信号发生器_第3页
基于VHDL语言的简易信号发生器_第4页
基于VHDL语言的简易信号发生器_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于基于 VHDLVHDL 语言的简易信号发生器语言的简易信号发生器 1 1 设计方案设计方案 1 1 1 1 系统功能要求系统功能要求 函数信号发生器是一种能够产生多种波形 如三角波 锯齿波 矩形波 含方 波 正弦波等波形的电路 函数信号发生器在电路实验和设备检测中具有十分广泛 的用途 现在我们通过对函数信号发生器的原理以及构成设计一个能变换出三角波 正弦波 方波的简易发生器 1 1 2 2 总体框图总体框图 本设计由信号产生 信号选择 信号控制输出三大模块组合而成 其中信号产生模块 有 三角波模块 方波模块 正弦波模块 本设计采用K0 K2这三个按键为信号选择开关 选择信号产生模块输出的信号 其控制模块 SIG CONTROL 是由数据选择器实现对以上三 种信号的选择 并产生相应波形 系统顶层设计图如图所示 图中左边为三个输入信号k0 k1 k2 clk clrn 信号选择开关 时钟信号和复位开关 主要模块有 三角波信号 delta 方波信号 square 正弦信号的发生器 sin 各一个 数据 选择器 sig control 2 2 模块功能设计模块功能设计 2 2 1 1 三角波模块三角波模块 该模块部分VHDL 源程序如下 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY delta IS port clk clrn IN STD LOGIC q OUT STD LOGIC VECTOR 7 DOWNTO 0 END delta ARCHITECTURE a OF delta IS BEGIN PROCESS clk clrn VARIABLE tmp STD LOGIC VECTOR 7 DOWNTO 0 VARIABLE f STD LOGIC BEGIN IF clrn 0 THEN tmp 00000000 ELSIF clk EVENT AND clk 1 THEN IF f 0 THEN IF tmp 11111110 THEN tmp 11111111 f 1 ELSE tmp tmp 1 END IF ELSE IF tmp 00000001 THEN tmp 00000000 f 0 ELSE tmp tmp 1 END IF END IF END IF q tmp END PROCESS END a 2 2 2 2 方波模块方波模块 该模块部分VHDL 源程序如下 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY square IS PORT clk clrn IN STD LOGIC q OUT STD LOGIC VECTOR 7 downto 0 END square ARCHITECTURE a OF square IS SIGNAL f STD LOGIC BEGIN PROCESS clk clrn VARIABLE tmp STD LOGIC VECTOR 7 downto 0 BEGIN IF clrn 0 THEN tmp 00000000 ELSE IF clk event and clk 1 THEN IF tmp 11111111 THEN tmp 00000000 ELSE tmp tmp 1 END IF IF tmp 10000000 THEN f 1 ELSE f 0 END IF END IF END IF END PROCESS PROCESS clk f BEGIN IF clk event and clk 1 THEN IF f 1 THEN q 11111111 ELSE q 00000000 END IF END IF END PROCESS END a 2 2 3 3 正弦波模块正弦波模块 该模块部分VHDL 源程序如下 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY sin IS PORT clk clrn IN STD LOGIC q OUT INTEGER RANGE 255 DOWNTO 0 END sin ARCHITECTURE A OF sin IS BEGIN PROCESS clk clrn VARIABLE tmp INTEGER RANGE 63 DOWNTO 0 BEGIN IF clrn 0 THEN qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqNULL END CASE END IF END IF END PROCESS END a 2 2 4 4 数据选择器模块数据选择器模块 该模块部分VHDL 源程序如下 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY sig control IS PORT delta square sin IN STD LOGIC d0 d1 d2 IN STD LOGIC VECTOR 7 DOWNTO 0 q OUT STD LOGIC VECTOR 7 DOWNTO 0 END sig control ARCHITECTURE behave OF sig control IS SIGNAL sel STD LOGIC VECTOR 2 DOWNTO 0 BEGIN selqqqNULL END CASE END PROCESS END behave 3 3仿真波形及分析仿真波形及分析 各部分模块完成后 用Quartus 对程序编译 仿真 得到的仿真波形 各模块仿真波形及 顶层仿真波形如下 3 13 1三角波模块仿真三角波模块仿真 clk 时钟信号 clrn 复位信号 低电平清零 k0k1k2 100 控制输出三角波 Q 7 0 输出 0 255 0 三角波 3 23 2方波模块仿真方波模块仿真 clk 时钟信号 clrn 复位信号

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论