SOPC - EDA实验讲义 - GW48-PK2 - 图文(2)

2020-04-14 03:12

(2)选实验电路模式“NO.5”后,用短路帽设定clock5和clock0的频率分别为256Hz和1024Hz。当用键1输入高电平时,扬声器发出256Hz低频声,当用键1输入低电平时,扬声器发出1024Hz高频声。也可用示波器观察输出信号。

此项设置只在初次装软件后第一次编程前进行,设置确定后就不必重复此设置了。 (3)如图1-20,点击Configure键,向1K30下载配置文件,如果连线无误,应出现图1-20报告配置完成的信息提示。 1.6 部分简单实验(以下实验项目选自《EDA技术使用教程》,更多更详细的实验内容请参考该书) 【实验1】1位全加器VHDL文本输入设计(实验目的:了解例化语句使用方法):

--程序3:1位二进制全加器顶层设计描述

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY f_adder IS

PORT (ain,bin,cin : IN STD_LOGIC; cout,sum : OUT STD_LOGIC ); END ENTITY f_adder;

ARCHITECTURE fd1 OF f_adder IS COMPONENT h_adder

PORT ( a,b : IN STD_LOGIC; co,so : OUT STD_LOGIC); END COMPONENT ; COMPONENT or2a

PORT (a,b : IN STD_LOGIC; c : OUT STD_LOGIC); END COMPONENT;

SIGNAL d,e,f : STD_LOGIC; BEGIN

u1 : h_adder PORT MAP(a=>ain,b=>bin, co=>d,so=>e);

u2 : h_adder PORT MAP(a=>e, b=>cin, co=>f,so=>sum);

u3 : or2a PORT MAP(a=>d, b=>f,c=>cout); END ARCHITECTURE fd1 ;

注意,此3程序必须分别进行编辑、设置成工程和仿真;最后处理顶层文件程序3。 --程序1:或门逻辑描述 LIBRARY IEEE ;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY or2a IS

PORT (a, b :IN STD_LOGIC; c : OUT STD_LOGIC ); END ENTITY or2a;

ARCHITECTURE one OF or2a IS BEGIN

c <= a OR b ; END ARCHITECTURE fu1;

--程序2:半加器描述 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS

PORT (a, b : IN STD_LOGIC; co, so : OUT STD_LOGIC); END ENTITY h_adder;

ARCHITECTURE fh1 OF h_adder is BEGIN

so <= NOT(a XOR (NOT b)) ; co <= a AND b ; END ARCHITECTURE fh1;

实验图1 含计数使能、异步复位和计数值并行预置功能4位加法计数器 实验图2 共阴数码管及其电路

【实验2】含异步清0和同步时钟使能的4位加法计数器

实验图1是一含计数使能、异步复位和计数值并行预置功能4位加法计数器,例1是其VHDL描述。由实验图1所示,图中间是4位锁存器;rst是异步清信号,高电平有效;clk是锁存信号;D[3..0]是4位数据输入端。当ENA为'1'时,多路选择器将加1器的输出值加载于锁存器的数据端;当ENA为'0'时将\加载于锁存器。

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT4B IS

PORT (CLK,RST,ENA : IN STD_LOGIC; OUTY : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC ); END CNT4B;

ARCHITECTURE behav OF CNT4B IS

SIGNAL CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN

P_REG: PROCESS(CLK, RST, ENA) BEGIN

IF RST = '1' THEN CQI <= \

ELSIF CLK'EVENT AND CLK = '1' THEN IF ENA = '1' THEN CQI <= CQI + 1; END IF; END IF; END PROCESS P_REG ; --进位输出

COUT<=CQI(0) AND CQI(1) AND CQI(2) AND CQI(3); OUTY <= CQI ;

6

END behav;

引脚锁定以及硬件下载测试: 建议选“实验电路模式5”,用键8(PIO7)控制RST;用键7(PIO6)控制ENA;计数溢出COUT接发光管D8(PIO15);OUTY是计数输出,接数码1(PIO19-PIO16,低位靠右);时钟CLK接clock0,通过短路帽选择4Hz信号。引脚锁定窗后进行编译、下载和硬件测试实验。将仿真波形,实验过程和实验结果写进实验报告。

【实验3】7段数码显示译码器设计

LIBRARY IEEE ;

USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DecL7S IS

PORT ( A : IN STD_LOGIC_VECTOR(3 DOWNTO 0) ; LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ) ; END ;

ARCHITECTURE one OF DecL7S IS BEGIN

PROCESS( A ) BEGIN

CASE A(3 DOWNTO 0) IS

WHEN \ LED7S <= \“3F”?0 WHEN \ LED7S <= \“06”?1 WHEN \ LED7S <= \“5B”?2 WHEN \ LED7S <= \“4F”?3 WHEN \ LED7S <= \“66”?4 WHEN \ LED7S <= \“6D”?5 WHEN \ LED7S <= \“7D”?6 WHEN \ LED7S <= \“07”?7 WHEN \ LED7S <= \“7F”?8 WHEN \ LED7S <= \“6F”?9 WHEN \ LED7S <= \“77”?10 WHEN \ LED7S <= \“7C”?11 WHEN \ LED7S <= \“39”?12 WHEN \ LED7S <= \“5E”?13 WHEN \ LED7S <= \“79”?14 WHEN \ LED7S <= \“71”?15 WHEN OTHERS => NULL ; END CASE ; END PROCESS ; END ;

引脚锁定以及硬件下载测试。建议选实验电路模式6,用数码8显示译码输出(PIO46--PIO40),键8、键7、键6、键5四位控制输入,硬件验证译码器的工作性能。注意,在仿真中,4位输入A必须用总线方式给数据。将仿真波形,实验过程和实验结果写进实验报告。

实验图3 计数器和译码器连接电路的顶层文件原理图

附加实验内容:用VHDL例化语句(参考实验1)按实验图3的方式,以例1和例2为底层元件,完成顶层文件设计,并重复以上实验过程。注意实验图3中的tmp是4位总线,led是7位总线。对于引脚锁定和实验,建议仍选实验电路模式6,用数码8显示译码输出,用键3作为时钟输入(每按2次键为1个时钟脉冲),或直接时钟信号clock0。(答案如下)。

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY TOP_PRJ IS

PORT (CLKK,RSTT,ENAA : IN STD_LOGIC; COUTT : OUT STD_LOGIC; OUTYY : OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END ENTITY TOP_PRJ;

ARCHITECTURE fd1 OF TOP_PRJ IS COMPONENT CNT4B

PORT (CLK : IN STD_LOGIC; ENA : IN STD_LOGIC; OUTY : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC ); END COMPONENT;

COMPONENT DECL7S

7

PORT ( A : IN STD_LOGIC_VECTOR(3 DOWNTO 0) ; LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ) ; END COMPONENT;

SIGNAL AB : STD_LOGIC_VECTOR(3 DOWNTO 0) ; BEGIN

u1 : CNT4B PORT MAP(CLK=>CLKK,RST=>RSTT,ENA=>ENAA,OUTY=>AB,COUT=>COUTT); u2 : DECL7S PORT MAP(A=>AB, LED7S=>OUTYY); END ARCHITECTURE fd1;;

第二章 全国大学生电子设计竞赛赛题练习

2.1 等精度频率计设计

作为电子设计竞赛培训实例,以下介绍电子设计竞赛题之一“简易数字频率计”设计步骤。根据赛题的基本要求和发挥部分的要求,拟设计等精度频率计,其指标如下:

(1)频率测试功能:测频范围0.1Hz~50MHz。测频精度:测频全域相对误差恒为百万分之一。

(2)脉宽测试功能:测试范围0.1μs~1s,测试精度0.01μs 。 (3)占空比测试功能:测试精度1%~99%。

设计步骤1,了解测频原理,给出测频方案:详细测频

原理和测频方案可参考《EDA技术实用教程》第12章。根

图 2-1 等精度频率计电路系统原理框图 据图2-3,分析其实现测频率、脉宽和占空比的工作原理(如

说明CL的功能等),给出分析报告。

设计步骤2,在文本编辑器上键入VHDL程序,以便完成图2-1中由FPGA担任的等精度测频专用芯片的设计:

详细源程序可参考《EDA技术实用教程》第12章,或光盘.\\gwdvpb\\gwdvpb_demo\\gwdvpb1k13\\etester.vhd,其对应的电路如图2-3所示

设计步骤3,对etester.vhd进行仿真,要求得出图2-2所示的测频时序图,并说明波形图中各信号的功能和波形设置作用(对输入信号),以及输出波形含义(对输出信号)。例如说明TCLK、START和CL三信号间的关系等。

设计步骤4,根据《EDA》第12章的第12-2式计算图2-2中的TCLK的频率(设BCLK的周期是500ns)。根据DATA的值来计算。 设计步骤5,再进行测脉宽仿真,要求得出图 2-4所示的等精度频率计测脉宽序图,并说明波形图中各信号的功能和波形设置作用(对输入信号),以及输出波形含义(对输出信号)。例如说明TCLK、START和EEND三信号间的关系等,并注意CL和SPUL在测脉宽中的电平设置。

设计步骤6,根据《EDA》第12章计算图4-4中的TCLK的高电平脉宽(设BCLK的周期是500ns),根据DATA值来计算。最后模仿波形图2-4,给出测TCLK低电平脉宽的仿真波形。

设计步骤7,如果以上的仿真测试无误,进行引脚锁定,以便能在GW48 EDA系统上进行FPGA硬件功能的测试。 这里假设适配板上的FPGA是EP1K30TC144(取电路模式5)。参考光盘中工程etester.vhd的引脚锁定情况(工程路径为:.\\gwdvpb\\gw48_pk2_demo\\gw48pk1k30\\etster.vhd)。

1)BCLK接系统的clock9(接50MHz);2)TCLK接clock0,可选择多个信号测试,如2、4、8Hz等,或拔下短路帽输入其他待测信号);3)信号CLR、CL、SPUL分别由键7、键8、键4控制。4)START和EEND分别由发光管7和8显示。5)8位输出数据DATA7、DATA6、…DATA0分别用数码管2和1显示,由高位到低位分别锁定在FPGA上。6)DATA读取选择信号SEL2、SEL1、SEL0分别由键3、2、1控制。

设计步骤8,在VHDL文件编译后,下载到GW48系统中,测试其硬件功能,以便更具体地确定FPGA作为一个专用器件的硬件功能。在测试过程中,应该仔细根据图2-2和2-4的电平设置,控制各键,以便测得正确频率和脉宽。

设计步骤9,如果能通过步骤8,则表明专用功能得FPGA已设计完成,可根据GWDVPB板的引脚情况,从新锁定引脚,以便可将1K30插到GWDVP-B板上,与板上的单片机和其他器件协调工作,完成独立的测频系统。引脚锁定情况可参考用于GWDVP-B板上的示例工程:.\\gwdvpb\\gwdvpb_demo\\gwdvpb1k30\\etester.vhd 。

设计步骤10,根据图2-1和2-2、2-4各信号的时序设置方式和输出信号的含义,设计单片机的程序,其中包括1)单片机与FPGA的数据通信程序、单片机控制FPGA进行测频和测脉宽的控制程序、数据运算程序等。这里可参考汇编程序: .\\gwdvpb\\gwdvp_asm\\gwdvp3.asm。最后将设计调试好的单片机程序编译后烧写进89C51中。

设计步骤11,将单片机和1K30适配板插在GWDVP-B板上,并用10针下载线将GW48系统上的下载口与GWDVP-B上1K30板的10针下载口向连接,将设计步骤9完成的文件下载进1K30中,进行统调。待测频率输入口是PIO16。统调中,利用GW48系统的各种标准频率,测试GWDVP-B板的功能。具体操作可参考第四章。

设计步骤12,将1K30的HEX编程文件,用SUPER-PRO编程器烧入27C020中,完成掉电保护设计。 设计步骤13,有条件的话,进行模拟电路设计,包括待测信号放大和整形。

8

FPGA?1?DCQDCQDCQSS1Q2ENDQ3PL(EEND)MUX21?0?BENA?1?(BCLK)(SPUL)SPUL2选1多路选择器(START)BZHBCLK32BENACLRBZQ64-8多路选择器(CL)(TCLK)(CLR)DCQENA32位标准频率计数器8DATATFTCLK32ENACLR32位待测频率计数器SEL3TSQ(DATA)SS1的逻辑功能为:当Q2=?1?,Q3=?0?则PUL=?1?,否则PUL=?0?当Q2=?1?,Q3=?1?则EEND=?1?,否则EEND=?0? (SEL) 图 2-2 等精度频率计测频时序图(详细参考《EDA》书配套的ppt课件) 图 2-3 根据例4-1绘出的FPGA内部电路RTL原理图 图 2-4 等精度频率计测频时序图 2.2 数字移相正弦信号发生器设计 1. 实验目的:学习直接数字综合器DDS及基于此模块的数字信号发生器的设计和实现。 2. 实验原理:图1是此电路模型图,其中“FWORD” 是8位频率控制字,控制输出正弦信号的相移量;其“PWORD”是8位相移控制字,控制输出正弦信号的相移量;ADDER32B和ADDER10B分别为32位和10位加法器;SIN_ROM是存放正弦波数据的ROM,10位数据线,10位地址线,其中的数据文件是LUT10X10.mif,可由MATLAB直接生成;REG32B和REG10B分别是32位和10位寄存器;POUT和FOUT分别为10位输出,可以分别与两个高速D/A相接,他们分别输出参考信号和可移相正弦波信号。 D/A转换电路A频率字输入A路输出按键控制单片机系统FPGA直接数字合成相位字输入器D/A转换电路BB路输出液晶显示幅度控制 图2-5 基于DDS的数字移相信号发生器电路模型图 图2 –6 数字式移相信号发生器完整结构

3. 实验内容1:首先利用VHDL完成10位输出数据宽度的移相信号发生器的设计,其中包括设计正弦波形数据MIF文件(数据深度1024、数据类型是10进制数);给出仿真波形。最后进行硬件测试,对于GW48系统,选择模式1:CLK接clock0,接12MHz;用键4、3控制相位字PWORD输入,键2、1控制频率字FWORD输入。观察他们的李萨如图形。实验内容2:修改设计,增加幅度控制电路(可以用一乘法器控制输出幅度);实验内容3:利用MATLAB设计和硬件实现。 实验思考题:如果频率控制字宽度直接用32位,相位控制字宽度直接用10位,输出仍为10位,时钟为20MHz,计算频率、相位和幅度3者分别的步进精度是多少?给出输出频率的上下限。

9

4.示例工程文件:光盘.\\cyclone_1k30_demo\\ep1k30_adda\\phase_shifter\\dds_vhdl.vhd ; 演示方法参考该路径readme。

注意该工程的主文件、其他元件文件和ROM文件,及其初始化文件LUT10X10.mif(注意,此数据文件若用MATLAB和DSP

Builder直接生成最为快捷),另对于GWAC3板,用QuartusII打开目录:.\\cyclone_1k30_demo\\ep1c3_adda\\phase_shifter_vhdl\\dds_vhdl.vhd ;

2.3 测相仪设计

原理:图5是测相仪电路框图。首先利用实验1的等精度频率计测得占空比: K = N1/(N1+N2)

LED显示A路信号比较整形数字鉴相器FPGA测频,测周期计数值单片机系统键盘控制B路信号比较整形

图2-7 测相仪模型

其中N1是高电平脉宽时间内的计数值,N2是低电平脉宽时间内的计数值。图2-8的TPAS.GDF工程中的模块ETESTER的功能结构和源程序与以上的等精度频率计完全相同,只是在原来的待测频率输入端TCLK接了一个鉴相器模块EPD,它的电路结构如图2-9所示。由图2-10可知,两路同频率不同相位的时钟信号PA和PB通过鉴相器EPD后,将输出一路具有不同占空比的脉冲波形。其频率与输入频率相同,而占空比与PB和PA信号上升沿的时间有关。显然EPD的脉宽等于PB和PA信号上升沿的时间差。这个时间差即为PB、PA间的相位差。它正好等于EPD的占空比乘以

360?,即:相位差 = K*360?= N1/(N1+N2)360? ;

示例工程文件,光盘: .\\gwdvpb\\gwdvpb_demo\\gwdvp_t_phase1k30\\tpas.gdf 。测试步骤:

1、 将GWAK30或GWAC3适配板插在GWDVPB电子设计应用板上,并对其上的掉电保护器件编程配置光盘目

录中如下编程文件:A:对GWAK30板,编程27C020,以如下工程的HEX文件编程: .\\gwdvpb\\gwdvpb_demo\\gwdvp_t_phase1k30\\tpas.gdf 中的工程TPAS对应的HEX文件编程.;

2、 连上接地线,两路被测信号进入GWDVPB板上的PIO16和PIO17,按键1测频率、键2测占空比、键3测鉴相后的脉冲信号的脉宽、鉴4测此两路信号的相位差。为了得到两路移相信号,在GW48系统上插上对应的适配板,如实验2的操作,用示波器测出两路正弦信号,使输出峰峰值不大于4V;用两接线及一地线将由GW48主系统上的两路正弦信号(严格情况下要求整形)接到GWDVPB板上的两个输入端口(PIO16/PIO17),以便测他们的频率和相差。

图2-8 测相仪电路原理图(TPAS.gdf工程)

图2-9 相位检测原理图epd

图2-10 鉴相器EPD的仿真波形

2.4 逻辑分析相仪设计

逻辑分析仪VHDL完整程序示例:光盘.\\cyclone_1k30_demo\\ep1k30_adda\\logic_synsz\\reserv.vhd ; 演示方法参考该路径readme。注意:对于GWAC3板,用QuartusII打开工程目录:.\\cyclone_1k30_demo\\ep1c3_adda\\logic_synsz\\reserv.vhd ;

10


SOPC - EDA实验讲义 - GW48-PK2 - 图文(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:英美文化与国家概况教案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: