eda第六章讲义
- 格式:doc
- 大小:69.00 KB
- 文档页数:7
E D A/S O P C技术实验讲义陕西科技大学电气与信息工程学院目录4第一章 EDA_VHDL实验/设计与电子设计竞赛4 1-1、应用QuartusII完成基本组合电路设计5 1-2. 应用QuartusII完成基本时序电路的设计6 1-3. 设计含异步清0和同步时钟使能的加法计数器7 1-4. 7段数码显示译码器设计8 1-5. 8位数码扫描显示电路设计9 1-6. 数控分频器的设计10 1-7. 32位并进/并出移位寄存器设计10 1-8. 在QuartusII中用原理图输入法设计8位全加器11 1-9. 在QuartusII中用原理图输入法设计较复杂数字系统11 1-10. 用QuartusII设计正弦信号发生器13 1-11. 8位16进制频率计设计16 1-12. 序列检测器设计16 1-13. VHDL状态机A/D采样控制电路实现18 1-14. 数据采集电路和简易存储示波器设计19 1-15. 比较器和D/A器件实现A/D转换功能的电路设计20 1-16 移位相加硬件乘法器设计24 1-17 采用流水线技术设计高速数字相关器24 1-18 线性反馈移位寄存器设计25 1-19 乐曲硬件演奏电路设计28 1-20 乒乓球游戏电路设计32 1-21 循环冗余校验(CRC)模块设计33 1-22. FPGA步进电机细分驱动控制设计(电子设计竞赛赛题)34 1-23. FPGA直流电机PWM控制实验35 1-24. VGA彩条信号显示控制器设计37 1-25. VGA图像显示控制器设计37 1-26. 清华大学学生基于GW48PK2系统VGA图像显示控制器设计示例5则38 1-27. 直接数字式频率合成器(DDS)设计实验(电子设计竞赛赛题)39 1-28. 嵌入式锁相环PLL应用实验41 1-29. 使用嵌入式锁相环的DDS设计实验(200MHz超高速DAC的PLL测试42 1-30. 基于DDS的数字移相信号发生器设计(电子设计竞赛赛题)45 1-31. 采用超高速A/D的存储示波器设计(含PLL,电子设计竞赛赛题)46 1-32. 信号采集与频谱分析电路设计(电子设计竞赛赛题)46 1-33. 等精度数字频率/相位测试仪设计实验(电子设计竞赛赛题)48 1-34. FPGA与单片机联合开发之isp单片机编程方法49 1-35. 测相仪设计(电子设计竞赛赛题)50 1-36. PS/2键盘鼠标控制电子琴模块设计50 1-37. PS/2鼠标与VGA控制显示游戏模块设计50 1-38. FPGA_单片机_PC机双向通信测频模块设计50 1-39. 10路逻辑分析仪设计(电子设计竞赛赛题)51 1-40. IP核:数控振荡器NCO应用设计52 1-41. IP核:FIR数字滤波器应用设计53 1-42. IP核:FFT应用设计53 1-43. IP核:CSC VGA至电视色制互转模块应用设计54 1-44. IP核:嵌入式逻辑分析仪SignalTapII调用55 1-45. USB与FPGA通信实验56第二章 SOPC/EDA设计实验I56 2-1 用逻辑锁定优化技术设计流水线乘法器实验57 2-2 用逻辑锁定优化技术设计16阶数字滤波器实验59 2-3 基于DSP Builder的FIR数字滤波器设计实验60 2-4 基于DSP Builder的IIR数字滤波器设计实验60 2-5 基于DSP Builder的DDS与数字移相信号发生器设计实验62 2-6 m序列伪随机序列发生器设计实验63 2-7 巴克码检出器设计实验65 2-8 RS码编码器设计实验65 2-9 正交幅度调制与解调模型设计实验67 第三章 SOPC/EDA设计实验II67 3-1 基于MATLAB/DSP Builder DSP可控正弦信号发生器设计72 3-2 32位软核嵌入式处理器系统Nios开发实验73 3-3 设计一个简单的SOPC系统74 3-4 简单测控系统串口接收程序设计74 3-5 GSM短信模块程序设计75 3-6 基于SOPC的秒表程序设计77 3-7 Nios Avalon Slave外设(PWM模块)设计78 3-8 Nios Avalon Slave外设(数码管动态扫描显示模块)设计79 3-15 DMA应用和俄罗斯方块游戏设计79第四章 SOPC/EDA设计实验III ( NiosII系统设计 ) 79 4-1、建立NIOSII嵌入式处理器硬件系统87 4-2、NIOSII软件设计与运行流程94 4-3、加入用户自定义组件设计100 4-4、加入用户自定义指令设计103 4-5、FLASH编程下载104 4-6、设计DSP处理器功能系统104 4-7、AM调制电路设计105第五章液晶接口实验105 5-1 GDM12864A液晶显示模块接口开发111 5-2 HS162-4液晶显示模块与单片机的接口114 5-3 G240-128A液晶显示模块的接口115第六章 CPU及其结构组件设计实验115 6-1 复杂指令CPU设计122 6-2 8051/89C51单片机核于FPGA中实现实验124第七章模拟EDA实验124 7-1 模拟EDA实验及其设计软件使用向导(PAC _Designer使用)124 7-2 基于ispPAC80的5阶精密低通滤波器设计126 7-3 基于ispPAC10的直流增益为9的放大器设计129附录:GW48 EDA/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文本设计流程全过程,学习简单组合电路的设计、多层次电路设计、仿真和硬件测试。
实验注意事项1.启动计算机,进入2000系统(98系统可以直接进行硬件编程下载,其它系统需装驱动)。
2.打开Quartus II软件,注意软件有没有安装Lisence,若没有请自己安装。
3.在Quartus II中进行设计的输入、编译和仿真,若正确后可进行下一步。
4.检查实验箱的数据线有无连接到计算机的并口(轻插轻拔),电源线有无接上,若均有,则给实验箱上电(开关在实验箱后面)。
5.确认你所需要的实验模式,选中此种模式后,建议按一下右侧的复位键,以便使系统进入该结构模式工作。
6.在Quartus II中进行引脚的锁定后,重新编译一次,然后再下载到实验箱上,接着在实验箱上进行硬件验证。
需要修改代码的话,重复3~6部分。
7.注意在实验中不可带电插拔实验箱上的任何芯片。
8.不可随意搬动实验箱,若确实需要移动,需老师在场,且同意。
9.不可将水、饮料等其它液体洒到实验箱上面。
10.离开实验室时不可带走任何实验室的东西,比如实验说明书等。
11.闲置不用实验箱时,关闭实验箱后面的开关,注意不要拔掉数据线(后续实验还要用),将数据线放平,实验箱的盖子轻轻盖上,不必上锁扣!!!实验的一般步骤1.原理图或VHDL程序代码输入2.检查有无语法错误,编译通过3.建立波形仿真文件4.进行时序仿真,观察逻辑关系是否正确5.管脚分配与锁定6.重新编译适配,产生下载文件7.检查实验箱的电源接上否?并行下载线是否正确联接?拨码开关4为ON,其它为OFF?8.打开实验箱电源,选择合适的模式,复位系统9.编程下载,选择JTAG并行下载方式10.硬件仿真实验课的上课纪律:1.珍惜做实验的时间,禁止在电脑上玩游戏2.实行点名制度,须经老师在实验箱上进行硬件验证,若正确才算完成实验。
3.平时实验的成绩占期末考的30%~40%。
实验报告的撰写格式:实验名称一、实验目的二、实验内容三、实验条件(1)、开发软件Max+Plus II 或者Quartus II 5.0/7.2(2)、实验设备 GW-48系列EDA实验开发系统(3)、所用芯片Altera公司ACEX1K系列的EP1K30TC144-3芯片四、实验设计(1)、系统的原理框图(2)、原理图/VHDL源程序(3)、仿真波形(4)、管脚锁定情况五、实验结果及总结(1)、系统仿真情况(2)、硬件验证情况(3)、实验过程中出现的问题及解决的办法注:除仿真波形可用截图方式打印外,其余要求用手写。
讲义2010~2011学年第1学期系部电子与电气工程系教研室(实验室) 电子通信课程名称EDA技术适用班级通信AB班主讲教师职称助教二○年月日厦门理工学院教务处制首页课程名称EDA技术授课对象08通信AB班课程编号课程类型必修课公共基础课();专业基础课();专业课(√)选修课限选课();任选课()授课方式课堂讲授(√);实践课()考核方式考试(√);考查()课程教学总学时数48 学分数 3学时分配课堂讲授24学时;实践课24学时基本教材和主要参考资料序号教材名称作者出版社出版时间1EDA技术与verilogHDL潘松、黄继业清华大学2010 2FPGA设计及应用(第1版)褚振勇翁木云科学技术2002 3Verilog数字系统设计教程夏宇闻北京航空航天大学出版社2008授课教师职称助教授课时间2010.9-2010.12教学目的要求本课程是通信类专业的一门很有实用性的技术课程。
电子技术在不断地发展,电子系统的设计方法也随之发生变革,基于EDA技术的设计方法正在成为现代电子系统设计的主流。
本课程旨在使学生了解以硬件描述语言为基础的数字系统设计的基本方法,熟悉常用PLD器件和现代数字系统的设计工具,通过教学使学生掌握数字系统自上而下的设计方法,通过对多个电子系统实例的学习和设计,使学生能够独立进行中等难度数字系统的设计,为进行应用系统设计和解决实际问题打下基础。
教学重点难点Verilog程序的基本结构,利用Verilog进行程序设计,算法状态机的设计(Verilog),逻辑电路时序设计,现代电子系统设计方法,EDA 软件的熟练使用,PLD的熟悉与应用。
授课题目:第1章EDA技术概述授课方式:理论课课时安排:2学时课次:1<书中第一章>●课程简介:1)《脉冲与数字电路》为基础,学习了数字电路的基本设计方法。
2)《EDA技术与VHDL》,面向实际工程应用,紧跟技术发展,掌握数字系统新的设计方法。
第六章:可编程逻辑器件基础● 6.1.2 可编程逻辑器件通常分为三类:●PAL/GAL:简单的逻辑阵列●CPLD:复杂可编程逻辑器件●FPGA:现场可编程门阵列6.1.1 FPGA/CPLD的基本概念●CPLD:•基于EECMOS工艺,下载程序掉电不丢失。
•基本组成:可编程的I/O单元、基本逻辑单元、布线池和其他辅助单元等。
●FPGA:•基于SRAM或FLASH工艺,配置程序掉电丢失。
•基本组成:可编程输入/输出(I/O)单元、基本逻辑单元、布线资源、嵌入式块RAM、底层嵌入功能单元、內嵌专用硬核等。
6.1.3 FPGA/CPLD的基本逻辑单元●1、与或阵列——CPLD●与或阵列结构可以通过改变与或阵列的连接实现不同的逻辑电路。
•3种形式:•与阵列固定,或阵列可编程——PROM•与阵列可编程,或阵列固定——PAL、GAL、CPLD•与阵列和或阵列均可编程——PAL与或阵列实现加法器2、查找表(LUT):●FPGA的可编程逻辑单元是查找表,通过查找表实现逻辑函数。
●查找表的物理结构是静态存储器(SRAM)●M个输入项的逻辑函数可以由一个位的SRAM实现。
●当用户通过原理图或VHDL描述一逻辑电路功能时,EDA软件自动计算逻辑电路的所有可能取值,并写入SRAM中。
多级开关和多级与非门6.1.4 FPGA/CPLD的结构●1、FPGA的基本结构:•有六部分组成:可编程输入/输出(I/O)单元、基本逻辑单元、布线资源、嵌入式块RAM、底层嵌入功能单元、內嵌专用硬核等布线池和其他辅助单元•1)可编程输入/输出(I/O)单元:•芯片与外界电路的接口部分•可编程:通过软件的配置,适配不同的电器标准与I/O物理特性•2)基本可编程逻辑单元(LE、LC)•基本由查找表和寄存器组成•查找表完成组合逻辑功能•寄存器可配置成同步异步复位或置位、时钟使能的触发器和所存器•多个可编程逻辑单元构成一个逻辑阵列(LAB)6.1.4 FPGA/CPLD的结构●3)嵌入式块RAM•可配置成SRAM、DRAM、ROM、FIFO等形式的存储器●4)布线资源•布线资源连通FPGA内部所有的单元•连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。
•设计实现时,由布局布线器自动根据输入的逻辑网表和约束条件完成所用的底层单元模块的连接。
设计者不需要选择布线资源。
●5)底层嵌入功能单元•通用程度较高的嵌入式功能模块(PLL、DSP、CPU等)•两种方法实现这些功能单元的使用:•在VHDL代码和原理图中直接例化•在IP和生成器中配置相关参数,自动生成IP。
6.1.4 FPGA/CPLD的结构●6)內嵌专用硬核:•通用性较弱的硬核•不是所有的FPGA都包含硬核,针对性较强的才有,例如高端通信产品中使用的FPGA内有串并收发单元2、CPLD的基本结构●基于乘积项结构●由可编程的I/O单元、基本逻辑单元、布线池和其他辅助单元●1)可编程的I/O单元•和FPGA的可编程I/O单元功能一致•可编程I/O支持的I/O标准较少,频率较低。
6.1.4 FPGA/CPLD的结构●2)基本逻辑单元●基本逻辑单元结构和FPGA差别较大●CPLD中没有查找表,由与或阵列加触发器组成——宏单元(MC)•与或阵列完成组合逻辑功能•触发器完成时序逻辑功能●多个宏单元的集合•逻辑阵列块(LAB)——ALTERA公司•通用逻辑阵列模块(GAB)——LATTICE公司•功能模块(FB)——XILINX公司●3)布线池、布线矩阵●采用集中式布线池结构——开关式矩阵•可编程互联矩阵——ALTERA公司•全局布线池——LATTICE公司•高速互联和交叉矩阵——XILINX公司●布线池结构固定,输入管脚到输出管脚的标准延时固定——Tpd表示。
6.1.4 FPGA/CPLD的结构●其他辅助功能模块:JTAG编程模块、全局时钟、全局使能、全局复位/置位单元。
FPGA器件EPF10K10LC84-3内部结构CPLD器件EPM7128B100-4内部结构6.1.5FPGA/CPLD的比较6.1.5FPGA/CPLD的比较6.1.6可编程元件●l三种类型:•熔丝和反熔丝•浮栅编程元件•SRAM配置存储器第七章仿真及逻辑综合7.1.2仿真方法●仿真分:功能仿真、时序仿真●仿真方法有两种:•交互式仿真方法•允许仿真运行期间对信号赋值,指定仿真执行时间,并观察输出信号波形。
•测试平台仿真方法•利用测试平台,自动地对被测单元输入测试矢量信号,通过波形输出,文件记录输出,或与测试平台中的设定输出矢量来进行比较,验证仿真结果•测试平台与原代码具有相同的输入、输出端口,利用测试平台可以对一个设计进行功能仿真和时序仿真。
7.1.3测试程序(平台)的设计方法●测试(平台)程序应包括:●(1)被测实体引入部分;●(2)被测实体仿真信号输入部分;●(3)被测实体工作状态激活部分;●(4)被测实体信号输出部分;●(5)被测实体功能仿真的数据比较以及判断结果输出部分(错误警告,成功通过信息);●(6)被测实体的仿真波形比较处理部分。
例7-2是对例5-18中一位全加器构造的测试程序●【例7-2】●LIBRARY IEEE;●USE IEEE.STD_LOGIC_1164.ALL;●ENTITY adder_tb IS●END adder_tb;●ARCHITECTURE tb_architecutre OF adder_tb IS●COMPONENT full_adder -- 被测元件声明●PORT( a, b, cin: IN STD_LOGIC;●sum, cout : OUT STD_LOGIC);●END COMPONENT;●SIGNAL a, b, cin: STD_LOGIC; -- 输入的激励信号●SIGNAL sum, cout : STD_LOGIC; -- 输出的仿真信号例7-2是对例5-18中一位全加器构造的测试程序●TYPE test_rec IS RECORD● a : STD_LOGIC;● b : STD_LOGIC;●cin : STD_LOGIC;●sum : STD_LOGIC;●cout : STD_LOGIC;●END RECORD;●TYPE test_array IS ARRAY(POSITIVE RANGE <>) OF test_rec;●CONSTANT pattern : test_array:= (●(a=>'0', b=>'0', cin=>'0', sum=>'0', cout=>'0'), -- 测试向量表●(a=>'0', b=>'0', cin=>'1', sum=>'1', cout=>'0'),●(a=>'0', b=>'1', cin=>'0', sum=>'1', cout=>'0'),●(a=>'0', b=>'1', cin=>'1', sum=>'0', cout=>'1'),●(a=>'1', b=>'0', cin=>'0', sum=>'1', cout=>'0'),●(a=>'1', b=>'0', cin=>'1', sum=>'0', cout=>'1'),●(a=>'1', b=>'1', cin=>'0', sum=>'0', cout=>'1'),●(a=>'1', b=>'1', cin=>'1', sum=>'1', cout=>'1')●);例7-2是对例5-18中一位全加器构造的测试程序例7-2是对例5-18中一位全加器构造的测试程序●STIM: PROCESS●VARIABLE vector: test_rec;●VARIABLE errors : BOOLEAN := FALSE;●BEGIN●FOR i IN pattern'RANGE LOOP●vector :=pattern(i);● a <= vector.a; -- 由测试向量表施加激励● b <= vector.b;●cin <= vector.cin;●WAIT FOR 100 ns;●-- 仿真结果与预期结果的比较●IF (sum /= vector.sum) THEN errors:=TRUE; END IF;●IF (cout /= vector.cout) THEN errors:=TRUE; END IF;●END LOOP;●结构体描述模型:●ASSERT NOT errors -- 输出出错信息●REPORT "ERRORS!!!"●SEVERITY NOTE;●ASSERT errors●REPORT "NO ERRORS!!!"●SEVERITY NOTE;●WAIT;●END PROCESS;●END tb_architecutre;例7-2是对例5-18中一位全加器构造的测试程序●-- 配置声明●CONFIGURATION testbench_for_adder OF adder_tb IS - ●FOR tb_architecutre●FOR UUT : full_adder●USE ENTITY WORK.full_adder(full1);●END FOR;●END FOR;●END testbench_for_adder;7.1.4 仿真输入信息的产生1.程序直接产生法就是由设计者设计一段VHDL 语言程序,由该程序中的进程语句直接产生仿真的输入信息。
有三种方法:1 )在程序中定义测试向量表2 )采用并发描述语句3 )采用顺序描述语句例如,对具有以下端口\带预置端的可逆计数器进行仿真。