基于vhdl的智能函数发生器的设计毕业论文设计word格式内容摘要:

的设计输入、处理和校验功能全部集成在统一的开发环境下,这样可以加快动态调试进程。 它提供丰富的库单元供设计者使用,包括 74系列的全部器件、多种特殊的逻辑宏功能( macrofunction)和参数化功能模块( LPM: Library of Parameterized Modules),但更为重要的是 Max Plus II 还提供了原理图输入多层次设计功能,使得用户能设计更大规模的电路系统,以及使用方便、精度良好 的时序仿真器。 与传统的数字电路实验相比, Max Plus II 提供灵活多样的层次化输入设计功能,具有显著的优势: 1.能进行任意层次的数字系统设计。 传统的数字电路实验只能完成单一层次的设计,使设计者无法了解和实现多层次的硬件数字系统设计。 2.对系统中的任一层次或任一元件的功能进行精确的时序仿真,精度达 ,因此能发现对系统可能产生不良影响的竞争冒险现象。 3.通过时序仿真,能迅速定位电路系统的错误所在,并随时纠正。 4.能对设计方案进行随时更改,并储存设计过程中所有的电路和测试文件入档。 5.通过编 译和下载,能在 FPGA 或 CPLD 上对设计项目随时进行硬件测试验证。 6.如果使用 FPGA 和配置编程方式,将不会有器件损坏和损耗问题。 7.符合现代电子设计技术规范。 传统的数字电路实验利用手工连线的方法完成元 基于 VHDL语言的移位寄存器的设计 第 7页 共 29页 件连接,容易对学习者产生误导,以为只要将元件间的引脚用引线按电路图连上即可,而不必顾及引线长短,粗细弯曲方式,可能产生的分布电感和电容效应,以及电磁兼容性等等十分重要的问题。 Max Plus II 还提供设计校验的仿真器,其中包括功能仿真和时序仿真。 仿真器的灵活性很强电路设计完成后,需要验证电路设计的逻辑 功能是否正确。 这是一项简单的逻辑检查,可采用功能仿真,这对于初步的逻辑功能检测非常方便。 功能检查完成后,可进行时序仿真。 Max Plus II 的时序分析程序可以计算点到点的器件延时,确定器件引脚上的建立时间和保持时间要求,还可计算最高时钟频率。 用 Max Plus II 软件进行逻辑设计的步骤包括: 1.根据所选课题的任务和设计指标要求,确定总体设计方案,画出总体方案的系统框图(亦称预设计阶段)。 2.进行底层单元电路分析及输入设计、编译、仿真。 3.利用已编译正确的底层单元电路模块,画出顶层电路的原理图 , 进行编译调试和仿真测试。 4.撰写设计报告。 图 Max Plus II 设计流程图 基于 VHDL语言的移位寄存器的设计 第 8页 共 29页 3 智能函数发生器设计过程 设计规划 本设计是基于 VHDL 语言设计的智能函数发生器,函数发生器是一种很常用的器件,在很多情况下,最常用的波形是正弦波,方波,三角波,递增,递减斜波和阶梯波六种。 虽然用模拟电子线路很容易得到这些波形,但是这种方法会使硬件线路较为繁琐,而且模拟线路会受到干扰。 本设计采用综合设计方法使用 FPGA 来实现智能函数发生器,它由六个波形产生模块及波形选择输出模块组成,波形选择模块的输出 q 接在 D/A 转换的数据端,就可以在 D/A输出端得到想要的其中之一的任一种光滑的波形。 各模块工作原理及设计 ( 1)智能函数发生器的工作原理 智能函数发生器主要由七大模块组成,其中六大模块是用来产生常用的波形图,包括正弦波,方波,三角波,递增,递减谐波和阶梯波六种波。 在这六个模块中,每个都有两个输入端口,分别是时钟信号端口 CLK, CLK 输入时钟脉冲,时钟上升沿有效,和复位清零信号 RESET,当高电平有效时,系统恢复初始状态;每个模块还有一个输出端口,输出对应的波形函数。 另一大模块就是波形选择模块, SEL【 2..0】为输出选择信号,该信号的不同取值对应递增斜波、递减斜波、方波、三角波、正弦波、阶梯波六种不同的输出; Q【 7..0】为输出信号,根据输出函数选择信号 SEL【 2..0】的取值输出相应的波形。 其完整电路原理图如图 所示。 基于 VHDL语言的移位寄存器的设计 第 9页 共 29页 图 完整电路原理图 ( 2) 三角波函数模块的设计 电路符号:三角波函数工作原理框图。 如图 所示。 图 三角波函数工作原理框图 图中 CLK为时钟输入信号, CLR 为复位清零信号, Q【 7..0】为输出波形函数。 三角波函数发生器由 VHDL 程序实现,下面是其 VHDL 代码: LIBRARY IEEE。 USE IEEE.。 USE。 ENTITY jcb IS PORT (clk,reset: IN STD_LOGIC。 q:OUT STD_LOGIC_VECTOR (7 DOWNTO 0))。 END jcb。 ARCHITECTURE behave OF jcb IS BEGIN PROCESS (clk,reset) VARIABLE tmp: STD_LOGIC_VECTOR (7 DOWNTO 0)。 VARIABLE a: STD_LOGIC。 BEGIN IF reset=39。 039。 THEN tmp:=00000000。 ELSIF clk39。 EVENT AND clk=39。 139。 THEN 基于 VHDL语言的移位寄存器的设计 第 10页 共 29页 IF a=39。 039。 THEN IF tmp=11111110THEN tmp:=11111111。 a:=39。 139。 ELSE tmp:=tmp+1。 END IF。 ELSE IF tmp=00000001THEN tmp:=00000000。 a:=39。 039。 ELSE tmp:=tmp1。 END IF。 END IF。 END IF。 q=tmp。 END PROCESS。 END behave。 ( 3) 递减谐波模块的设计 电路符号:递减谐波函数发生器工作原理框图。 如图 所示。 图 递减谐波发生器原理框图 其实现 VHDL 代码如下: LIBRARY IEEE。 USE IEEE.。 USE IEEE.。 ENTITY dj IS PORT (clk,reset: IN STD_LOGIC。 q:OUT STD_LOGIC_VECTOR (7 DOWNTO 0))。 END dj。 ARCHITECTURE behave OF dj IS BEGIN PROCESS (clk,reset) VARIABLE tmp: STD_LOGIC_VECTOR (7 DOWNTO 0)。 BEGIN IF reset=39。 039。 THEN tmp:=11111111。 ELSIF clk39。 EVENT AND clk=39。 139。 THEN 基于 VHDL语言的移位寄存器的设计 第 11页 共 29页 IF tmp=00000000THEN Tmp:=11111111。 ELSE tmp:=tmp1。 END IF。 END IF。 q=tmp。 END PROCESS。 END behave。 ( 4)递增谐波模块设计 电路符号:递增谐波发生器工作原理框图。 如图 所示。 图 递增谐波发生器工作原理图 其实现 VHDL 代码如下: LIBRARY IEEE。 USE IEEE.。 USE。 ENTITY dz IS PORT (clk,reset: IN STD_LOGIC。 q:OUT STD_LOGIC_VECTOR (7 DOWNTO 0))。 END dz。 ARCHITECTURE behave OF dz IS BEGIN PROCESS (clk,reset) VARIABLE tmp: STD_LOGIC_VECTOR (7 DOWNTO 0)。 BEGIN IF reset=39。 039。 THEN tmp:=00000000。 ELSIF clk39。 EVENT AND clk=39。 139。 THEN IF tmp=11111111THEN tmp:=00000000。 ELSE tmp:=tmp+1。 END IF。 END IF。 q=tmp。 END PROCESS。 END behave。 ( 5)阶梯波函数发生器模块的设计 基于 VHDL语言的移位寄存器的设计 第 12页 共 29页 电路符号:阶梯波函数发生器的原理框图,如图 所示。 图 阶梯波函数发生器原理框图 其实现代码如下: library ieee。 use。 use。 entity jtb is port(clk,reset:in std_logic。 q:out std_logic_vector(7 downto 0))。 end jtb。 architecture a of jtb is begin process(clk,reset) variable tmp:std_logic_vector(7 downto 0)。 begin if reset=39。 039。 then tmp:=00000000。 else if clk39。 event and clk=39。 139。 then if tmp=11111111 then tmp:=00000000。 else tmp:=tmp+16。 end if。 end if。 end if。 q=tmp。 end process。 end a。 ( 6)方波函数发生器模块的设计 电路符号:方波函数发生器的原理框图,如图 所示。 图 方波函数发生器原理框图 其实现代码如下: LIBRARY IEEE。 基于 VHDL语言的移位寄存器的设计 第 13页 共 29页 USE IEEE.。 ENTITY fb IS PORT (clk,reset: IN STD_LOGIC。 q:OUT INTEGER RANGE 0 TO 255)。 END fb。 ARCHITECTURE behave OF fb IS SIGNAL a: BIT。 BEGIN PROCESS (clk,reset) VARIABLE t: INTEGER range 0 to 31。 BEGIN。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。