+基于FPGA的多功能信号发生器

合集下载

基于FPGA技术的多功能DDS信号发生器设计

基于FPGA技术的多功能DDS信号发生器设计

·16·仪表技术2007年第8期基于FPGA技术的多功能DDS信号发生器设计蔡丽1,翟小东1,高云红2(1.中国矿业大学信电学院,江苏徐州221008;2.沈阳航空工业学院自动控制系,辽宁沈阳110034)摘要:介绍DDS的基本理论及新型FPGA器件(EPlKl0)的特点,并结合EPIKIO对DDS信号发生器的设计过程及优化方案进行论述。

最终实现频率、相位、复合渡形皆可调节的直接数字合成的信号发生器。

关键词:直接数字合成器;单片机;FPGA;复合波形中图分类号:TM930文献标识码:B文章编号:1006—2394(2007)08—0016—02ADesignofMulti-purposeDDSSignalGeneratorBasedonFPGATechnologyCAILil.ZHAIXiao.don91,GAOYun.hon92(1.CollegeofInformationandElectricalEngineeringofCUMT,Xuzhou221008,China;2.DepartmentofAutomaticControl,ShenyangInstituteofAeronauticalEngineering,Shenyang110034,China)Abstract:ThebasictheoryofDigitalDirectSynthesizerandmainpointofnewFPGAdeviceEPlK10,andhowtoimplementtheDDSsignalgeneratordesignwithinEPlK10introducedinthispaper.TheDDSsignalgeneratorwhichcanadjustsignalphase,signalfrequencyandcomplexwaveisdesigned.Keywords:directdigitalsynthesizer;singlechipmicrocomputer;FPGA;complexwave1多功能直接数字频率合成DDS原理假设正弦信号的表达式为如下:Y=Asin(p+妒o)(1)Y=Asin(2rrfi+够o)=Asin2-rr(fi+90/2曩-)(2)式(1)中9为正弦函数的相位,妒。

基于FPGA的信号发生器

基于FPGA的信号发生器

基于FPGA的信号发生器摘要本次设计课题为应用VHDL语言及MAX+PLUS II软件提供的原理图输入设计功能,结合电子线路的设计加以完成一个可应用于数字系统开发或实验时做输入脉冲信号或基准脉冲信号用的信号发生器,它具结构紧凑,性能稳定,设计结构灵活,方便进行多功能组合的特点,经济实用,成本低廉。

具有产生三种基本波形脉冲信号(正弦波、矩形波和三角波),以及三次(及三次以下)谐波与基波的线性组合脉冲波形输出,且单脉冲输出脉宽及连续脉冲输出频率可调,范围从100HZ到1kHZ,步进为100HZ;幅度可调,从0到5伏,步进为0.1V。

关键词:信号发生器, FPGA,EDA,VHDL语言。

AbstractThe design project for the application VHDL language and MAX + PLUS II software provides the principle diagram input function design, combined with the design of the electronic circuit to complete a can be applied to digital system development or experiment do input pulse signal or reference pulse signal with signal generator, it has compact structure, stable performance, design structure agile, facilitate multi-function combination of characteristics, economic and practical, the cost is low. Ability to produce three basic wave pulse signal (sine wave, rectangular wave and triangular wave), and three times (and three times the following) harmonic and base wave linear combination of the pulse waveform output, and the single pulse output pulse width and continuous pulse output frequency adjustable, ranging from 100 hz to 1 KHZ, step by step for 100 hz; Amplitude can be adjusted from 0 to 5 V, step by step to 0.1 V. Key words:Signal generator, FPGA, EDA, VHDL language.1 前言随着我国的经济日益增长,社会对电子产品的需求量也就越来越大,目前,我国的电子产品市场正在迅速的壮大,市场前景广阔。

基于FPGA与单片机的多功能信号发生器的设计与实现

基于FPGA与单片机的多功能信号发生器的设计与实现
宗接华, 赵春红, 王
( 江西工业工程Βιβλιοθήκη 职业技术 学院, 江西超
萍乡 3 3 7 0 0 0 )
摘 要: 文章设计的多功能信号发生器> X F P G A芯片为系统核心, 利用单片机 进行系统控制, 采用液晶屏作为显示界 面, 设计的
信号发生器可以产生正弦波、 三角波、 矩形波及任意波形等信号, 并且 信号具有精度高、 频带宽、 稳定度高等特 占 ’ 。
关键词 : 信号发生器; F P G A; 单片机 当前 的频率 、 波 形类 型及输入频 率、 预设波 形类 型显示 出 遥 感遥测等 众多场合 都有着广泛 的应用 , 是一种 为电子测 来 。 单片机要根据 输入 的频率值 , 计算 出相应 的频率控 制 量 工作提 供电信号的设备, 和示波器、 电压表、 频率计等仪 字, 计算的公式如下所示 : 器一样是 最基本也是应 用最广泛 的电子 仪器之一_ 】 ] 。 随着 M :盟 近 年来电子技术 的迅 猛发展 , 电子测量工作对 于包含 波形 { c 发生器在 内的电子测量 仪器 提 出了越来越 高的要求 。 为适 应 现代电子技 术的不断发展和市场需求 , 研究制作高性能 其中, 是 输出频 率 , 为F P G A,  ̄ u , 片的时钟信号, 频 率 的多功能波形发生器 十分必要。 为1 6 0 M, 相位累加器的宽度n 取值为4 0 。 1 方案比较及选择 矩阵式 键盘 l 信号发 生器主要 可 以采用两 种方案来 实现 。 一种 方案 电 源 模 块卜 _ 荜 片 机 控 制 轰 统 — 一 1 6 0 2 拉 示 是 以AD公司的直接 数字 频率合成 芯片为核心 , 通 过单片 I l 机 进 行控 制, 从而输 出信号波 形。 另一种 方案 是以现场可 F P G A核心 系统 — O A转换及放 犬 电路 编 程门阵列 ( F i e l d P r o g r a mma b l e Ga t e Ar r a y , F P G A) 芯片为核心, 采用直接 数字式频率合成器 ( Di r e c t Di g i t a l 图1 系统方块 S y n t h e s i z e r , DD S ) 技术 , 以单片机芯片为控 制器, 从而实 现波形 输出。 将 以上两 种方案 进行 比较 , 方案一 的特点是 3 . 2 基于 F P G A 的D DS 电路 频 率范 围宽、 频率 稳定 度高 、 编程 工作量较 少, 但 是只能 DDS 以高精度 时钟信号作为参 考, 经 由相位累加 器及 在正弦查找表 中找到相应的幅值信息, 通 过D / A 变 输 出正弦波和方 波且成本 较高; 方案二 的特点是频率范 围 寄存器, 再选用 低通滤 波器 , 最后输 出正 宽、 频率稳定度 较高, 不仅可输 出正弦波和 方波这两 种常 换 得到相应 的数字 信号, 用波形 , 同时还可以输 出三角波、 锯齿波及任意波形 , 且成 弦信号 。 本设计选用F P G A芯片E P 4 C 6 E 2 2 C 8 作为系 统的 核心, 该芯片的功能分成3 个模 块 : 控制逻 辑模块 、 I P 核模 本 较低 。 故本设计采用方案二来实现 。 2 系统总体设计 块及信号生成模块 。 控 制逻辑模 块主 要实现 与单片机 的通 信, 接 受单片机 本设 计 以F P G A芯片E P 4 C6 E 2 2 C8 为 核心,以单片机 传送 过 来 的4 8 位频 率控 制字 ,同时为 了增 强 系统 的稳 定 A T 8 9 S 5 1 为控制器, 通过矩 阵式键 盘进行输入输 出控制 , 在本模块采取了相应措施解决了亚稳态问题。 液 晶屏1 6 0 2 为显示界面 , 可实现 正弦波、 方 波、 三角波、 锯 性 , 齿波 及任 意波等波 形的输出, 如 图1 所 示。 本设计输 出频率 为了提高系统 的设计效率和稳定性 , 本系统选用Al t e r a P 核, 分别来产生正弦信号、 三角波信号 以及 范围为0 . 1 Hz ~ 1 0 MHz , 频率分辨率为0 . 1 Hz , 频率稳定度 公司定制好的I 任意波形信号。 方波信号通过 生产一个比较器来产生。 较高。 信 号生 产模 块是 F P G A芯片的顶 层模 块 , 在 编写代码 3 系统主要模块 电路 3 . 1单片机控制电路 的过程 中, 需将 以上 两个 模 块 例化 , 同时 该模 块 有 两 个 单片机芯片在 整个系统 中起 到控制协调 作用。 该 电路 引脚 与单 片机相 连 , 由单 片机 来控 制 最终 输 出的数 字 波 包 ̄ ' 4 X 4 矩 阵式键盘 , 通过键盘可 以输入各种频率值 , 同时 形信号。 - 3 D / A 车 等 换 电路 及 放 大电路 通 过键盘 中的控制键可 以实现整个系统的复位、 频率数 据 3 为了将F P G A 输 出的数字信号转换为模拟信号, 本 设计 的发送等操作。 单片机外围连接 了1 6 0 2 液 晶显示屏, 可以将

基于FPGA的多功能波形发生器设计研究

基于FPGA的多功能波形发生器设计研究

基于FPGA的多功能波形发生器设计研究设计以VHDL为开发语言,对FPGA芯片进行编程设计,并对输出数据进行数模转换,以完成一个简单的周期可调的多波形发生器。

标签:FPGA;VHDL;多波形发生器1 引言在教学实验和教学研究中,信号发生器作为提供测试用电信号的仪器必不可少。

目前通用的信号发生器一般只能输出常用的波形信号,无法满足教学实验和教学研究的需要。

基于可编程逻辑器件FPGA的多波形信号发生器,采用VHDL 编程实现,整个系统除晶体振荡器和D/A转换外,全部集成在一片美国Altera 公司生产的EPF10K10LC84-3的芯片上,FPGA输出的8位数据经DAC0832模数转换器后接示波器观察其波形,通过改变控制信号线的高低电平实现波行的转换。

它除了输出常用的正弦波、三角波、方波以外,还可以输出以上两种波形任意线性组合波形。

该信号发生器输出波形的频率可数控选择,100HZ~1KHZ,且可手动调节频率,频率步进间隔为100HZ。

2 各模块电路设计2.1 总体设计FPGA器件内部结构多功能波形发生器由初值模块、分频模块、方波产生模块、三角波产生模块、正弦波产生模块、波形输出控制模块等部分组成,如图1所示。

调频模块TIAOPIN的主要目的是使频率调节能够手动执行。

通过手动输入端口RESETY输入若干脉冲,可达到对周期可调的多波形发生器循环选择输出频率的目的。

初值模块CHUZHI提供初值,供下一个模块FANA分频时用,通过不同的初值,在波形产生模块得到不同的工作频率,从而实现调节波形频率的目的。

由于输入的晶振频率是5MHz。

而要求得到的波形的频率为100Hz~1KHz,频率步进为100Hz。

而又由于设计的波形模块都是64个时钟为一个周期。

因此要求波形模块得到的频率是6.4KHz~64KHz。

由5M/64KHz≈78,而又由频率输出分高电平和低电平。

这样78/2≈39,这样可以得到输入状态为1001时,Q的输出参数为39;分频模块FANA的功能是将前一模块CHUZHI送来的初值对时钟进行分频,得到不同的工作频率,从而调节波形频率;方波产生模块ZENG的功能是产生方波;三角波产生模块DELTA的功能是产生三角波;正弦波产生模块SIN的功能产生正弦波;波形输出控制模块CHPRO31设置了三个按键,分别控制三种波形任意一种,或任意两种波形的叠加。

基于FPGA的实用多功能信号发生器的设计与制作

基于FPGA的实用多功能信号发生器的设计与制作

基于FPGA的实用多功能信号发生器的设计与制作基于FPGA的实用多功能信号发生器的设计与制作摘要多功能信号发生器已成为现代测试领域应用最为广泛的通用仪器之一,代表了信号源的发展方向。

直接数字频率合成(DDS)是二十世纪七十年代初提出的一种全数字的频率合成技术,其查表合成波形的方法可以满足产生任意波形的要求。

由于现场可编程门阵列(FPGA)具有高集成度、高速度、可实现大容量存储器功能的特性,能有效地实现DDS技术,极大的提高函数发生器的性能,降低生产成本。

本文首先介绍了函数信号发生器的研究背景和DDS的理论。

然后详尽地叙述了利用Verilog HDL描述DDS模块的设计过程,以及设计过程中应注意的问题。

文中详细地介绍了多种信号的发生理论、实现方法、实现过程、部分Verilog HDL代码以及利用Modelsim仿真的结果。

文中还介绍了Altera公司的DE2多媒体开发平台的部分功能及使用,并最终利用DE2平台完成了多功能信号发生器的大部分功能。

包括由LCD显示和按键输入构成的人机界面和多种信号的发生。

数字模拟转换器是BURR-BROWN 公司生产的DAC902。

该信号发生器能输出8种不同的信号,并且能对输出信号的频率、相位以及调制信号的频率进行修改设定。

关键词:信号发生器;DDS;FPGA;DE2Practical FPGA-based multi function signal generatordesign and productionAbstractMulti function signal generator has become the most widely used in modern testing field of general instrument, and has represented one of the development direction of the source. Direct digital frequency synthesis (DDS) is a totaly digital frequency synthesis technology, which been put forward in the early 1970s. Using a look-up table method to synthetic waveform, it can satisfy any requirement of waveform produce. Due to the field programmable gates array (FPGA) with high integrity, high speed, and large storage properties, it can realize the DDS technology effectively, increase signal generator’s performance and reduce production costs.Firstly, this article introduced the function signal generator of the research background and DDS theory. Then, it described how to design a DDS module by Verilog HDL, and introduced various signal occurs theory, method and the implementation process, Verilog HDL code and simulation results.This paper also introduces the function of DE2 multimedia development platform, and completed most of the functions of multi-function signal generator on DE2 platform finally. Including the occurrence of multiple signal and the man-machine interface which composed by LCD display and key input. Digital-to-analog converters is DAC902, which produced by company BURR-BROWN.This signal generator can output eight different kinds of signals, and the frequency of the output signal, phase and modulation frequency signal also can be modifyed.Key Words: Signal generator; DDS; FPGA; DE2目录论文总页数:34页1 引言 (1)1.1课题背景 (1)1.2国内外波形发生器的发展现状 (1)1.3本文研究的主要内容 (2)2 信号发生器原理 (2)2.1直接数字频率合成技术的基本原理 (2)2.2相位偏移控制 (3)2.3多种信号的发生 (3)2.3.1方波的发生 (3)2.3.2三角波发生 (4)2.2.3锯齿波发生 (4)2.3.4 PWM信号发生 (4)2.3.5 SPWM信号发生 (5)2.3.6 AM信号发生 (5)2.3.7 FM信号发生 (6)2.4DDS的特点 (7)2.4.1 DDS 的优点 (7)2.4.2 DDS 系统的缺点 (7)3 系统整体设计 (8)3.1硬件部分 (8)3.1.1 DE2实验板 (8)3.1.2 LCD模块 (9)3.1.2 DAC902 (11)3.2基于VERILOG的FPGA设计 (12)3.3软件工具 (12)3.3.1 Modelsim (12)3.3.2 Quartus (12)3.4系统设计 (13)3.4.1 系统初始化模块 (13)3.4.2按键模块和LCD模块 (13)3.4.3 RAM模块 (14)3.4.4数据转换模块 (15)3.4.5 DAC驱动模块 (15)3.4.6系统的运行 (15)4 VERILOG HDL代码实现与仿真 (15)4.1信号发生器模块 (15)4.1.1频率控制字和相位累加器 (15)4.1.2 相位偏移控制 (16)4.1.3正弦波发生模块 (17)4.1.4 方波发生模块 (17)4.1.5 三角波发生模块 (18)4.1.6 锯齿波发生模块 (18)4.1.7 PWM信号发生模块 (19)4.1.8 SPWM信号发生模块 (19)4.1.9 AM信号发生模块 (20)4.1.10 FM信号发生模块 (21)4.2按键输入模块 (22)4.3LCD显示模块 (23)4.4RAM模块 (24)4.5数据转换模块 (25)5 系统测试 (26)5.1控制及显示部分测试 (27)5.2输出频率测试 (27)5.3信号发生测试 (28)5.3.1 正弦波、方波、三角波、锯齿波测试 (28)5.3.2 PWM信号测试 (29)5.3.3 SPWM信号测试 (29)5.3.4 AM信号测试 (29)5.3.5 FM信号测试 (30)结论 (31)参考文献 (32)致谢...................................................... 错误!未定义书签。

基于FPGA的多功能信号发生器的设计

基于FPGA的多功能信号发生器的设计

电子电路设计与方案0 前言现场可编程门阵列具有运行速度快,修改灵活方便,并自带大量的输入输出端口等优点,通过FPGA实现该信号发生器的核心部件DDS模块,可以灵活地对信号发生器的参数进行调整,另外通过单片机的配合实现对其他外设电路的控制,实现信号发生器显示、参数调节等辅助的功能,通过数模转换电路和波形处理电路实现所需信号波形的输出。

本设计的主要指标为:(1)频率范围:0~1MHz,可通过键盘任意设置频率,步进1Hz。

(2)频率精度:±1%。

(3)幅值范围:±5V,可通过键盘任意设置幅度,步进100mV。

(4)幅值精度:±5%。

(5)用液晶显示所选波形名称,频率,幅值。

1 系统硬件结构该信号发生器主要是由FPGA构成其最小系统,通过编程实现信号发生器的主要功能部件数字频率合成功能模块,并对其信号进行控制和处理,使得输出波形更加平滑、符合要求。

当然为了使电路能够实现人机对话、参数设置等功能,并设计了由单片机和外围电路构成的控制电路部分,实现对显示电路、输入电路的控制。

本系统通过单片机来识别按键所输入的指令,并根据其该指令,产生输出波形的参数要求,并将该数据送入FPGA 的ROM中,再由FPGA完成DDS数据处理功能(频率控制、移相等),将波形数据送入D/A转换器,并将波形参数(如频率、幅值等)送入到显示电路中显示,最后通过低通滤波电路滤波使输出的波形平滑。

系统硬件结构如图1所示。

本设计未采用专用DDS芯片,而是通Verilog HDL语言编程在目标芯片上来实现信号源的主要功能,可以根据实际设计的要求来增删DDS的功能,具有灵活、方便等特点,同时该DDS模块中的参数及子模块根据所用目标器件稍加调整,完全可用于其他需要DDS技术的应用场合,有很好的通用性。

图1 系统硬件结构图2 单元电路的设计整个硬件系统以FPGA为核心,配合外围电路控制参数实现波形的模拟输出。

外围电路主要包括控制电路及信号处理电路两部分。

基于DDS和FPGA的多功能信号发生器设计

基于DDS和FPGA的多功能信号发生器设计

基于DDS和FPGA的多功能信号发生器设计王新辉【摘要】根据直接数字频率合成技术,以FPGA为核心,设计了一种便携式多功能信号发生器,可产生正弦波、方波、三角波、锯齿波等信号。

通过仿真及硬件实验表明,该信号发生器具有信号频率误差小、分辨率高、体积小、质量轻等优点。

%According to direct digital synthesis(DDS),a portable multi-functional signal generator was designed based on FPGA,which could output sinusoidal wave,square wave,triangle wave and sawtoothwave.Simulation and hardware experiment show that the portable multi-functional signal generator has some advantages,such as high accuracy and high resolution with small size.【期刊名称】《湖南人文科技学院学报》【年(卷),期】2011(000)002【总页数】4页(P91-94)【关键词】DDS;FPGA;D/A转换器;信号发生器【作者】王新辉【作者单位】湖南人文科技学院计算机科学技术系,湖南娄底417001【正文语种】中文【中图分类】TP346近年来,随着微电子技术的迅速发展,模拟信号发生器在带宽,精确度,可控制性等方面体现出严重缺限;而直接数字频率合成器(Direct Digital Frequency Synthesis简称DDS或DDFS)在相对带宽、频率转换时间、高分辨力、相位连续性、正交输出以及集成化等一系列性能指标方面远远超过了传统频率合成技术所能达到的水平,为系统提供了优于模拟信号源的性能,输出频率相对带宽较宽的信号;输出波形的灵活性,只要在DDS内部加上相应控制如调频控制FM、调相控制PM和调幅控制AM,即可以方便灵活地实现调频、调相和调幅功能,产生FSK、PSK、ASK和MSK等信号。

基于FPGA的多功能正弦信号发生器

基于FPGA的多功能正弦信号发生器

2.6
ASK 与 PSK 控制模块 &=> 调制的基本原理是实现键控数字信号对一定频率的信号的幅度控制 8 即当调制信号的幅度是 1 时8 已调信号的幅度与原信号的幅度一致 8 当调制信号的幅度为 2 时8 已调信号的幅度为 28 由此可由乘法来 实现 ; 为了实现输出与输入的同步 8 采用同时钟输入 8 时钟到来时 8 把由 #$%& 产生的正弦数字信号 ( 12 位 ) 送入乘法器 8 经过乘法器输出的信号送 ? : & 转换即得到调幅 &=> 信号 8 如图 @ 所示 ; 其波形仿真如图 12 所 示;
2.4
普通调幅( AM ) 控制模块 为了便于分析 + 首先假设调制信号是一个单一频率的余弦信号 ’! H (!) PQR !*/ 载波 ’& H (&) PQR "&*+ 载 波的角频率 "&@ !/ 普通调幅波的表示式为 , % . 1 ’+, H ()- # - S ).PQR !* $ ・PQR "&* 其中 #,( !) !()普通调幅波形形成框图如图 " 所示1 ). H
第!期
智少雷等: 基于 #$%& 的多功能正弦信号发生器
!"
应用 #$%& 实现框图及波形仿真如图 " 所示’
2.5
调频( FM) 控制模块 已知调频信号’ !"# ( $ ) * %&’+,- ( !($ . &)-/0 "$ . #’ ) 在 122 345 6 12 745 频率范围内产生 12 345 最大频偏 8 且最大频偏可分为 9 : 12 345 二级程控调节 8 正弦调制信号频率为 1 3458 调制信号自行产生; 其原理如图 < 所示’
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于FPGA的多功能信号发生器一.试验目的:1.了解GW48-CK综合实验箱结构2.熟悉VHDL语言3.了解FPGA芯片(EP1K30TC144-3)结构及引脚4.了解D/A芯片(DAC0832)结构[5.熟悉FPGA设计软件quartus ii 9.0的使用6.掌握产生三角波,锯齿波,梯形波的原理7.学会用FPGA设计多功能信号发生器二.试验仪器及设备:1.pc机2.GW48-CK型FPGA综合试验箱3.FPGA芯片:EP1K30TC144-34.D/A芯片:DAC08325.示波器6.quartus ii 9.0仿真软件三.实验要求:.设计基于FPGA的多功能信号发生器,此信号发生器可产生的波形有:正弦波,方波,三角波,斜升锯齿波,斜降锯齿波,梯形波,阶梯波,双阶梯波中的六种。

设计软件要求用quartus ii,先用该软件仿真,再接上FPGA试验箱,编译,运行并下载到实验箱,用示波器观察期指定输出端波形。

四.试验原理:1.基于QUASTUS II 9.0平台,利用DDS(直接数字信号合成)技术,采用VHDL语言,设计一波形信号发生器。

首先根据对各波形的幅度进行采样,获得各波形的波形数据表,然后FPGA根据输入的时钟(频率可根据要求可变)作为地址信号,从FPGA数据线上输出相应的波形数据,再送入GW48-CK 实验板上的D/A转换芯片进行转换为模拟信号,最后送入滤波电路滤波后输出。

2.实验整体框图如下:由方波模块(niushengli_fb)、阶梯波模块(niushengli_jtb)、正弦波模块(niushengli_sin)、三角波模块(niushengli_sjb)、斜升锯齿波模块(niushengli_xsjcb)、斜降锯齿波模块(niushengli_xjjcb)、6选1选择器(niushengli_mux61)以及反向器(not)组成。

五.试验步骤:a)在桌面上双击quartus ii 9.0图标(或在开始中→程序→Aler a→quartus ii9.0)启动设计软件。

b)新建工程命名(niushengli_xhfsq),在新建VHDL文本文件,分别输入正弦波、方波、三角波、斜升锯齿波,梯形波,斜降锯齿波以及6选1选择器程序。

c)点击保存并命名(注意:命名应与程序实体名相同,后缀为:.vhd),编译,若有错误,则调试程序直至编译成功d)新建模块/原理图输入方式文件,用编译后生成的各信号模块编写原理图文件并设置为顶层文件(命名为niushengli_xhfsq.bdf)保存e)新建一个仿真波形文件,添加输入/输出信号节点,编辑信号节点波形并保存(命名为:niushengli_xhfsq.vwf)f)点击Assignments菜单,选择目标芯片(EP1K30TC144-3)并进行管脚配置(详情见附录3)g)点击编译器processing/Start Compilation,再点击Start Simulation命令启动仿真器,查看仿真波形并记录h)连接好pc机和GW48-CK实验箱,下载编译好的程序到试验箱,用示波器观察输出端波形,检验设计的信号发生器功能并记录六.试验结果:a)当键3、键2、键1组合为000时,输出方波仿真图形记录如下:b)当键3、键2、键1组合为001时,输出阶梯波仿真图形记录如下:c)当键3、键2、键1组合为010时,输出正弦波仿真图形记录如下:d)当键3、键2、键1组合为011时,输出三角波仿真图形记录如下:e)当键3、键2、键1组合为100时,输出斜降锯齿波仿真图形记录如下:f)当键3、键2、键1组合为101时,输出斜升锯齿波仿真图形记录如下:七.试验心的体会:通过俩周的设计,我的设计较好地完成了既定目标,能够产生正弦波、方波、三角波、锯齿波等6种波形,并能改变波形发生的频率。

通过三个按键组合,可在6种波形中任意切换,使所设计系统容易使用。

成功的实现了系统的功能。

在实验中也有失败,如当经过几天的努力把各个信号模块做好后进行了整体的运作后,波形怎么也不出现。

后来才知道原来我们设计的电路只有在特定的试验箱特定的参数设置后才能实验成功,多亏老师的指导让我们少走很多弯路。

也从中发现自己还有很多知识不懂,最终把波形弄出来了!在这次设计中,我更进一步地了解了开发项目该如何组织进行,对正弦波信号发生器、方波信号发生器、三角波信号发生器、锯齿波信号发生器的实现有了更好的理解。

同时也提高了查阅文档解决问题的能力,对EDA技术的运用有了深一层的认识,对VHDL程序语言设计有了更深的理解,并熟练掌握了杭州康芯硬件结构动态可配置型EDA+SOPC试验箱、北京达盛公司全开方式EDA+SOPC试验箱的用法。

通过本实验设计更增加了我对电子技术的热爱,对专业知识有了更透彻的认识!有因掌握了这一技术而更加自信。

相信通过今后的学习会更成为一个科技含量高的技术人才!在试验过程中,充分体会到团队精神的重要,我们很默契很团结,才最终把实验做成功。

通过实验也给自己一个成就感,让平时所学的知识有了实用的机会,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,让我以后更有信心,无论遇到什么困难都要勇于克服,遇到问题要善于思考并虚心请教。

附录:(1).多功能信号发生器FPGA芯片配置说明:本次多功能信号发生器设计采用VHDL语言设计并通过QUARTUS II软件编译、仿真完成后,需将生成的配置文件下载到EDA试验箱中测试输出波形。

有关配制情况说明如下:1.试验平台:GW48系列EDA/SOC试验开发系统2.FPGA芯片型号:Altera EP1K30TC144-31. --锯齿波(斜升)LIBRARY IEEE;USE IEEE. STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY niushengli_xsjcb IS -- 牛胜利(40604030109)PORT (clk,reset: IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR (7 DOWNTO 0));END niushengli_xsjcb;ARCHITECTURE behave OF niushengli_xsjcb ISBEGINPROCESS (clk,reset)V ARIABLE tmp: STD_LOGIC_VECTOR (7 DOWNTO 0);BEGINIF reset='0'THENtmp:="00000000";ELSIF clk'EVENT AND clk='1'THENIF tmp="11111111"THENtmp:="00000000";ELSEtmp:=tmp+1;END IF;END IF;q<=tmp;END PROCESS;END behave;2. --方波LIBRARY IEEE;USE IEEE. STD_LOGIC_1164.ALL;ENTITY niushengli_fb IS--牛胜利(40604030109)PORT (clk,reset: IN STD_LOGIC;q:OUT INTEGER RANGE 0 TO 255); END niushengli_fb;ARCHITECTURE behave OF niushengli_fb IS SIGNAL a: BIT;BEGINPROCESS (clk,reset)V ARIABLE cnt: INTEGER;BEGINIF reset='0'THENA<='0';ELSIF clk'EVENT AND clk='1'THENIF cnt<63 THENCnt:=cnt+1;ELSEcnt:=0;a<=NOT a;END IF;END IF;END PROCESS;Process (clk,a)BEGINIF clk'EVENT AND clk='1'THENIF a='1'THENQ<=255;ELSEQ<=0;END IF;END IF;END PROCESS;END behave;3. --双阶梯波library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity niushengli_jtb isport(clk,reset:in std_logic;q:out std_logic_vector(7 downto 0));end niushengli_jtb;architecture a of niushengli_jtb isbeginprocess(clk,reset)variable tmp:std_logic_vector(7 downto 0);beginif reset='0' thentmp:="00000000";else if clk'event and clk='1' thenif tmp="11111111" thentmp:="00000000";elsetmp:=tmp+16;end if;end if;end if;q<=tmp;end process;end a;4.--正弦波library ieee;use ieee.std_logic_arith.all;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity niushengli_sin is --牛胜利(40604030109)port(clk:in std_logic;reset:in std_logic;q:out std_logic_vector(7 downto 0));end niushengli_sin;architecture behav of niushengli_sin issignal b:integer range 0 to 63;signal d:integer range 0 to 255;beginprocess(clk)beginif reset='0'then b<=0;elsif clk'event and clk='1' thenif b=63 then b<=0;else b<=b+1;end if;end if;end process;process(b)begincase b iswhen 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<=34; when 25=>d<=26; when 26=>d<=19; when 27=>d<=13;when 28=>d<=8; when 29=>d<=4; when 30=>d<=1; when 31=>d<=0;when 32=>d<=0; when 33=>d<=1; when 34=>d<=4; when 35=>d<=8;when 36=>d<=13; when 37=>d<=19; when 38=>d<=26; when 39=>d<=34;when 40=>d<=43; when 41=>d<=53; when 42=>d<=64; when 43=>d<=75;when 44=>d<=87; when 45=>d<=99; when 46=>d<=112; when 47=>d<=124;when 48=>d<=137; when 49=>d<=150; when 50=>d<=162; when 51=>d<=174;when 52=>d<=186; when 53=>d<=197; when 54=>d<=207; when 55=>d<=217;when 56=>d<=225; when 57=>d<=233; when 58=>d<=239; when 59=>d<=245;when 60=>d<=249; when 61=>d<=252; when 62=>d<=254; when 63=>d<=255;when others=>null;end case;end process;q<=conv_std_logic_vector(d,8);end behav;5 -- 三角波LIBRARY IEEE;USE IEEE. STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY niushengli_sjb IS --牛胜利(40604030109)PORT (clk,reset: IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR (7 DOWNTO 0));END niushengli_sjb;ARCHITECTURE behave OF niushengli_sjb ISBEGINPROCESS (clk,reset)V ARIABLE tmp: STD_LOGIC_VECTOR (7 DOWNTO 0);V ARIABLE a: STD_LOGIC;BEGINIF reset='0'THENtmp:="00000000";ELSIF clk'EVENT AND clk='1'THENIF a='0'THENIF tmp="11111110"THENtmp:="11111111";a:='1';ELSEtmp:=tmp+1;END IF;ELSEIF tmp="00000001"THENtmp:="00000000";a:='0';ELSETmp:=tmp-1;END IF;END IF;END IF;q<=tmp;END PROCESS;END behave;6. --锯齿波(斜降)LIBRARY IEEE;USE IEEE. STD_LOGIC_1164.ALL;USE IEEE. STD_LOGIC_UNSIGNED.ALL;ENTITY niushengli_xjc IS --牛胜利(40604030109)PORT (clk,reset: IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR (7 DOWNTO 0)); END niushengli_xjc;ARCHITECTURE behave OF niushengli_xjc ISBEGINPROCESS (clk,reset)V ARIABLE tmp: STD_LOGIC_VECTOR (7 DOWNTO 0);BEGINIF reset='0'THENtmp:="11111111";ELSIF clk'EVENT AND clk='1'THENIF tmp="00000000"THENTmp:="11111111";ELSEtmp:=tmp-1;END IF;END IF;q<=tmp;END PROCESS;END behave;7. --六选一选择器LIBRARY IEEE;USE IEEE. STD_LOGIC_1164.ALL;ENTITY niushengli_MUX61 IS --牛胜利(40604030109)PORT (sel: IN STD_LOGIC_VECTOR (2 DOWNTO 0);d0,d1,d2,d3,d4,d5: IN STD_LOGIC_VECTOR(7 DOWNTO 0);q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END niushengli_MUX61;ARCHITECTURE behave OF niushengli_MUX61 ISBEGINPROCESS (sel)BEGINCASE sel ISWHEN "000" =>q<=d0;WHEN "001" =>q<=d1;WHEN "010" =>q<=d2;WHEN "011" =>q<=d3;WHEN "100" =>q<=d4;WHEN "101" =>q<=d5;WHEN OTHERS =>NULL;END CASE;END PROCESS;END behave;。

相关文档
最新文档