EDA技术实验指导书.docx
- 文档编号:8036508
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:23
- 大小:2.20MB
EDA技术实验指导书.docx
《EDA技术实验指导书.docx》由会员分享,可在线阅读,更多相关《EDA技术实验指导书.docx(23页珍藏版)》请在冰豆网上搜索。
EDA技术实验指导书
《EDA技术》实验指导书
面向专业:
通信工程
信息工程
自动化
电子信息工程
电气工程及其自动化
信息与通信工程学院
2016年9月
前言
一、课程性质
本课程是电子信息工程、通信工程、信息工程和自动化专业必修的专业实验课程。
通过本课程的教学,使学生掌握EDA技术的开发流程,学会利用以硬件描述语言为描述工具,以可编程逻辑器件为实现载体,在数字系统设计领域熟练应用EDA技术,使其具备研究和开发现代数字系统的能力。
2、专业安排
本系统分为多个模块,适合通信工程、信息工程、自动化、电子信息工程、电气工程及其自动化等专业使用。
三、本书特点
本实验指导书的特点是引入工程项目机制来管理实验项目,着重培养学生的方案设计、算法分析和现场调试能力,为培养卓越工程师打下坚实的基础。
第一章实验系统
1.1系统整体结构
本实验指导书采用的EDA综合实验开发系统是我院电子信息与通信技术实验教学中心自主研制,整体结构如图所示。
1.2核心板
核心板采用Altera公司的EP4CE22E22C8N芯片,具有低内核电压、低功耗的特点。
芯片内部具有22320个逻辑单元,594kbitRAM嵌入式储存器,66个嵌入式18×18乘法器,4组通用PLL。
1、DIP开关
主要功能是控制高低电平,通过手动控制为系统提供稳定的逻辑信号。
系统总共提供了3位拨档开关,当开关的档位在上方时则输出高电平“1”,反之则为低电平“0”。
2、复位开关
复位开关可以通过手动控制为系统提供脉冲信号。
在系统中一共提供了5位的按键开关,当按下键后其输出为低电平“0”,反之则为高电平“1”。
3、发光二极管LED
由一片74HC573锁存器驱动,74HC573使能后,IO口输出高电平LED点亮,反之LED则熄灭,可以模拟二进制数据输出。
4、数码管
采用2位共阴极数码管,由一片74HC573锁存器驱动数码管段选,由两个三极管S8050驱动数码管位选,用于显示两位数值。
5、蜂鸣器
由1个无源蜂鸣器和1个三极管S8050组成。
6、储存
在本系统中采用1个32M×8位的串行FlashW25Q256,通过对其编程控制,进行数据储存与提取。
如:
语音存储与回放实验。
7、时钟
使用50MHz有源晶振,可以为AD/DA和数字频率计提供参考时钟。
1.3基础扩展模块
基础扩展模块有时钟模块、数字信号源、数码管模块、矩阵键盘模块、红外模块和温度模块。
1、时钟模块
时钟模块中的主芯片是DS1302,DS1302由VCC1或VCC2(备用电池)两者中的较大者供电。
当VCC2大于VCC1+0.2V时,VCC2给DS1302供电。
当VCC2小于VCC1时,DS1302由VCC1供电。
X1和X2是振荡源,外接32.768kHz晶振。
RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送;I/O为串行数据输入输出端(双向);SCLK始终是输入端。
2、数字信号源
数字信号源由74HC04反相缓冲器、74HC163计数器、74HC4060计数器组成,24MHz晶振通过74HC04反相缓冲器输出5V,24M正弦波,通过74HC163二、四、八分频,74HC4060也是实现分频,其分频输出的频率都在模块的相应位置查看。
3、数码管模块
数码管模块使用的是4位共阴数码管,由两片74HC573驱动位选信号以及段选信号。
74HC573当锁存使能端LE为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。
当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。
OE为片选端。
4、矩阵键盘模块
4×4键盘主要是通过编程实现0~F的输入,也可以作为一个控制键。
其中行占用4个I/O,列占用4个I/O。
5、红外模块
红外模块中由红外接收头HS0038和一个上拉电阻组成,红外接收头的工作频率为38kHz。
当红外接收头接收到38kHz的信号时输出低电平“0”,反之输出高电平“1”,从而实现红外信号的解码。
6、温度模块
温度模块由DS18B20和一个上拉电阻组成,DS18B20工作原理:
刚启动时将进入低功耗等待状态,当需要执行温度测量和AD转换时,总线控制器发出[44H]指令完成温度测量和AD转换,DS18B20将产生的温度数据以两个字节的形式存储到高速暂存器的温度寄存器中,然后,DS18B20继续保持等待状态。
当DS18B20芯片由外部电源供电时,总线控制器在温度转换指令之后发起“读时隙”,从而读出测量到的温度数据通过总线完成与单片机的数据通讯,DS18B20正在温度转换中由DQ引脚返回0,转换结束则返回1。
1.4自动控制模块
自动控制模块有交通灯、步进电机和直流电机控制,其控制引脚均已标注在自动控制模块相应位置。
1、交通灯控制
交通灯控制为模拟十字路口交通灯的控制,有红、绿、黄3种指示灯,共4个方向,分12个IO口控制。
LED灯的负极接在FPGA的IO口上,正极通过一个1K的限流电阻接在+3.3V电源上,LED指示灯的亮灭通过控制相应的IO口输出电平来实现。
2、步进电机控制
通过将脉冲信号转变成角位移实现步进电机的精确定位,共用到4个IO口。
控制其正反转时IO口需按照一定顺序输出高低电平。
步进电机的驱动芯片为L293DD,有4个输入引脚4个输出引脚,输入输出引脚的电平关系是一一对应的,每个输出引脚能输出600mA的电流。
3、直流电机控制
直流电机的控制采用脉冲宽度调制技术(PWM)。
基本原理是在固定周期内,高电平占的比重越多,电机转速就越快。
通过PNP三极管S8550提供大电流驱动直流电机,当IO口为高电平时,三极管不导通,反之则导通。
1.5信号处理模块
信号处理模块有AD采集、DA输出、语音采集、语音回放和电压调节部分。
1、AD采集
AD采集部分是由AD9280采集芯片采集,信号通过SMB接口输入AD8065调节后送入AD采集。
AD9280是一款单芯片、8位、32MSPS模数转换器(ADC),采用单电源供电,内置一个片内采样保持放大器和基准电压源。
它采用多级差分流水线架构,数据速率达32MSPS,在整个工作温度范围内保证无失码。
语音采集部分由前级放大电路和300Hz~3.4Khz带通滤波电路组成,语音信号可由MIC接口或驻极体咪头输入,经放大电路后滤波输出至AD部分采集。
电压调节部分是由5V加在可调电阻上,实现输出电压0~5输出可调。
通过输入AD采集前级电路调节偏置后输入AD采集。
2、DA输出
DA输出部分是由AD9708芯片差分输出,信号通过七阶巴特沃斯滤波后经过AD8065差分相减后再经AD8065放大后由SMB接口输出。
AD9708是TxDAC系列的8位分辨率成员系列的高性能,低功耗的CMOS数字-模拟转换器(DAC)。
该TxDAC系列包括针兼容8位,10位,12位,14位DAC,是专门opti-而得到优化用于通信系统的发射信号路径。
所有的设备共享相同的接口选项,小外形封装和引脚分布,从而提供了一个向上或向下的根据性能,分辨率选择适合的器件和成本。
AD9708提供出色的交流和直流性能同时支持更新速率高达125MSPS。
语音回放部分由滤波电路及功率放大LM386部分组成。
信号由喇叭输出。
语音信号由DA输出至滤波电路滤波,可通过调节阀调节信号幅度。
1.6通信接口模块
通信接口模块有RS232接口、PS/2接口、RS485接口、USB接口、VGA接口。
其信号输入输出均已标注在通信接口模块相应位置。
1、RS232接口
RS232接口通过一个标准的DB9母头和外部的串口线连接带有串口的电脑或者其他设备,实现RS232串口通信。
2、PS/2接口
PS/2接口用于连接电脑鼠标和键盘等PS/2设备,通过PS/2口,仅仅需要两个IO口,就可以扩展一个键盘。
3、RS485接口
RS485接口通过MAX485芯片实现逻辑电平转换,通过两个端口和外部RS485设备连接,即A和B,不需要GND,可实现多点双向通信,数据传输距离可达千米。
4、USB接口
USB接口采用PL2303来实现USB转串口,同时对串口信号设置了两个LED指示灯,用于指示串口数据收发。
5、VGA接口
VGA接口主要是通过编程实现VGA视频信号在监视器上显示,其中包含R、G、B、HS、VS来控制视频显示。
第二章开发平台简介
2.1QuartusII简介
QuartusII是Altera公司的综合性EDA开发软件,支持原理图、VHDL、VerilogHDL和AHDL等设计模式,内嵌综合器和仿真器,可以完成从设计输入到硬件配置的完整设计流程。
QuartusII支持Altera的IP核,集成了LPM/MegaFunction宏功能模块库,简化了设计的复杂性、加快了设计速度。
用户可以使用第三方EDA工具。
2.2QuartusII开发流程
一、创建工程
1、建立工程目录
新建一个文件夹,用于存放工程文件。
文件路径中不能包含中文。
2、新建工程
单击菜单File|NewProjectWizard。
指定工程目录、名称和顶层设计实体,选择目标芯片。
将工程视图切换到Files标签。
3、新建文件
单击工具栏上的
按钮或菜单File|New。
选择DesignFiles下的BlockDiagram/SchematicFile,新建原理图文件。
选择DesignFiles下的VerilogHDLFile,新建源程序文件。
选择MemoryFiles下的HexadecimalFile或MemoryInitializationFile,新建内存初始化文件。
选择Verifica/DebuggingFiles下的UniveProgramVWF,新建仿真波形文件。
在原理图编辑窗口双击左键,即可打开插入元件对话框。
展开元件所在的类的图标,或直接在Name框中输入元件名称,可找到需要的元件。
单击MegaWizardPlug-InManager按钮,即可启动宏功能定制向导。
4、保存文件
单击工具栏上的
按钮或菜单File|SaveAs,保存文件。
在工程视图中,如果没有所需文件的图标,选中Files图标,单击右键后选择Add/RemoveFilesinProject。
单击文件管理对话框中的
按钮,找到所需文件后,单击
5、设置顶层实体
在工程视图中,选中顶层元件对应的文件的图标,单击右键后选择SetasTop-levelEntity,将其设置为顶层实体。
二、编译工程
单击工具栏上的
按钮或者菜单Processing|StartCompilation。
全程编译包括排错、网表文件提取、逻辑综合、适配、装配文件生成和时序分析等。
如果有错误,可双击错误条文,修改原理图或源程序,重新编译工程。
三、分配引脚
单击工具栏上的
按钮或者菜单Assignments|PinPlanner。
分别单击各引脚Location列的单元格,输入相应的引脚编号,按回车键确认。
分配完引脚后,重新编译工程。
四、下载
单击工具栏上的
按钮或者菜单Tools|Programmer。
如果显示NoHardware,则需要安装下载器驱动,在桌面选中计算机图标,单击右键,选中<属性>按钮,打开设备管理器,展开<通用串行总线>图标,找到未知设备或者AlteraUSB-Blaster图标,单击右键,选中<更新驱动程序软件>按钮,单击<浏览计算机以查找驱动程序软件>按钮,找到Quartus安装目录下的quartus\drivers\usb-blaster文件夹,即可安装驱动程序。
在下载窗口,单击
如果驱动已经安装好,则打开实验箱电源,单击
当Progress进度条显示为100%,程序下载完成。
五、运行
改变输入信号,观察实验系统的运行情况。
如果与预期的逻辑功能不符,则需要修改原理图或源程序,重新编译、分配引脚和下载。
第三章实验项目
实验1平台应用及全加器设计
一、实验目的
通过本次实验,掌握QuaruII的开发流程,学会多层次电路的设计方法。
二、实验任务
设计一个一位全加器,实现加法计算。
拨码开关K8~K6状态分别作为被加数、加数和低位进位,求和结果送2个LED显示。
三、实验方案
利用QuaruII集成的门元件,先设计半加器,再设计全加器。
1、设计半加器
单击菜单File|Create/Update,选择CreateSymbolFilesforCurrentFile,生成对应的元件符号。
2、设计全加器
将工程视图切换到Files标签,选中全加器原理图文件的图标,单击右键后选择SetasTop-levelEntity,将其设置为顶层实体。
3、开关电路
拨码开关K8~K6往上打引入高电平,往下打引入低电平。
4、显示电路
LED阴极接地,阳极接74HC573的输出端。
5、引脚分配
四、实验测试
拨动开关K8~K6,改变被加数、加数和低位进位,观察发光二极管显示的和与高位进位。
测试结果如下图所示。
五、实验心得
实验2信号发生器设计
一、实验目的
通过本次实验,掌握宏功能模块设计的应用,学会信号发生器的设计方法。
二、实验任务
设计一个信号发生器,输出周期为128秒的正弦波。
数字量送8个LED显示。
三、实验方案
50MHz输入时钟分频后得到1Hz时钟。
用1个MIF文件保存正弦波信号单周期的128个样本点数据。
用1个定制的ROM模块加载对应的MIF文件,地址总线由模128计数器提供,时钟为1Hz。
ROM输出的8位数字量送8个LED显示。
1、显示电路
LED阴极接地,阳极接74HC573的输出端。
2、分频
对50MHz输入时钟进行分频,得到1Hz时钟,用来对正弦波ROM扫描。
插入lpm_counter,定制模50000000的加法计数器,设置字宽为26,其进位输出即1Hz时钟。
3、地址计数
对正弦波ROM提供地址计数,轮流输出各样本点数据。
插入lpm_counter,定制模128的加法计数器,设置字宽为7,其计数输出送ROM的地址总线。
4、正弦波ROM
(1)新建MIF文件
设置字数为128,字长为8,保存正弦波信号单周期的128个样本点数据。
(2)启动MegaWizardPlug-InManager
定制ROM:
1-PORT元件,设置字数为128,字长为8,导入MIF文件。
5、引脚分配
四、实验测试
观察发光二极管显示的正弦波样本点的值。
测试结果如下图所示。
五、实验心得
实验3数字电压表设计
一、实验目的
通过本次实验,掌握电压测量原理,学会采样控制和数码管动态显示的设计方法。
二、实验任务
设计一个数字电压表,可对0~5V电压进行测量,电压值送2位数码管显示。
三、实验方案
利用AD9280,对电位器提供的0~5V电压进行ADC转换,将数字量转换为电压值,送2位数码管显示。
1、电压采集电路
利用AD9280实现电压信号的模/数转换。
2、显示电路
利用2位共阳极数码管5621BS-S显示电压值。
74HC573驱动数码管的段码A~DP,2个三极管S8050驱动数码管的位码D1~D2。
3、动态显示分频
50MHz输入时钟分频后得到1KHz时钟,用来对数码管扫描。
4、电压值转换
在AD9280的ADCCLK下降沿,读取转换结果,并转换为0.0V~5.0V电压值。
理想0V~5V对应数字量0~255,实际0V~5V对应数字量126~231。
设ADC转换结果为x,电压值为y。
5、显示控制
引入多个进程,分别实现数码管位码更新、数码管段码更新为电压值整数位和小数位、数码管显示译码、74HC573输出允许、数码管位码输出、数码管段码输出和数码管小数点显示。
5、引脚分配
四、实验程序
//数码管位码更新
always@(countscan[16])
case(countscan[16])
1'b0:
bit_reg<=2'b01;//选中左数码管
1'b1:
bit_reg<=2'b10;//选中右数码管
endcase
//数码管段码更新
always@(countscan[16],adtemp)
case(countscan[16])
1'b0:
disp_data<=adtemp/10;//电压值整数
1'b1:
disp_data<=adtemp%10;//电压值小数
endcase
五、实验测试
旋转电位器,观察数码管显示的电压值。
测试结果如下图所示。
六、实验心得
实验4数字频率计设计
一、实验目的
通过本次实验,掌握频率测量原理,学会级联计数和数码管动态显示的设计方法。
二、实验任务
设计一个数字频率计,测量输入信号的频率,送8位数码管显示。
三、实验方案
1、显示电路
利用2个4位共阴极数码管HS420361K-32显示频率值。
2片74HC573分别驱动数码管的段码A~DP和数码管的位码COM1~COM4。
2、动态显示分频
50MHz输入时钟分频后得到1KHz时钟。
3、频率测量分频
50MHz输入时钟分频后得到1Hz时钟。
4、频率测量
引入多个进程,分别实现频率测量允许、锁存和清零信号输出、频率值锁存。
频率测量的控制信号时序如下图所示。
需要单独建立程序文件,设计十进制加法计数器,引入基准时钟、计数清零和计数使能信号,并输出4位计数值和进位输出信号。
对十进制加法计数器进行8次元件例化,用来测量待测信号的频率,分别统计频率值的个位、十位、百位、千位、万位、十万位、百万位和千万位。
引入6个中间信号,各计数器通过基准时钟输入信号和进位输出信号相互级联。
5、显示控制
引入多个进程,分别实现数码管位码更新、数码管段码更新为频率值各位、数码管显示译码、数码管段码和位码输出切换。
6、引脚分配
四、实验程序
//数码管段码和位码输出切换
always@(countscan[9:
8],seg_reg,bit_reg)
case(countscan[9:
8])
2'h0:
begin
SEG<=seg_reg;//段码送数据线
OE<=1'b1;//禁止输出
LED<=1'b1;//允许段码锁存
LEB<=1'b0;//禁止位码锁存
end
2'h1:
begin
SEG<=bit_reg;//位码送数据线
OE<=1'b1;//禁止输出
LED<=1'b0;//禁止段码锁存
LEB<=1'b1;//允许位码锁存
end
2'h2,2'h3:
begin
SEG<=8'h0;//数据线输入无效
OE<=1'b0;//允许输出
LED<=1'b0;//禁止段码锁存
LEB<=1'b0;//禁止位码锁存
end
endcase
五、实验测试
改变分频电路中短路片的位置,观察数码管显示的信号频率值。
测试结果如下图所示。
六、实验心得
实验5交通灯控制器设计
一、实验目的
通过本次实验,掌握交通灯控制器的工作原理,学会减法计数和有限状态机的设计方法。
二、实验任务
设计一个交通灯控制器,控制两个方向的直行灯和左拐灯,各灯倒计时送8位数码管显示。
复位键K6往上打为优先通车模式,往下打为普通通车模式。
三、实验方案
1、开关电路
拨码开关K8~K6往上打引入高电平,往下打引入低电平。
2、交通灯显示电路
3、倒计时显示电路
利用2个4位共阴极数码管HS420361K-32分别显示两个方向的倒计时。
2片74HC573分别驱动数码管的段码A~DP和数码管的位码COM1~COM4。
4、动态显示分频
50MHz输入时钟分频后得到1KHz时钟。
5、倒计时分频
50MHz输入时钟分频后得到1Hz时钟。
6、交通灯控制
交通灯模型如下图所示。
使用2个进程,分别控制两个方向的直行灯和左拐灯循环亮灭。
引入有限状态机,每经过1秒,优先判断复位键是否有效。
如果复位键有效,则为优先通车模式,各向红灯,倒计时为5959,一个方向的状态编码初始化为直绿左红对应的编码,另一个方向的状态编码则初始化为直红左红对应的编码。
如果复位键无效,则为普通通车模式,判断状态切换标志是否有效。
如果状态切换标志有效,则重新置为无效,进入到对应的状态分支,设置各交通灯显示驱动信号,初始化倒计时剩余时间,并修改状态编码。
如果状态切换标志无效,则倒计时减少1秒,分别对秒钟个位、秒钟十位、分钟个位和分钟十位进行计算,如果倒计时剩余时间为1秒,则将状态切换标志置为有效。
各状态剩余时间可初始化如下:
直绿左红2分,直黄左红10秒,直红左绿1分,直红左黄10秒,直红左红3分20秒。
7、倒计时显示控制
引入多个进程,分别实现数码管位码更新、数码管段码更新为倒计时各位、数码管显示译码、数码管段码和位码输出切换。
8、引脚分配
四、实验程序
//数码管段码和位码输出切换
always@(countscan[9:
8],seg_reg,bit_reg)
case(countscan[9:
8])
2'h0:
begin
SEG<=seg_reg;//段码送数据线
OE<=1'b1;//禁止输出
LED<=1'b1;//允许段码锁存
LEB<=1'b0;//禁止位码锁存
end
2'h1:
begin
SEG<=bit_reg;//位码送数据线
OE<=1'b1;//禁止输出
LED<=1'b0;//禁止段码锁存
LEB<=1'b1;//允许位码锁存
end
2'h2,2'h3:
begin
SEG<=8'h0;//数据线输入无效
OE<=1'b0;//允许输出
LED<=1'b0;//禁止段码锁存
LEB<=1'b0;//禁止位码锁存
end
endcase
五、实验测试
观察由12个红、绿、黄发光二极管组成的交通灯的变化和数码管显示的倒计时。
拨动开关K6,比较优先通车模式和普通通车模式。
测试结果如下图所示。
六、实验心得
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 技术 实验 指导书