EDA技术实验讲义.docx
- 文档编号:8727329
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:205
- 大小:292.08KB
EDA技术实验讲义.docx
《EDA技术实验讲义.docx》由会员分享,可在线阅读,更多相关《EDA技术实验讲义.docx(205页珍藏版)》请在冰豆网上搜索。
EDA技术实验讲义
EDA/SOPC技术实验讲义
陕西科技大学
电气与信息工程学院
4第一章EDA_VHDL实验/设计与电子设计竞赛
41-1、应用QuartusII完成基本组合电路设计
51-2.应用QuartusII完成基本时序电路的设计
61-3.设计含异步清0和同步时钟使能的加法计数器
71-4.7段数码显示译码器设计
81-5.8位数码扫描显示电路设计
91-6.数控分频器的设计
101-7.32位并进/并出移位寄存器设计
101-8.在QuartusII中用原理图输入法设计8位全加器
111-9.在QuartusII中用原理图输入法设计较复杂数字系统
111-10.用QuartusII设计正弦信号发生器
131-11.8位16进制频率计设计
161-12.序列检测器设计
161-13.VHDL状态机A/D采样控制电路实现
181-14.数据采集电路和简易存储示波器设计
191-15.比较器和D/A器件实现A/D转换功能的电路设计
201-16移位相加硬件乘法器设计
241-17采用流水线技术设计高速数字相关器
241-18线性反馈移位寄存器设计
251-19乐曲硬件演奏电路设计
281-20乒乓球游戏电路设计
321-21循环冗余校验(CRC)模块设计
331-22.FPGA步进电机细分驱动控制设计(电子设计竞赛赛题)
341-23.FPGA直流电机PWM控制实验
351-24.VGA彩条信号显示控制器设计
371-25.VGA图像显示控制器设计
371-26.清华大学学生基于GW48PK2系统VGA图像显示控制器设计示例5则
381-27.直接数字式频率合成器(DDS)设计实验(电子设计竞赛赛题)
391-28.嵌入式锁相环PLL应用实验
411-29.使用嵌入式锁相环的DDS设计实验(200MHz超高速DAC的PLL测试
421-30.基于DDS的数字移相信号发生器设计(电子设计竞赛赛题)
451-31.采用超高速A/D的存储示波器设计(含PLL,电子设计竞赛赛题)
461-32.信号采集与频谱分析电路设计(电子设计竞赛赛题)
461-33.等精度数字频率/相位测试仪设计实验(电子设计竞赛赛题)
481-34.FPGA与单片机联合开发之isp单片机编程方法
491-35.测相仪设计(电子设计竞赛赛题)
501-36.PS/2键盘鼠标控制电子琴模块设计
501-37.PS/2鼠标与VGA控制显示游戏模块设计
501-38.FPGA_单片机_PC机双向通信测频模块设计
501-39.10路逻辑分析仪设计(电子设计竞赛赛题)
511-40.IP核:
数控振荡器NCO应用设计
521-41.IP核:
FIR数字滤波器应用设计
531-42.IP核:
FFT应用设计
531-43.IP核:
CSCVGA至电视色制互转模块应用设计
541-44.IP核:
嵌入式逻辑分析仪SignalTapII调用
551-45.USB与FPGA通信实验
56第二章SOPC/EDA设计实验I
562-1用逻辑锁定优化技术设计流水线乘法器实验
572-2用逻辑锁定优化技术设计16阶数字滤波器实验
592-3基于DSPBuilder的FIR数字滤波器设计实验
602-4基于DSPBuilder的IIR数字滤波器设计实验
602-5基于DSPBuilder的DDS与数字移相信号发生器设计实验
622-6m序列伪随机序列发生器设计实验
632-7巴克码检出器设计实验
652-8RS码编码器设计实验
652-9正交幅度调制与解调模型设计实验
67第三章SOPC/EDA设计实验II
673-1基于MATLAB/DSPBuilderDSP可控正弦信号发生器设计
723-232位软核嵌入式处理器系统Nios开发实验
733-3设计一个简单的SOPC系统
743-4简单测控系统串口接收程序设计
743-5GSM短信模块程序设计
753-6基于SOPC的秒表程序设计
773-7NiosAvalonSlave外设(PWM模块)设计
783-8NiosAvalonSlave外设(数码管动态扫描显示模块)设计
793-15DMA应用和俄罗斯方块游戏设计
79第四章SOPC/EDA设计实验III(NiosII系统设计)
794-1、建立NIOSII嵌入式处理器硬件系统
874-2、NIOSII软件设计与运行流程
944-3、加入用户自定义组件设计
1004-4、加入用户自定义指令设计
1034-5、FLASH编程下载
1044-6、设计DSP处理器功能系统
1044-7、AM调制电路设计
105第五章液晶接口实验
1055-1GDM12864A液晶显示模块接口开发
1115-2HS162-4液晶显示模块与单片机的接口
1145-3G240-128A液晶显示模块的接口
115第六章CPU及其结构组件设计实验
1156-1复杂指令CPU设计
1226-28051/89C51单片机核于FPGA中实现实验
124第七章模拟EDA实验
1247-1模拟EDA实验及其设计软件使用向导(PAC_Designer使用)
1247-2基于ispPAC80的5阶精密低通滤波器设计
1267-3基于ispPAC10的直流增益为9的放大器设计
129附录:
GW48EDA/SOPC主系统使用说明
129第一节:
GW48教学系统原理与使用介绍,
132第二节:
实验电路结构图
137第三节:
超高速A/D、D/A板GW-ADDA说明
138第四节:
步进电机和直流电机使用说明
138第五节:
SOPC适配板使用说明
139第六节:
GWDVPB电子设计竞赛应用板使用说明
141第七节:
GWCK/PK2/PK3系统万能接插口与结构图信号/与芯片引脚对照表
第一章EDA_VHDL实验/设计与电子设计竞赛
1-1.应用QuartusII完成基本组合电路设计
(1)实验目的:
熟悉QuartusⅡ的VHDL文本设计流程全过程,学习简单组合电路的设计、多层次电路设计、仿真和硬件测试。
(2)实验内容1:
首先利用QuartusⅡ完成2选1多路选择器(例3-3)的文本编辑输入(mux21a.vhd)和仿真测试等步骤,给出图3-3所示的仿真波形。
最后在实验系统上进行硬件测试,验证本项设计的功能。
(3)实验内容2:
将此多路选择器看成是一个元件mux21a,利用元件例化语句描述图3-18,并将此文件放在同一目录中。
以下是部分参考程序:
...
COMPONENTMUX21A
PORT(a,b,s:
INSTD_LOGIC;
y:
OUTSTD_LOGIC);
ENDCOMPONENT;
...
u1:
MUX21APORTMAP(a=>a2,b=>a3,s=>s0,y=>tmp);
u2:
MUX21APORTMAP(a=>a1,b=>tmp,s=>s1,y=>outy);
ENDARCHITECTUREBHV;
【例3-3】
ENTITYmux21aIS
PORT(a,b,s:
INBIT;
y:
OUTBIT);
ENDENTITYmux21a;
ARCHITECTUREoneOFmux21aIS
BEGIN
PROCESS(a,b,s)
BEGIN
IFs='0'THENy<=a;ELSEy<=b;
ENDIF;
ENDPROCESS;
ENDARCHITECTUREone;
图3-18双2选1多路选择器
3-3mux21a功能时序波形
按照本章给出的步骤对上例分别进行编译、综合、仿真。
并对其仿真波形作出分析说明。
(4)实验内容3:
引脚锁定以及硬件下载测试。
若选择目标器件是EP1C3,建议选实验电路模式5(附录图7),用键1(PIO0,引脚号为1)控制s0;用键2(PIO1,引脚号为2)控制s1;a3、a2和a1分别接clock5(引脚号为16)、clock0(引脚号为93)和clock2(引脚号为17);输出信号outy仍接扬声器spker(引脚号为129)。
通过短路帽选择clock0接256Hz信号,clock5接1024Hz,clock2接8Hz信号。
最后进行编译、下载和硬件测试实验(通过选择键1、键2,控制s0、s1,可使扬声器输出不同音调)。
(5)实验报告:
根据以上的实验内容写出实验报告,包括程序设计、软件编译、仿真分析、硬件测试和详细实验过程;给出程序分析报告、仿真波形图及其分析报告。
(6)附加内容:
根据本实验以上提出的各项实验内容和实验要求,设计1位全加器。
首先用QuartusⅡ完成3.3节给出的全加器的设计,包括仿真和硬件测试。
实验要求分别仿真测试底层硬件或门和半加器,最后完成顶层文件全加器的设计和测试,给出设计原程序,程序分析报告、仿真波形图及其分析报告。
(7)实验习题:
以1位二进制全加器为基本元件,用例化语句写出8位并行二进制全加器的顶层文件,并讨论此加法器的电路特性。
1-2.应用QuartusII完成基本时序电路的设计
(1)实验目的:
熟悉QuartusⅡ的VHDL文本设计过程,学习简单时序电路的设计、仿真和测试。
(2)实验内容1:
根据实验4-1的步骤和要求,设计触发器(使用例3-6),给出程序设计、软件编译、仿真分析、硬件测试及详细实验过程。
【例3-6】
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYDFF1IS
PORT(CLK:
INSTD_LOGIC;
D:
INSTD_LOGIC;
Q:
OUTSTD_LOGIC);
END;
ARCHITECTUREbhvOFDFF1IS
SIGNALQ1:
STD_LOGIC;--类似于在芯片内部定义一个数据的暂存节点
BEGIN
PROCESS(CLK,Q1)
BEGIN
IFCLK'EVENTANDCLK='1'THENQ1<=D;
ENDIF;
ENDPROCESS;
Q<=Q1;--将内部的暂存数据向端口输出(双横线--是注释符号)
ENDbhv;
(3)实验内容2:
设计锁存器(使用例3-14),同样给出程序设计、软件编译、仿真分析、硬件测试及详细实验过程。
【例3-14】
...
PROCESS(CLK,D)BEGIN
IFCLK='1'--电平触发型寄存器
THENQ<=D;
ENDIF;
ENDPROCESS;
(4)实验内容3:
只用一个1位二进制全加器为基本元件和一些辅助的时序电路,设计一个8位串行二进制全加器,要求:
1、能在8-9个时钟脉冲后完成8位二进制数(加数被加数的输入方式为并行)的加法运算,电路须考虑进位输入Cin和进位输出Cout;
2、给出此电路的时序波形,讨论其功能,并就工作速度与并行加法器进行比较;
3、在FPGA中进行实测。
对于GW48EDA实验系统,建议选择电路模式1(附录图3),键2,键1输入8位加数;键4,键3输入8位被加数;键8作为手动单步时钟输入;键7控制进位输入Cin;键9控制清0;数码6和数码5显示相加和;发光管D1显示溢出进位Cout。
4、键8作为相加起始控制,同时兼任清0;工作时钟由clock0自动给出,每当键8发出一次开始相加命令,电路即自动相加,结束后停止工作,并显示相加结果。
就外部端口而言,与纯组合电路8位并行加法器相比,此串行加法器仅多出一个加法起始/清0控制输入和工作时钟输入端。
(提示:
此加法器有并/串和串/并移位寄存器各一)。
(5)实验报告:
分析比较实验内容1和2的仿真和实测结果,说明这两种电路的异同点。
详述实验内容3。
1-3.设计含异步清0和同步时钟使能的加法计数器
(1)实验目的:
学习计数器的设计、仿真和硬件测试,进一步熟悉VHDL设计技术。
(2)实验原理:
实验程序为例3-22,实验原理参考3.4节,设计流程参考本章。
【例3-22】
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNT10IS
PORT(CLK,RST,EN:
INSTD_LOGIC;
CQ:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
COUT:
OUTSTD_LOGIC);
ENDCNT10;
ARCHITECTUREbehavOFCNT10IS
BEGIN
PROCESS(CLK,RST,EN)
VARIABLECQI:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
IFRST='1'THENCQI:
=(OTHERS=>'0');--计数器异步复位
ELSIFCLK'EVENTANDCLK='1'THEN--检测时钟上升沿
IFEN='1'THEN--检测是否允许计数(同步使能)
IFCQI<9THENCQI:
=CQI+1;--允许计数,检测是否小于9
ELSECQI:
=(OTHERS=>'0');--大于9,计数值清零
ENDIF;
ENDIF;
ENDIF;
IFCQI=9THENCOUT<='1';--计数大于9,输出进位信号
ELSECOUT<='0';
ENDIF;
CQ<=CQI;--将计数值向端口输出
ENDPROCESS;
ENDbehav;
(3)实验内容1:
在QuartusⅡ上对例3-22进行编辑、编译、综合、适配、仿真。
说明例中各语句的作用,详细描述示例的功能特点,给出其所有信号的时序仿真波形。
(4)实验内容2:
引脚锁定以及硬件下载测试(参考4.2节)。
引脚锁定后进行编译、下载和硬件测试实验。
将实验过程和实验结果写进实验报告。
(5)实验内容3:
使用SignalTapII对此计数器进行实时测试,流程与要求参考4.3节。
(6)实验内容4:
从设计中去除SignalTapII,要求全程编译后生成用于配置器件EPCS1编程的压缩POF文件,并使
用ByteBlasterII,通过AS模式对实验板上的EPCS1进行编程,最后进行验证。
(7)实验内容4:
为此项设计加入一个可用于SignalTapII采样的独立的时钟输入端(采用时钟选择clock0=12MHz,计数器时钟CLK分别选择256Hz、16384Hz、6MHz),并进行实时测试。
(8)思考题:
在例3-22中是否可以不定义信号CQI,而直接用输出端口信号完成加法运算,即:
CQ<=CQ+1?
为什么?
(9)实验报告:
将实验原理、设计过程、编译仿真波形和分析结果、硬件测试实验结果写进实验报告。
1-4.7段数码显示译码器设计
(1)实验目的:
学习7段数码显示译码器设计;学习VHDL的CASE语句应用及多层次设计方法。
(2)实验原理:
7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中来实现。
例5-18作为7段译码器,输出信号LED7S的7位分别接如图5-18数码管的7个段,高位在左,低位在右。
例如当LED7S输出为“1101101”时,数码管的7个段:
g、f、e、d、c、b、a分别接1、1、0、1、1、0、1;接有高电平的段发亮,于是数码管显示“5”。
注意,这里没有考虑表示小数点的发光管,如果要考虑,需要增加段h,例5-18中的LED7S:
OUTSTD_LOGIC_VECTOR(6DOWNTO0)应改为…(7DOWNTO0)。
(3)实验内容1:
说明例5-18中各语句的含义,以及该例的整体功能。
在QuartusII上对该例进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形。
提示:
用输入总线的方式给出输入信号仿真数据,仿真波形示例图如图5-17所示。
图5-177段译码器仿真波形
【例5-18】
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYDECL7SIS
PORT(A:
INSTD_LOGIC_VECTOR(3DOWNTO0);
LED7S:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
END;
ARCHITECTUREoneOFDECL7SIS
BEGIN
PROCESS(A)
BEGIN
CASEAIS
WHEN"0000"=>LED7S<="0111111";
WHEN"0001"=>LED7S<="0000110";
WHEN"0010"=>LED7S<="1011011";
WHEN"0011"=>LED7S<="1001111";
WHEN"0100"=>LED7S<="1100110";
WHEN"0101"=>LED7S<="1101101";
WHEN"0110"=>LED7S<="1111101";
WHEN"0111"=>LED7S<="0000111";
WHEN"1000"=>LED7S<="1111111";
WHEN"1001"=>LED7S<="1101111";
WHEN"1010"=>LED7S<="1110111";
WHEN"1011"=>LED7S<="1111100";
WHEN"1100"=>LED7S<="0111001";
WHEN"1101"=>LED7S<="1011110";
WHEN"1110"=>LED7S<="1111001";
WHEN"1111"=>LED7S<="1110001";
WHENOTHERS=>NULL;
ENDCASE;
ENDPROCESS;
END;
(4)实验内容2:
引脚锁定及硬件测试。
建议选GW48系统的实验电路模式6(参考附录图8),用数码8显示译码输出(PIO46-PIO40),键8、键7、键6和键5四位控制输入,硬件验证译码器的工作性能。
(5)实验内容3:
用第3章介绍的例化语句,按图5-19的方式连接成顶层设计电路(用VHDL表述),图中的CNT4B是一个4位二进制加法计数器,可以由例3-22修改获得;模块DECL7S即为例5-18实体元件,重复以上实验过程。
注意图5-19中的tmp是4位总线,led是7位总线。
对于引脚锁定和实验,建议选电路模式6,用数码8显示译码输出,用键3作为时钟输入(每按2次键为1个时钟脉冲),或直接接时钟信号clock0。
(6)实验报告:
根据以上的实验内容写出实验报告,包括程序设计、软件编译、仿真分析、硬件测试和实验过程;设计程序、程序分析报告、仿真波形图及其分析报告。
图5-18共阴数码管及其电路图5-19计数器和译码器连接电路的顶层文件原理图
1-5.8位数码扫描显示电路设计
(1)实验目的:
学习硬件扫描显示电路的设计。
(2)实验原理:
图5-20所示的是8位数码扫描显示电路,其中每个数码管的8个段:
h、g、f、e、d、c、b、a(h是小数点)都分别连在一起,8个数码管分别由8个选通信号k1、k2、…k8来选择。
被选通的数码管显示数据,其余关闭。
如在某一时刻,k3为高电平,其余选通信号为低电平,这时仅k3对应的数码管显示来自段信号端的数据,而其它7个数码管呈现关闭状态。
根据这种电路状况,如果希望在8个数码管显示希望的数据,就必须使得8个选通信号k1、k2、…k8分别被单独选通,并在此同时,在段信号输入口加上希望在该对应数码管上显示的数据,于是随着选通信号的扫变,就能实现扫描显示的目的。
例5-19是扫描显示的示例程序,其中clk是扫描时钟;SG为7段控制信号,由高位至低位分别接g、f、e、d、c、b、a7个段;BT是位选控制信号,接图5-20中的8个选通信号:
k1、k2、…k8。
程序中CNT8是一个3位计数器,作扫描计数信号,由进程P2生成;进程P3是7段译码查表输出程序,与例5-18相同;进程P1是对8个数码管选通的扫描程序,例如当CNT8等于"001"时,K2对应的数码管被选通,同时,A被赋值3,再由进程P3译码输出"1001111",显示在数码管上即为“3”;当CNT8扫变时,将能在8个数码管上显示数据:
13579BDF。
图5-208位数码扫描显示电路
【例5-19】
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYSCAN_LEDIS
PORT(CLK:
INSTD_LOGIC;
SG:
OUTSTD_LOGIC_VECTOR(6DOWNTO0);--段控制信号输出
BT:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));--位控制信号输出
END;
ARCHITECTUREoneOFSCAN_LEDIS
SIGNALCNT8:
STD_LOGIC_VECTOR(2DOWNTO0);
SIGNALA:
INTEGERRANGE0TO15;
BEGIN
P1:
PROCESS(CNT8)
BEGIN
CASECNT8IS
WHEN"000"=>BT<="00000001";A<=1;
WHEN"001"=>BT<="00000010";A<=3;
WHEN"010"=>BT<="00000100";A<=5;
WHEN"011"=>BT<="00001000";A<=7;
WHEN"100"=>BT<="00010000";A<=9;
WHEN"101"=>BT<="00100000";A<=11;
WHEN"110"=>BT<="01000000";A<=13;
WHE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 技术 实验 讲义