基于EDA技术的正弦波.方波.三角波.锯齿波.四种波形发生器

梧 州 学 院 课 程 论 文

(2014 -2015学年第2学期)

课程论文题目:基于EDA技术的正弦波、方波、三角波、锯齿波、四种波形发生器

学生姓名:

目录

一、系统设计目的与要求 ............................................................................................................... 4

1.1、前言 ................................................................................................................................. 4

1.2、功能要求: ..................................................................................................................... 5

1.3、设计目的: ..................................................................................................................... 5

二、设计方案以及原理说明 ........................................................................................................... 6

2.1、设计方案 ......................................................................................................................... 6

2.2、原理说明 ......................................................................................................................... 7

三、设计内容 ................................................................................................................................... 8

3.1、正弦波发生器 .................................................................................................................. 8

3.2、方波发生器 ................................................................................................................... 11

3.3、三角波发生器 ............................................................................................................... 12

3.4、 锯齿波发生器 ............................................................................................................. 14

3.5、波形的选择 ................................................................................................................... 16

四、心得体会 ................................................................................................................................. 20

五、参考文献 ................................................................................................................................. 21

论文题目: 基于EDA技术的正弦波、方波、三角波、锯齿波、四种波形发生器

学生姓名:

摘要

随着EDA技术以及大规模集成电路技术的迅猛发展,波形发生器的各方面性能指标都达到了一个新的水平。采用CPLD/FPGA器件在QuartuesII设计环境中用Verilog HDL语言完成的波形发生器具有频率稳定性高,可靠性高,输出波形稳定等特点。本文介绍了基于EDA技术的波形发生器的研究与设计。 本文采用Verilog HDL语言,运用LPM-ROM制定的方法设计的波形发生器,经过按键来选择四种波形实现了正弦波,方波,三角波,以及锯齿波四种波形的输出,经过实际下载到FPGA实验板上,设计要求已经完全实现。

关键词

:Verilog HDL 波形发生器 LPM-ROM FPGA

一、系统设计目的与要求

1.1、前言

随着现代化集成电路和计算机技术的不断飞跃发展,使得电子产品的设计在市场上的应用更为广泛,而且其实现方法的选择也变得越来越多。基于电路板的设计方法是传统电子产品通用的一中设计方案,这种方法是需要采用较多的固定功能器件,再通过这几器件的设计配合,从而实现模拟电子产品的功能,这些工作的重点就在于如何选择这些器件及怎样设计电路板。

由于可编程逻辑器件的出现和计算机性价比的提高,这影响了传统的数字电子系统的设计方法,对其进行了解放性的革命。现在要实现电子系统的功能是通过设计师自己设计的芯片来完成的,之后将传统的固件选用及电路板设计工作放在芯片设计中进行,这种方法是现代电子系统的设计方法。上个世纪九十年代以来,由于复杂化、数字化和大规模集成化的电子产品设计系统的日趋成熟,使得各种电子系统的设计软件也应运而生。

在这些专业化软件中,EDA (Electronic Design Automation)具有一定的代表性,EDA技术是一种基于芯片的现代电子系统设计方法。它的优势主要集中在能用HDL语言进行输入、进行PLD(可编程器件)的设计与仿真等系统设计自动化上;上个世纪九十年代,可编程器件又出现了模拟可编程器件,由于受技术、可操作性及性价比的影响,今后EDA技术会向模拟可编程器件的设计与仿真方向发展,并占据市场的一定份额。

EDA技术主要包括大规模可编程逻辑器件、硬件描述语言、开发软件工具及实验开发系统4个方面。其中,大规模可编程逻辑器件是利用EDA技术进行电子

系统设计的载体硬件,描述语言是利用EDA技术进行电子系统设计的主要表达手段,开发软件工具是利用EDA技术进行电子系统设计的智能化与自动化设计工具,实验开发系统则是提供芯片下载电路及EDA实验、开发的外围资源。

数字化是电子设计的必由之路,这已成为共识。在数字化的道路上,我国的电子技术经历了一系列重大的变革。从应用小规模集成电路构成电路系统,到广泛地应用微控制器或单片机(MCU),在电子系统设计上发生了具有里程碑意义的飞跃。电子产品正在以前所未有的速度进行着革新,主要表现在大规模可编程逻辑器件的广泛应用。在可编程芯片CPLD(复杂可编程逻辑器件)和FPGA(现场可编程门阵列)上实现电子系统的设计,必将成为今后电子系统设计的一个发展方向。所以电子设计技术发展到今天,又将面临另一次更大意义的突破,即CPLD/FPGA在EDA(电子设计自动化)基础上的广泛应用。本设计将采用基于VHDL的EDA设计来实现波形发生器的各种功能。

1.2、功能要求:

(1)可产生题目要求的几种波形(频率可调,一个波形周期不少于64点),利用

DAC0832输出,用示波器观察。

(2)具有波形选择、起动、停止功能。

(3)利用数码LED管或液晶显示工作状态。

1.3、设计目的:

(1)本次课程设计的目的是为了培养我们在动手方面要能够独立自主的完成的能力。

(2)让我们更加理解Verilog HDL语言以及熟练应用。

(3)了解FPGA的外围器件的应用以及硬件电路的设计原理

二、设计方案以及原理说明

2.1、设计方案

本系统由FPGA(可编程门阵列),数模转换,时钟(提供clk信号)等组成。全部为FPGA试验箱所有,不需要增加任何器件。用FPGA产生的255—0的计数值输入到DAC0832中,将产生对应的模拟信号。本系统采用的是软硬件结合的方法。由于一个周期内的任意波形的离散样点数对硬件实现的复杂性直接产生影响,因此,为了简化硬件存储器件的规模,取128个样点进行讨论。

具体做法是先对一个周期进行128点采样,然后依次存于ROM中,再以fs频率给出地址码,控制存储器周期的读出数据,并经D、A转换和模拟放大,便能得到一定的频率的周期信号。因此周期信号的频率为fo=fs/M.其中M为采样点个数,本设计中取值为128;fs为存储器读出频率。显然,通过改变读出频率fs,便可获得不同频率的周期信号fo.。系统结构图如图1所示。

波形发生器电路系统结构图:

图1

2.2、原理说明

以正弦波为例说明。完整的波形发生器由三部分组成:由计数器构成的地址信号发生器、波形数据ROM和D/A。在FPGA的顶层文件中,计数器通过外来控制信号和高速时钟信号向波形数据ROM发出地址信号,输出波形的批评你率由发出的地址信号的速度决定;当以固定的频率扫描输出地址时,输出波形是固定频率,而当以周期性时变方式扫描输出地址时,则输出波形为扫频信号。波形数据ROM中存有发生器的波形数据,如正弦波或者三角波数据等。当接受来自FPGA的地址信号后,将从数据线输出相应的波形数据。波形数据ROM可以由多种方式实现,如在FPGA外面外接普通ROM或者由FPGA中的EAB模块相当,即利用LPM-ROM来实现。

D/A转换器负责将ROM输出的数据转换成模拟信号,经过滤波电路后输出。输出波形的频率上限与D/A转换器件的转换速度有重要关系,我们的试验箱上用的是DAC0832。

DAC0832是8位并行、中速(其转换时间1us)、电流型D/A转换芯片。DAC0832 内部由三部分组成,“8位输入寄存器”用于存放CPU送来的数字量,使输入数 字量得到缓冲和锁存,由加以控制。“8位DAC寄存器”用于存放待转换的数字量,由控制。“8位D/A转换电路”由8位T型网路和电子开关组成,电子开关受“8位DAC寄存器”输出控制,T型电阻网路能输出与数字量成正比的模拟电流。因此,DAC0832通常需要外接运放才能得到模拟输出电压。DAC0832共有20条引脚,双列直插式封装。

⑴ 数字输入线DI7~DI0(8条) DI7~DI0常和CPU数据总线相连,用于输入CPU送来的待转换数字里,DI7为最高位。

⑵ 控制线(5条) 为片选线。当为低电平时,本片被选中工作;当为高电平时,本片不被选中工作。

⑶ 输出线3条 为运算放大器的反馈线,常接到运放的输出端。和为两条模拟电流输出线。+为一常数。

⑷ 电源线(4条) VCC为电源输入线,可在+5~+15V范围捏;为参考电压,一般在-10~+10V范围内,由稳压电源提供;DGND为数字地线;AGND为模拟量地线。通常接在一起。

三、设计内容

3.1、正弦波发生器

⑴ 正弦波信号波形数据文件的建立

ROM中的地址线宽为8,数据线宽为8,其中的正弦波波形数据由128个点构成,此数据经DAC0832,可在示波器上观察到正弦波形。 ROM中的波形文件建立如图:

⑵ LPM_ROM定制

① 选菜单 tools—MegaWizard Plug-In Manager,选择Create a new... ,然后按next,进入。选中LPM-ROM;最后在Browse下的栏中键入路径与输出文件名。

② 单击Next ,选择ROM的数据位宽度为8,地址线宽度为8,即设置此ROM能存储8位二进制数据共128个,然后进入。

③ 打开已经定制的ROM文件,观察文件中的实体表达、COMPONEN语句,例化语句和初始化文件的路径和文件名。

④ 最后将其设置为工程,并确定目标器件,进行测试,仿真波形如图所示。

⑶ 完成正弦信号发生器顶层文件的设计和测试

以下是正弦信号发生器的顶层设计。 其中调用了如上所说的ROM模块、ROM中的数据文件。

源程序:

module zhengxuanbo(RST,CLK,EN,Q);

output [7:0] Q; //定义输出Q为8位 input EN,CLK,RST; wire [6:0] TMP; //定义EN,CLK,RST为输入变量 //定义TMP中间变量为网线型 reg [6:0] Q1; //定义Q1为寄存器 always @(posedge CLK or negedge RST) //CLK上升沿或者RST下降沿触

if (!RST) Q1

⑷ 仿真波形:

⑸ 功能描述:CLK为时钟信号,EN为使能 ,高电平有效。 ⑹ 正弦波发生器实体图:

3.2、方波发生器

⑴ 方波信号波形数据文件的建立

如图所示:

⑵ LPM_ROM的定制与正弦波同

⑶ 方波发生器的顶层文件的建立和测试。 源程序:

module fangbo(RST,CLK,EN,Q); 发

output [7:0] Q; //定义输出Q为8位 input EN,CLK,RST; wire [6:0] TMP;

//定义EN,CLK,RST为输入变量

//定义TMP中间变量为网线型

reg [6:0] Q1; //定义Q1为寄存器

always @(posedge CLK or negedge RST) //CLK上升沿或者RST下降沿触

if (!RST) Q1

else if(EN) //如果EN为1,Q1加

1

Q1

else Q1

assign TMP=Q1; //Q1赋值给TMP

fang IC1(.address(TMP),.inclock(CLK),.q(Q));

Endmodule

⑷ 仿真波形:

⑸ CLK为时钟信号,EN为波形启动键 ,高电平有效。 由仿真图可以看出,满足产生方波的要求。 ⑹ 方波发生器实体图:;

3.3、三角波发生器

⑴ 三角波信号波形数据文件的建立

如图所示:

⑵ LPM_ROM的定制与正弦波相同

⑶ 三角波发生器的顶层文件的建立和测试。 源程序:

module sanjiao(RST,CLK,EN,Q); 发

if (!RST) Q1

//8位计数器

output [7:0] Q; //定义输出Q为8位 input EN,CLK,RST; wire [6:0] TMP;

//定义EN,CLK,RST为输入变量

//定义TMP中间变量为网线型

reg [6:0] Q1; //定义Q1为寄存器

always @(posedge CLK or negedge RST) //CLK上升沿或者RST下降沿触

else if(EN) //如果EN为1,Q1加1 Q1

else Q1

assign TMP=Q1; //Q1赋值给TMP

san IC1(.address(TMP),.inclock(CLK),.q(Q));

Endmodule

⑷ 仿真波形:

⑸ 功能描述:CLK为时钟信号,EN为波形启动键 ,高电平有效。 由仿真图可以看出,满足产生三角波的要求。 ⑹ 三角波发生器实体图:

3.4、 锯齿波发生器

⑴ 锯齿波信号波形数据文件的建立

如图所示:

⑵ LPM_ROM的定制与正弦波同

⑶ 锯齿波发生器的顶层文件的建立和测试。

源程序:

module juchi(RST,CLK,EN,Q);

output [7:0] Q; //定义输出Q为8位 input EN,CLK,RST; wire [6:0] TMP;

//定义EN,CLK,RST为输入变量

//定义TMP中间变量为网线型

reg [6:0] Q1; //定义Q1为寄存器

always @(posedge CLK or negedge RST) //CLK上升沿或者RST下降沿

触发

if (!RST) Q1

//8位计数器

else if(EN) //如果EN为1,Q1加1 Q1

else Q1

assign TMP=Q1; //Q1赋值给

TMP

ju IC1(.address(TMP),.inclock(CLK),.q(Q));

Endmodule

⑷ 仿真波形

如图所示:

⑸ 功能描述:CLK为时钟信号,EN为波形启动键 ,高电平有效。 由仿真图可以看出,满足产生锯齿波的要求。 ⑹ 锯齿波发生器实体图:

3.5、波形的选择

(1)源程序:

module xuan(OUT,IN0,IN1,IN2,IN3,SEL); output [7:0] OUT; input [7:0] IN0; input [7:0] IN1;

//定义输出OUT,为8位 //定义四路波形输入

input [7:0] IN2; input [7:0] IN3; input [1:0] SEL; reg [7:0] OUT;

always@(SEL or IN0 or IN1 or IN2 or IN3) begin case(SEL)

0 : OUT = IN0; 1 : OUT = IN1; 2 : OUT = IN2; 3 : OUT = IN3;

//当SEL为0,输出正弦波 //当SEL为1,输出方波 //当SEL为2,输出三角波 //当SEL为3,输出锯齿波

//OUT为8位

//选择波形

default : OUT = 8'bX; endcase end

endmodule

⑵ 仿真波形

⑶ 功能描述:clk1为时钟输入信号。 当SEL为 “00”时,输出为正弦波; 当SEL为 “01”时,输出为方波; 当SEL为 “10”时,输出为三角波; 当SEL为 “11”时,输出为锯齿波; EN为波形启动,停止键。 ⑷ 波形发生器总体结构图:

⑸ 引脚锁定

四、心得体会

通过本次课程设计,我的体会很多也很深,我以前没有对基于FPGA的正弦波发生器进行系统的研究,在本次完成本次课程设计的过程中,我遇到了很多问题,也走了很多弯路,还好最后终于通过自己的努力得到了理想的结果。通过本课题,我对EDA技术和FPGA技术有了更进一步的理解,掌握了FPGA的层次化设计电路的方法,掌握了用Verilog HDL语言编写各个功能模块并通过波形确定电路设计是否正确。掌握了下载验到目标器件的过程。

在课程设计中遇到的问题很多,有一些是比较基础的,但由于接触不多,还是遇到了不少麻烦,例如怎样把四种不同的波形用按键来控制输出的波形,以及启动停止功能。还有计数器的设计,我在参考老师以前上课写的程序后才慢慢去理解体会。但是经过了这么多的锻炼,现在再看这些问题,就觉得没有那么难了,我想这就是我得到的最大收获。

总之,这次课程设计给我一个很好的机会,使我受益匪浅,我相信这对我以后的学习和工作都会有很大的帮助。

五、参考文献

[1]黄正瑾.在系统编程技术及其应用.南京:东南大学出版社,2007

[2]彭介华.电子技术课程设计指导.北京:高等教育出版社,2007

[3]李国丽,朱维勇.电子技术实验指导书.合肥:中国科技大学出版社,2008

[4]潘松,黄继业.EDA技术实用教程.北京:科学出版社,2008

[5]郑家龙,王小海,章安元.集成电子技术基础教程.北京:高等教育出版社,2007

[6]宋万杰,罗丰,吴顺君.CPLD技术及其应用.西安:西安电子科技大学出版社,2006

[7]张昌凡,龙永红,彭涛.可编程逻辑器件及VHDL设计技术.广州:华南工学院出版社,2001

21

梧 州 学 院 课 程 论 文

(2014 -2015学年第2学期)

课程论文题目:基于EDA技术的正弦波、方波、三角波、锯齿波、四种波形发生器

学生姓名:

目录

一、系统设计目的与要求 ............................................................................................................... 4

1.1、前言 ................................................................................................................................. 4

1.2、功能要求: ..................................................................................................................... 5

1.3、设计目的: ..................................................................................................................... 5

二、设计方案以及原理说明 ........................................................................................................... 6

2.1、设计方案 ......................................................................................................................... 6

2.2、原理说明 ......................................................................................................................... 7

三、设计内容 ................................................................................................................................... 8

3.1、正弦波发生器 .................................................................................................................. 8

3.2、方波发生器 ................................................................................................................... 11

3.3、三角波发生器 ............................................................................................................... 12

3.4、 锯齿波发生器 ............................................................................................................. 14

3.5、波形的选择 ................................................................................................................... 16

四、心得体会 ................................................................................................................................. 20

五、参考文献 ................................................................................................................................. 21

论文题目: 基于EDA技术的正弦波、方波、三角波、锯齿波、四种波形发生器

学生姓名:

摘要

随着EDA技术以及大规模集成电路技术的迅猛发展,波形发生器的各方面性能指标都达到了一个新的水平。采用CPLD/FPGA器件在QuartuesII设计环境中用Verilog HDL语言完成的波形发生器具有频率稳定性高,可靠性高,输出波形稳定等特点。本文介绍了基于EDA技术的波形发生器的研究与设计。 本文采用Verilog HDL语言,运用LPM-ROM制定的方法设计的波形发生器,经过按键来选择四种波形实现了正弦波,方波,三角波,以及锯齿波四种波形的输出,经过实际下载到FPGA实验板上,设计要求已经完全实现。

关键词

:Verilog HDL 波形发生器 LPM-ROM FPGA

一、系统设计目的与要求

1.1、前言

随着现代化集成电路和计算机技术的不断飞跃发展,使得电子产品的设计在市场上的应用更为广泛,而且其实现方法的选择也变得越来越多。基于电路板的设计方法是传统电子产品通用的一中设计方案,这种方法是需要采用较多的固定功能器件,再通过这几器件的设计配合,从而实现模拟电子产品的功能,这些工作的重点就在于如何选择这些器件及怎样设计电路板。

由于可编程逻辑器件的出现和计算机性价比的提高,这影响了传统的数字电子系统的设计方法,对其进行了解放性的革命。现在要实现电子系统的功能是通过设计师自己设计的芯片来完成的,之后将传统的固件选用及电路板设计工作放在芯片设计中进行,这种方法是现代电子系统的设计方法。上个世纪九十年代以来,由于复杂化、数字化和大规模集成化的电子产品设计系统的日趋成熟,使得各种电子系统的设计软件也应运而生。

在这些专业化软件中,EDA (Electronic Design Automation)具有一定的代表性,EDA技术是一种基于芯片的现代电子系统设计方法。它的优势主要集中在能用HDL语言进行输入、进行PLD(可编程器件)的设计与仿真等系统设计自动化上;上个世纪九十年代,可编程器件又出现了模拟可编程器件,由于受技术、可操作性及性价比的影响,今后EDA技术会向模拟可编程器件的设计与仿真方向发展,并占据市场的一定份额。

EDA技术主要包括大规模可编程逻辑器件、硬件描述语言、开发软件工具及实验开发系统4个方面。其中,大规模可编程逻辑器件是利用EDA技术进行电子

系统设计的载体硬件,描述语言是利用EDA技术进行电子系统设计的主要表达手段,开发软件工具是利用EDA技术进行电子系统设计的智能化与自动化设计工具,实验开发系统则是提供芯片下载电路及EDA实验、开发的外围资源。

数字化是电子设计的必由之路,这已成为共识。在数字化的道路上,我国的电子技术经历了一系列重大的变革。从应用小规模集成电路构成电路系统,到广泛地应用微控制器或单片机(MCU),在电子系统设计上发生了具有里程碑意义的飞跃。电子产品正在以前所未有的速度进行着革新,主要表现在大规模可编程逻辑器件的广泛应用。在可编程芯片CPLD(复杂可编程逻辑器件)和FPGA(现场可编程门阵列)上实现电子系统的设计,必将成为今后电子系统设计的一个发展方向。所以电子设计技术发展到今天,又将面临另一次更大意义的突破,即CPLD/FPGA在EDA(电子设计自动化)基础上的广泛应用。本设计将采用基于VHDL的EDA设计来实现波形发生器的各种功能。

1.2、功能要求:

(1)可产生题目要求的几种波形(频率可调,一个波形周期不少于64点),利用

DAC0832输出,用示波器观察。

(2)具有波形选择、起动、停止功能。

(3)利用数码LED管或液晶显示工作状态。

1.3、设计目的:

(1)本次课程设计的目的是为了培养我们在动手方面要能够独立自主的完成的能力。

(2)让我们更加理解Verilog HDL语言以及熟练应用。

(3)了解FPGA的外围器件的应用以及硬件电路的设计原理

二、设计方案以及原理说明

2.1、设计方案

本系统由FPGA(可编程门阵列),数模转换,时钟(提供clk信号)等组成。全部为FPGA试验箱所有,不需要增加任何器件。用FPGA产生的255—0的计数值输入到DAC0832中,将产生对应的模拟信号。本系统采用的是软硬件结合的方法。由于一个周期内的任意波形的离散样点数对硬件实现的复杂性直接产生影响,因此,为了简化硬件存储器件的规模,取128个样点进行讨论。

具体做法是先对一个周期进行128点采样,然后依次存于ROM中,再以fs频率给出地址码,控制存储器周期的读出数据,并经D、A转换和模拟放大,便能得到一定的频率的周期信号。因此周期信号的频率为fo=fs/M.其中M为采样点个数,本设计中取值为128;fs为存储器读出频率。显然,通过改变读出频率fs,便可获得不同频率的周期信号fo.。系统结构图如图1所示。

波形发生器电路系统结构图:

图1

2.2、原理说明

以正弦波为例说明。完整的波形发生器由三部分组成:由计数器构成的地址信号发生器、波形数据ROM和D/A。在FPGA的顶层文件中,计数器通过外来控制信号和高速时钟信号向波形数据ROM发出地址信号,输出波形的批评你率由发出的地址信号的速度决定;当以固定的频率扫描输出地址时,输出波形是固定频率,而当以周期性时变方式扫描输出地址时,则输出波形为扫频信号。波形数据ROM中存有发生器的波形数据,如正弦波或者三角波数据等。当接受来自FPGA的地址信号后,将从数据线输出相应的波形数据。波形数据ROM可以由多种方式实现,如在FPGA外面外接普通ROM或者由FPGA中的EAB模块相当,即利用LPM-ROM来实现。

D/A转换器负责将ROM输出的数据转换成模拟信号,经过滤波电路后输出。输出波形的频率上限与D/A转换器件的转换速度有重要关系,我们的试验箱上用的是DAC0832。

DAC0832是8位并行、中速(其转换时间1us)、电流型D/A转换芯片。DAC0832 内部由三部分组成,“8位输入寄存器”用于存放CPU送来的数字量,使输入数 字量得到缓冲和锁存,由加以控制。“8位DAC寄存器”用于存放待转换的数字量,由控制。“8位D/A转换电路”由8位T型网路和电子开关组成,电子开关受“8位DAC寄存器”输出控制,T型电阻网路能输出与数字量成正比的模拟电流。因此,DAC0832通常需要外接运放才能得到模拟输出电压。DAC0832共有20条引脚,双列直插式封装。

⑴ 数字输入线DI7~DI0(8条) DI7~DI0常和CPU数据总线相连,用于输入CPU送来的待转换数字里,DI7为最高位。

⑵ 控制线(5条) 为片选线。当为低电平时,本片被选中工作;当为高电平时,本片不被选中工作。

⑶ 输出线3条 为运算放大器的反馈线,常接到运放的输出端。和为两条模拟电流输出线。+为一常数。

⑷ 电源线(4条) VCC为电源输入线,可在+5~+15V范围捏;为参考电压,一般在-10~+10V范围内,由稳压电源提供;DGND为数字地线;AGND为模拟量地线。通常接在一起。

三、设计内容

3.1、正弦波发生器

⑴ 正弦波信号波形数据文件的建立

ROM中的地址线宽为8,数据线宽为8,其中的正弦波波形数据由128个点构成,此数据经DAC0832,可在示波器上观察到正弦波形。 ROM中的波形文件建立如图:

⑵ LPM_ROM定制

① 选菜单 tools—MegaWizard Plug-In Manager,选择Create a new... ,然后按next,进入。选中LPM-ROM;最后在Browse下的栏中键入路径与输出文件名。

② 单击Next ,选择ROM的数据位宽度为8,地址线宽度为8,即设置此ROM能存储8位二进制数据共128个,然后进入。

③ 打开已经定制的ROM文件,观察文件中的实体表达、COMPONEN语句,例化语句和初始化文件的路径和文件名。

④ 最后将其设置为工程,并确定目标器件,进行测试,仿真波形如图所示。

⑶ 完成正弦信号发生器顶层文件的设计和测试

以下是正弦信号发生器的顶层设计。 其中调用了如上所说的ROM模块、ROM中的数据文件。

源程序:

module zhengxuanbo(RST,CLK,EN,Q);

output [7:0] Q; //定义输出Q为8位 input EN,CLK,RST; wire [6:0] TMP; //定义EN,CLK,RST为输入变量 //定义TMP中间变量为网线型 reg [6:0] Q1; //定义Q1为寄存器 always @(posedge CLK or negedge RST) //CLK上升沿或者RST下降沿触

if (!RST) Q1

⑷ 仿真波形:

⑸ 功能描述:CLK为时钟信号,EN为使能 ,高电平有效。 ⑹ 正弦波发生器实体图:

3.2、方波发生器

⑴ 方波信号波形数据文件的建立

如图所示:

⑵ LPM_ROM的定制与正弦波同

⑶ 方波发生器的顶层文件的建立和测试。 源程序:

module fangbo(RST,CLK,EN,Q); 发

output [7:0] Q; //定义输出Q为8位 input EN,CLK,RST; wire [6:0] TMP;

//定义EN,CLK,RST为输入变量

//定义TMP中间变量为网线型

reg [6:0] Q1; //定义Q1为寄存器

always @(posedge CLK or negedge RST) //CLK上升沿或者RST下降沿触

if (!RST) Q1

else if(EN) //如果EN为1,Q1加

1

Q1

else Q1

assign TMP=Q1; //Q1赋值给TMP

fang IC1(.address(TMP),.inclock(CLK),.q(Q));

Endmodule

⑷ 仿真波形:

⑸ CLK为时钟信号,EN为波形启动键 ,高电平有效。 由仿真图可以看出,满足产生方波的要求。 ⑹ 方波发生器实体图:;

3.3、三角波发生器

⑴ 三角波信号波形数据文件的建立

如图所示:

⑵ LPM_ROM的定制与正弦波相同

⑶ 三角波发生器的顶层文件的建立和测试。 源程序:

module sanjiao(RST,CLK,EN,Q); 发

if (!RST) Q1

//8位计数器

output [7:0] Q; //定义输出Q为8位 input EN,CLK,RST; wire [6:0] TMP;

//定义EN,CLK,RST为输入变量

//定义TMP中间变量为网线型

reg [6:0] Q1; //定义Q1为寄存器

always @(posedge CLK or negedge RST) //CLK上升沿或者RST下降沿触

else if(EN) //如果EN为1,Q1加1 Q1

else Q1

assign TMP=Q1; //Q1赋值给TMP

san IC1(.address(TMP),.inclock(CLK),.q(Q));

Endmodule

⑷ 仿真波形:

⑸ 功能描述:CLK为时钟信号,EN为波形启动键 ,高电平有效。 由仿真图可以看出,满足产生三角波的要求。 ⑹ 三角波发生器实体图:

3.4、 锯齿波发生器

⑴ 锯齿波信号波形数据文件的建立

如图所示:

⑵ LPM_ROM的定制与正弦波同

⑶ 锯齿波发生器的顶层文件的建立和测试。

源程序:

module juchi(RST,CLK,EN,Q);

output [7:0] Q; //定义输出Q为8位 input EN,CLK,RST; wire [6:0] TMP;

//定义EN,CLK,RST为输入变量

//定义TMP中间变量为网线型

reg [6:0] Q1; //定义Q1为寄存器

always @(posedge CLK or negedge RST) //CLK上升沿或者RST下降沿

触发

if (!RST) Q1

//8位计数器

else if(EN) //如果EN为1,Q1加1 Q1

else Q1

assign TMP=Q1; //Q1赋值给

TMP

ju IC1(.address(TMP),.inclock(CLK),.q(Q));

Endmodule

⑷ 仿真波形

如图所示:

⑸ 功能描述:CLK为时钟信号,EN为波形启动键 ,高电平有效。 由仿真图可以看出,满足产生锯齿波的要求。 ⑹ 锯齿波发生器实体图:

3.5、波形的选择

(1)源程序:

module xuan(OUT,IN0,IN1,IN2,IN3,SEL); output [7:0] OUT; input [7:0] IN0; input [7:0] IN1;

//定义输出OUT,为8位 //定义四路波形输入

input [7:0] IN2; input [7:0] IN3; input [1:0] SEL; reg [7:0] OUT;

always@(SEL or IN0 or IN1 or IN2 or IN3) begin case(SEL)

0 : OUT = IN0; 1 : OUT = IN1; 2 : OUT = IN2; 3 : OUT = IN3;

//当SEL为0,输出正弦波 //当SEL为1,输出方波 //当SEL为2,输出三角波 //当SEL为3,输出锯齿波

//OUT为8位

//选择波形

default : OUT = 8'bX; endcase end

endmodule

⑵ 仿真波形

⑶ 功能描述:clk1为时钟输入信号。 当SEL为 “00”时,输出为正弦波; 当SEL为 “01”时,输出为方波; 当SEL为 “10”时,输出为三角波; 当SEL为 “11”时,输出为锯齿波; EN为波形启动,停止键。 ⑷ 波形发生器总体结构图:

⑸ 引脚锁定

四、心得体会

通过本次课程设计,我的体会很多也很深,我以前没有对基于FPGA的正弦波发生器进行系统的研究,在本次完成本次课程设计的过程中,我遇到了很多问题,也走了很多弯路,还好最后终于通过自己的努力得到了理想的结果。通过本课题,我对EDA技术和FPGA技术有了更进一步的理解,掌握了FPGA的层次化设计电路的方法,掌握了用Verilog HDL语言编写各个功能模块并通过波形确定电路设计是否正确。掌握了下载验到目标器件的过程。

在课程设计中遇到的问题很多,有一些是比较基础的,但由于接触不多,还是遇到了不少麻烦,例如怎样把四种不同的波形用按键来控制输出的波形,以及启动停止功能。还有计数器的设计,我在参考老师以前上课写的程序后才慢慢去理解体会。但是经过了这么多的锻炼,现在再看这些问题,就觉得没有那么难了,我想这就是我得到的最大收获。

总之,这次课程设计给我一个很好的机会,使我受益匪浅,我相信这对我以后的学习和工作都会有很大的帮助。

五、参考文献

[1]黄正瑾.在系统编程技术及其应用.南京:东南大学出版社,2007

[2]彭介华.电子技术课程设计指导.北京:高等教育出版社,2007

[3]李国丽,朱维勇.电子技术实验指导书.合肥:中国科技大学出版社,2008

[4]潘松,黄继业.EDA技术实用教程.北京:科学出版社,2008

[5]郑家龙,王小海,章安元.集成电子技术基础教程.北京:高等教育出版社,2007

[6]宋万杰,罗丰,吴顺君.CPLD技术及其应用.西安:西安电子科技大学出版社,2006

[7]张昌凡,龙永红,彭涛.可编程逻辑器件及VHDL设计技术.广州:华南工学院出版社,2001

21


相关内容

  • 任意波形信号发生器
  • 一. 题目要求及分析 1.1题目要求 任意波形信号发生器 利用FPGA器件产生控制信号及数据信号,经DAC0832和TL082转换产生以下波形: 1) 2) 3) 4) 正斜率斜波: 正弦波: 锯齿波: 任意波形. 用示波器观察输出波形. 硬件电路内容和要求:用DAC0832实现数模转换电路,用TL ...

  • 调幅波信号源的设计与制作
  • 摘 要 波形发生器是一种常用的信号源,广泛地运用在电子电路.自动控制系统.和教学实验等领域.文中以AT89C51单片机为核心设计了一个低频函数信号发生器.信号发生器采用数字波形合成技术, 通过硬件电路和软件程序相结合, 可输出自定义波形, 如正弦波.方波.三角波.梯形波及其他任意波形,波形的频率和幅 ...

  • 简易多功能函数发生器
  • 摘 要 多功能函数发生器往往用来产生频率可调的信号源,甚至是产生可调范围大.精度高.信号稳定的信号源,广泛应用于通信.雷达.导航.宇航等领域.简易多功能函数发生器是由集成芯片ICL8038构成的精密振荡集成电路和集成运算放大器电路来实现.集成芯片ICL8038内部包括方波发生电路,三角波发生电路和正 ...

  • [模电函数发生器]课程设计实验报告
  • 东华理工大学能源与动力工程学院 本科生课程设计 题 目: 函数发生器的设计 课 程: 模拟电子技术基础 专 业: 电子科学技术 班 级: 学 号: 姓 名: 指导教师: 完成日期: 第 一 部 分 任 务 及 指 导 书 (含课程设计计划安排) <模拟电子技术>课程设计任务指导书 课题: ...

  • 多路信号发生器的设计
  • 多路信号发生器的设计制作 摘要:提出了一种基于FPGA 的DDS 多路信号源的原理方案和实现方法.该信号源以altera 公司生产的FPGA 芯片为核心,通过D /A 转换器转换,经FIR 滤波器滤波之后输出波形,使用按键控制可实现多路信号输出切换.此信号源可同时输出两路波形信号,可为正弦波.锯齿波 ...

  • 简易信号发生器课程设计
  • 新疆塔里木大学 <模拟电子技术> 课程设计说明书 课程名称:简易信号发生器设计 系 部:信息工程系 专 业:计算机 班 级:通信13 模拟电子技术课程设计任务书 系:信息工程系 年级:大二 专业:计算机 目 录 第1章 函数发生器方案选择及原理框图 1.1 函数发生器方案选择„„„„„„ ...

  • 函数信号发生器设计
  • 四川师范大学成都学院广播电视方向课程设计 函数信号发生器设计 学生姓名 学 号 所在学院 专业名称 班 级 指导教师 成 绩 杨媛媛 2012101077 通信工程学院 通信工程 2012级广电班 周永强 四川师范大学成都学院 二○一五年六月 函数信号发生器设计 学生:杨媛媛 指导教师:周永强 内容 ...

  • 简易函数信号发生器设计
  • 单片机原理及接口技术课程设计(论文) 题目: 简易函数信号发生器设计 院(系): 专业班级: 学 号: 学生姓名: 指导教师: (签字) 起止时间: 2015.6.22-2015.7.3 课程设计(论文)任务及评语 院(系):电气工程学院 教研室:自动化 注:成绩:平时20% 论文质量60% 答辩2 ...

  • 模拟电子线路 课程设计任务书
  • 模拟电子线路 课程设计任务书 20 14 -20 15 学年 第 1 学期 第 1 周- 4 周 注:1.此表一组一表二份,课程设计小组组长一份:任课教师授课时自带一份备查. 2.课程设计结束后与"课程设计小结"."学生成绩单"一并交院教务存档 摘要 本设计方 ...