vhdl实验报告.docx

上传人:b****3 文档编号:6979263 上传时间:2023-05-10 格式:DOCX 页数:26 大小:2.06MB
下载 相关 举报
vhdl实验报告.docx_第1页
第1页 / 共26页
vhdl实验报告.docx_第2页
第2页 / 共26页
vhdl实验报告.docx_第3页
第3页 / 共26页
vhdl实验报告.docx_第4页
第4页 / 共26页
vhdl实验报告.docx_第5页
第5页 / 共26页
vhdl实验报告.docx_第6页
第6页 / 共26页
vhdl实验报告.docx_第7页
第7页 / 共26页
vhdl实验报告.docx_第8页
第8页 / 共26页
vhdl实验报告.docx_第9页
第9页 / 共26页
vhdl实验报告.docx_第10页
第10页 / 共26页
vhdl实验报告.docx_第11页
第11页 / 共26页
vhdl实验报告.docx_第12页
第12页 / 共26页
vhdl实验报告.docx_第13页
第13页 / 共26页
vhdl实验报告.docx_第14页
第14页 / 共26页
vhdl实验报告.docx_第15页
第15页 / 共26页
vhdl实验报告.docx_第16页
第16页 / 共26页
vhdl实验报告.docx_第17页
第17页 / 共26页
vhdl实验报告.docx_第18页
第18页 / 共26页
vhdl实验报告.docx_第19页
第19页 / 共26页
vhdl实验报告.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

vhdl实验报告.docx

《vhdl实验报告.docx》由会员分享,可在线阅读,更多相关《vhdl实验报告.docx(26页珍藏版)》请在冰点文库上搜索。

vhdl实验报告.docx

vhdl实验报告

(此文档为word格式,下载后您可任意编辑修改!

福建农林大学计算机与信息学院

信息工程类

 

实验报告

 

课程名称:

VHDL数字系统设计

姓名:

系:

电子信息工程系

专业:

电子信息工程

年级:

2010级

学号:

指导教师:

孙奇燕

职称:

讲师

 

2013年11月13日

 

实验项目列表

序号

实验项目名称

成绩

指导教师

1

实验一数控分频器的设计

孙奇燕

2

实验二嵌入式锁相环PLL应用

孙奇燕

3

实验三正弦信号发生器

孙奇燕

4

实验四频率计

孙奇燕

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

福建农林大学计算机与信息学院信息工程类实验报告

系:

电子信息工程系专业:

电子信息工程年级:

2010级

姓名:

学号:

实验课程:

VHDL数字系统设计

实验室号:

__田C407实验设备号:

07实验时间:

11.12

指导教师签字:

成绩:

实验一数控分频器的设计

1.实验目的和要求

学习数控分频器的设计、分析和测试方法。

2.实验原理

信号有不同的分频比,数控分频器就是用计数值可并行预置的加法计数器设计完成的,方法是将计数溢出位与预置数加载输入信号相接即可,详细设计程序如例1所示。

数控分频器的仿真波形如图1所示:

输入不同的CLK频率和预置值D,给出如图1的时序波形。

图1当给出不同输入值D时,FOUT输出不同频率(CLK周期=50ns)

3.主要仪器设备(实验用的软硬件环境)

实验的硬件环境是:

微机一台

GW48EDA实验开发系统一套

电源线一根

十芯JTAG口线一根

USB下载线一根

USB下载器一个

示波器

实验的软件环境是:

QuartusII9.0软件

4.操作方法与实验步骤

(1)创建工程,并命名位test。

 

(2)打开QuartusII,建立VHDL文件,并输入设计程序。

保存为DVF.   

(3)选择目标器件。

Acex1k—EP1K100QC208-3。

  

(4)启动编译。

 

(5)建立仿真波形图。

   

(6)仿真测试和波形分析。

   

(7)引脚锁定编译。

 

(8)编程下载。

 

(9)硬件测试

5.实验内容及实验数据记录

在实验系统上硬件验证例5-20的功能。

可选实验电路模式1(第一章图4);键2键1负责输入8位预置数D(PIO7-PIO0);CLK由clock0输入,频率选65536Hz或更高(确保分频后落在音频范围);输出FOUT接扬声器(SPKER)。

编译下载后进行硬件测试:

改变键2键1的输入值,可听到不同音调的声音。

6.实验数据处理与分析

1)实验代码

【例1】

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYDVFIS

PORT(CLK:

INSTD_LOGIC;

D:

INSTD_LOGIC_VECTOR(7DOWNTO0);

FOUT:

OUTSTD_LOGIC);

END;

ARCHITECTUREoneOFDVFIS

SIGNALFULL:

STD_LOGIC;

BEGIN

P_REG:

PROCESS(CLK)

VARIABLECNT8:

STD_LOGIC_VECTOR(7DOWNTO0);

BEGIN

IFCLK'EVENTANDCLK='1'THEN

IFCNT8=""THEN

CNT8:

=D;--当CNT8计数计满时,输入数据D被同步预置给计数器CNT8

FULL<='1';--同时使溢出标志信号FULL输出为高电平

ELSECNT8:

=CNT8+1;--否则继续作加1计数

FULL<='0';--且输出溢出标志信号FULL为低电平

ENDIF;

ENDIF;

ENDPROCESSP_REG;

P_DIV:

PROCESS(FULL)

VARIABLECNT2:

STD_LOGIC;

BEGIN

IFFULL'EVENTANDFULL='1'THEN

CNT2:

=NOTCNT2;--如果溢出标志信号FULL为高电平,D触发器输出取反

IFCNT2='1'THENFOUT<='1';ELSEFOUT<='0';

ENDIF;

ENDIF;

ENDPROCESSP_DIV;

END;

2.)实验仿真

2.1输入代码

2.2编译测试

2.3引脚锁定

2.4软件仿真结果

2.5VHDL文本输入法时序仿真波形

●错误波形

●调试后得到正确波形

3)硬件相关部分的测试

2)硬件测试结果

可以听到不同的蜂鸣器声音,改变CLK的选择项可以变换声音的频率。

7.质疑、建议、问题讨论

通过本次实验我学会了数控分频器的设计、分析和测试方法,但同时实验中还存在一些问题没有解决,如为什么数码管显示的数值是怎么说的,这个在实验中并没有做出进一步的理解与解决;以及对时钟频率影响在程序中的体现都有了进一步的理解,通过实验结果更加理解了实验程序中是如何通过改变蜂鸣器的音调来体现数控分频的,理解了分频的概念。

福建农林大学计算机与信息学院信息工程类实验报告

系:

电子信息工程系专业:

电子信息工程年级:

2010级

姓名:

学号:

实验课程:

VHDL数字系统设计

实验室号:

__田C407实验设备号:

07实验时间:

11.12

指导教师签字:

成绩:

实验二嵌入式锁相环PLL应用

1.实验目的和要求

学习使用Cyclone器件中的嵌入式锁相环,为以后的设计作准备。

2.实验原理

锁相环路(PLL)亦称自动相位控制(APC)电路,它是一种利用相位误差消除频率误差的反馈控制系统。

如图1所示,由鉴相器(相位比较器)、环路滤波器(低通滤波器)和压控振荡器三个基本部件组成。

3.主要仪器设备(实验用的软硬件环境)

实验的硬件环境是:

微机一台

GW48EDA实验开发系统一套

电源线一根

十芯JTAG口线一根

USB下载线一根

USB下载器一个

示波器

实验的软件环境是:

QuartusII9.0软件

4.操作方法与实验步骤

1.打开QuartusII,创建一新工程,工程名称为PLLs,顶层实体名为GW_PLL。

2.建立PLL模块

3.创建顶层文件并仿真PLL模块

4.实测PLL模块

5.实验内容及实验数据记录

调用PLL的LPM模块创建GW_PLL.vhd的顶层文件编译并仿真。

修改PLL的输出频率,再次编译仿真。

步骤如下:

(一)建立PLL模块

1、首先创建一新工程,工程名称为PLLs,顶层实体名为GW_PLL。

2、在QuartusII的Tools菜单中选择MegaWizardPlug-InManager,对弹出的界面选择Createanewcustom…项,定制一个新的模块。

在弹出的对话框,在左栏选择IO项下的ALTPLL,再选Cyclone器件和VHDL语言方式,最后输入设计文件存放的路径和文件名,如d:

\PLLs\PLL50.vhd。

单击Next按钮后弹出图1所示的窗口。

2、在图1所示窗口中首先设置参考时钟频率inclk0为50MHz,注意,这个时钟频率不能低于16MHz,接着在图1所示的窗口中选择锁相环的工作模式(选择内部反馈通道的通用模式)。

单击Next按钮后即进入图2所示的窗口。

在此窗口主要选择PLL的控制信号,如PLL的使能控制pllena;异步复位areset;锁相输出locked等。

为了简便,在此消去所有控制信号。

选择第一个输出时钟信号c0相对于输入时钟的倍频因子是2,图3所示的窗口中选中Usethisc1,即选择另一输出时钟端c1,相对输入时钟的倍频因子是12,时钟相移和时钟占空比不变,保持原来默认的数据。

4、连续点击“Next”完成设计。

(二)创建顶层文件并仿真PLL模块(参考《EDA技术与VHDL》第7章)

下例是调用了锁相环PLL50模块的顶层设计文件,,顶层文件用VHDL编写,保存为GW_PLL.vhd,用setastoplevelEntity设为顶层文件编译并仿真。

图1选择参考时钟为50MHz(输入频率不能小于16MHz)

图2选择控制信号

图3选择输出频率为75MHz

图4修改输出频率选择

(三)实测PLL模块

对于工程GW_PLL,选择器件为EP1C3TC144,锁相环的频率输入端只能是pin16和pin17脚,在此不仿锁在pin17上,恰好对应实验箱的clock2(clock5对应pin16),所以在实验中要用一短线将Clock0的50MHz信号引接到clock5的输入端(要拔去其上的短路帽,引过来的短线接靠左排上任一针上),输出可锁定于任何一IO口上。

在此锁在GW48箱上右排座下端的标有“IO26”上,它对应pin67。

编译后下载,用频率计测试此端的频率输出,应该为75MHz。

6.实验数据处理与分析

1.实验代码

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYGW_PLLIS

PORT(CLK0:

INSTD_LOGIC;

FOUT0:

OUTSTD_LOGIC);

ENDGW_PLL;

ARCHITECTUREbehavOFGW_PLLIS

COMPONENTPLL50

PORT(inclk0:

INSTD_LOGIC:

='0';

c0:

OUTSTD_LOGIC);

ENDCOMPONENT;

BEGIN

u1:

PLL50PORTMAP(inclk0=>CLK0,c0=>FOUT0);

ENDbehav;

2.实验测试

设计同时输出3个不同频率的PLL模块。

波形如图17.4仿真波形图:

图17.4选择输出频率为75MHz

7.质疑、建议、问题讨论

通过本次实验,学会了如何建立模块,如何创建顶层文件以及对模块的仿真,虽然对PLL的相关知识了解的不多,但通过此次实验初步了解了什么是PLL以及相关的一些设置和操作,但在实践中明显还很是生疏,有待进一步的练习与实践;实验中也要特别注意时钟频率的设置以及一些细节方面,从而减少犯错的机会。

福建农林大学计算机与信息学院信息工程类实验报告

系:

电子信息工程系专业:

电子信息工程年级:

2010级

姓名:

学号:

实验课程:

VHDL数字系统设计

实验室号:

田C407实验设备号:

07实验时间:

11.12

指导教师签字:

成绩:

实验三正弦信号发生器

1.实验目的和要求

进一步熟悉QuartusII及其LPM_ROM与FPGA硬件资源的使用方法。

2.实验原理

正弦信号发生器由三部分组成:

数据计数器或地址发生器、数据ROM和DA。

顶层文件SINGT.VHD在FPGA中实现,包含两部分:

ROM的地址发生器由5位计数器担任,正弦数据存储器ROM由LPM_ROM构成。

该结构可以达到最优设计,LPM_ROM底层是FPGA中的EAB或ESB等。

对每周期的正弦波形采样64个点,地址发生器的时钟CLK的输入频率f0与DA输出的频率f间的关系是f=f064。

3.主要仪器设备(实验用的软硬件环境)

实验的硬件环境是:

微机一台

GW48EDA实验开发系统一套

电源线一根

十芯JTAG口线一根

USB下载线一根

USB下载器一个

示波器

实验的软件环境是:

QuartusII9.0软件

4.操作方法与实验步骤

根据例1,在QuartusII上完成正弦信号发生器设计,包括仿真和资源利用情况了解(假设利用Cyclone器件)。

最后在实验系统上实测。

信号输出的DA使用实验系统上的DAC0832,注意其转换速率是1μs,其引脚功能简述如下:

ILE:

数据锁存允许信号,高电平有效,系统板上已直接连在+5V上;WR1、WR2:

写信号1、2,低电平有效;XFER:

数据传送控制信号,低电平有效;VREF:

基准电压,可正可负,-10V~+10V;RFB:

反馈电阻端;IOUT1IOUT2:

电流输出端。

DA转换量是以电流形式输出的,所以必须将电流信号变为电压信号;AGNDDGND:

模拟地与数字地。

在高速情况下,此二地的连接线必须尽可能短,且系统的单点接地点须接在此连线的某一点上。

建议选择GW48系统的电路模式No.5,由第一章对应的电路图可见,DAC0832的8位数据口D[7..0]分别与FPGA的PIO31、30..、24相连,如果目标器件是EP1CQ240,则对应的引脚是:

21,41,128,132,133,134,135,136;时钟CLK接系统的clock0,对应的引脚是28,选择的时钟频率不能太高(转换速率1μs,)。

还应该注意,DAC0832电路须接有+-12V电压:

GW48系统的+-12V电源开关在系统左侧上方。

然后下载SINGT.sof到FPGA中;波形输出在系统左下角,将示波器的地与GW48系统的地(GND)相接,信号端与“AOUT”信号输出端相接。

如果希望对输出信号进行滤波,将GW48系统左下角的拨码开关的“8”向下拨,则波形滤波输出,向上拨则未滤波输出,这可从输出的波形看出。

基本步骤如下:

一、顶层文件设计

1创建工程和编辑设计文件

正弦信号发生器的结构由3部分组成

(1):

数据计数器或地址发生器、数据ROM和DA。

性能良好的正弦信号发生器的设计要求此3部分具有高速性能,且数据ROM在高速条件下,占用最少的逻辑资源,设计流程最便捷,波形数据获最方便。

图1所示是此信号发生器结构图,顶层文件SINGT.VHD在FPGA中实现,包含2个部分:

ROM的地址信号发生器由5位计数器担任,和正弦数据ROM,拒此,ROM由LPM_ROM模块构成能达到最优设计,LPM_ROM底层是FPGA中的EAB或ESB等。

地址发生器的时钟CLK的输入频率f0与每周期的波形数据点数(在此选择64点),以及DA输出的频率f的关系是:

f=f064

图1正弦信号发生器结构图

2创建工程

3编译前设置

在对工程进行编译处理前,必须作好必要的设置。

具体步骤如下:

1、选择目标芯片;

2、选择目标器件编程配置方式;

3、选择输出配置;

4编译及了解编译结果

5正弦信号数据ROM定制(包括设计ROM初始化数据文件)

6仿真

7引脚锁定、下载和硬件测试

8使用嵌入式逻辑分析仪进行实时测试

9对配置器件编程

10了解此工程的RTL电路图

5.实验内容及实验数据记录

1)系统方框图

2)实验代码

【正弦信号发生器顶层设计】

LIBRARYIEEE;--正弦信号发生器源文件

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYSINGTIS

PORT(CLK:

INSTD_LOGIC;--信号源时钟

DOUT:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));--8位波形数据输出

END;

ARCHITECTUREDACCOFSINGTIS

COMPONENTdata_rom--调用波形数据存储器LPM_ROM文件:

data_rom.vhd声明

PORT(address:

INSTD_LOGIC_VECTOR(5DOWNTO0);--6位地址信号

inclock:

INSTD_LOGIC;--地址锁存时钟

q:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

ENDCOMPONENT;

SIGNALQ1:

STD_LOGIC_VECTOR(5DOWNTO0);--设定内部节点作为地址计数器

BEGIN

PROCESS(CLK)--LPM_ROM地址发生器进程

BEGIN

IFCLK'EVENTANDCLK='1'THENQ1<=Q1+1;--Q1作为地址发生器计数器

ENDIF;

ENDPROCESS;

u1:

data_romPORTMAP(address=>Q1,q=>DOUT,inclock=>CLK);--例化

END;

3)输入代码

4)编译测试

5)引脚配置

5)RTL电路图

选择菜单Tools——>RTL Viewer即弹出图3-35所示的工程singt的RTL电路图,由图可以了解该工程的电路结构。

其中,六个D触发器构成6位锁存器,他们与加法器构成6位计数器,即波形数据ROM的地址发生器。

6)正弦信号ROM定制

6.1设计ROM初始化数据文件。

6.1.1建立.mif格式文件。

6.1.2建立.hex格式文件。

6.实验数据处理与分析

仿真结果如下

7.质疑、建议、问题讨论

通过本次实验了解了正弦信号发生器的结构组成部分以及数据ROM应该在什么样的条件下进行设计最有利于实验的进行,如何更好的获得波形数据;同时更进一步熟悉了编译前的设置,更好的了解了编译以及编译结果,另外,初步了解了RTL电路图。

福建农林大学计算机与信息学院信息工程类实验报告

系:

电子信息工程系专业:

电子信息工程年级:

2010级

姓名:

学号:

实验课程:

VHDL数字系统设计

实验室号:

__田C407实验设备号:

07实验时间:

11.12

指导教师签字:

成绩:

实验四频率计

1.实验目的和要求

设计8位16进制频率计,学习较复杂的数字系统设计方法。

2.实验原理

根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1秒的输入信号脉冲计数允许的信号;1秒计数结束后,计数值被锁入锁存器,计数器清0,为下一测频计数周期作好准备。

测频控制信号可以由一个独立的发生器来产生。

3.主要仪器设备(实验用的软硬件环境)

实验的硬件环境是:

微机一台

GW48EDA实验开发系统一套

电源线一根

十芯JTAG口线一根

USB下载线一根

USB下载器一个

示波器

实验的软件环境是:

QuartusII9.0软件

4.操作方法与实验步骤

根据测频原理,测频控制时序可以如图1所示。

设计要求是:

FTCTRL的计数使能信号CNT_EN能产生一个1秒脉宽的周期信号,并对频率计中的32位二进制计数器COUNTER32B(图2)的ENABL使能端进行同步控制。

当CNT_EN高电平时允许计数;低电平时停止计数,并保持其所计的脉冲数。

在停止计数期间,首先需要一个锁存信号LOAD的上跳沿将计数器在前1秒钟的计数值锁存进锁存器REG32B中,并由外部的16进制7段译码器译出,显示计数值。

设置锁存器的好处是数据显示稳定,不会由于周期性的清0信号而不断闪烁。

锁存信号后,必须有一清0信号RST_CNT对计数器进行清零,为下1秒的计数操作作准备。

图1频率计测频控制器FTCTRL测控时序图

图2频率计电路框图

5.实验内容及实验数据记录

分别仿真测试模块例1、例2和例3,再结合例4完成频率计的完整设计和硬件实现,并给出其测频时序波形及其分析。

建议选实验电路模式5;8个数码管以16进制形式显示频输出;待测频率输入FIN由clock0输入,频率可选4Hz、256HZ、3Hz...50MHz等;1HZ测频控制信号CLK1HZ可由clock2输入(用跳线选1Hz)。

注意,这时8个数码管的测频显示值是16进制的。

(实验中可以将50MHz频率用线引向Clock2,但要拔除其上的短路帽)

6.实验数据处理与分析

1)实验代码

【例1】

LIBRARYIEEE;--测频控制电路

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYFTCTRLIS

PORT(CLKK:

INSTD_LOGIC;--1Hz

CNT_EN:

OUTSTD_LOGIC;--计数器时钟使能

RST_CNT:

OUTSTD_LOGIC;--计数器清零

Load:

OUTSTD_LOGIC);--输出锁存信号

ENDFTCTRL;

ARCHITECTUREbehavOFFTCTRLIS

SIGNALDiv2CLK:

STD_LOGIC;

BEGIN

PROCESS(CLKK)

BEGIN

IFCLKK'EVENTANDCLKK='1'THEN--1Hz时钟2分频

Div2CLK<=NOTDiv2CLK;

ENDIF;

ENDPROCESS;

PROCESS(CLKK,Div2CLK)

BEGIN

IFCLKK='0'ANDDiv2CLK='0'THENRST_CNT<='1';--产生计数器清零信号

ELSERST_CNT<='0';ENDIF;

ENDPROCESS;

Load<=NOTDiv2CLK;CNT_EN<=Div2CLK;

ENDbehav;

【例2】

LIBRARYIEEE;--32位锁存器

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYREG32BIS

PORT(LK:

INSTD_LOGIC;

DIN:

INSTD_LOGIC_VECTOR(31DOWNTO0);

DOUT:

OUTSTD_LOGIC_VECTOR(31DOWNTO0));

ENDREG32B;

ARCHITECTUREbehavOFREG32BIS

BEGIN

PROCESS(LK,DIN)

BEGIN

IFLK'EVENTANDLK='1'THENDOUT<=DIN;

ENDIF;

ENDPROCESS;

ENDbehav;

【例3】

LIBRARYIEEE;--32位计数器

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCOUNTER32BIS

PORT(FIN:

INSTD_LOGIC;--时钟信号

CLR:

INSTD_LOGIC;--清零信号

ENABL:

INSTD_LOGIC;--计数使能信号

DOUT:

OUTSTD_LOGIC_VECTOR(31DOWNTO0));--

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2