1、EDA技术试验指导书 面向专业: 通信工程 信息工程 自动化 电子信息工程 电气工程及其自动化 信息和通信工程学院9月前 言一、课程性质本课程是电子信息工程、通信工程、信息工程和自动化专业必修专业试验课程。经过本课程教学,使学生掌握EDA技术开发步骤,学会利用以硬件描述语言为描述工具,以可编程逻辑器件为实现载体,在数字系统设计领域熟练应用EDA技术,使其含有研究和开发现代数字系统能力。二、 专业安排本系统分为多个模块,适合通信工程、信息工程、自动化、电子信息工程、电气工程及其自动化等专业使用。三、本书特点本试验指导书特点是引入工程项目机制来管理试验项目,着重培养学生方案设计、算法分析和现场调试
2、能力,为培养卓越工程师打下坚实基础。目 录前 言I第一章 试验系统11.1 系统整体结构11.2 关键板11.3 基础扩展模块21.4 自动控制模块31.5 信号处理模块31.6 通信接口模块4第二章 开发平台介绍52.1 Quartus II介绍52.2 Quartus II开发步骤5第三章 试验项目9试验1 平台应用及全加器设计9试验2 信号发生器设计11试验3 数字电压表设计13试验4 数字频率计设计16试验5 交通灯控制器设计19第一章 试验系统1.1 系统整体结构本试验指导书采取EDA综合试验开发系统是我院电子信息和通信技术试验教学中心自主研制,整体结构图所表示。1.2 关键板关键板
3、采取Altera企业EP4CE22E22C8N芯片,含有低内核电压、低功耗特点。芯片内部含有22320个逻辑单元,594kbit RAM嵌入式储存器,66个嵌入式1818乘法器,4组通用PLL。1、DIP开关关键功效是控制高低电平,经过手动控制为系统提供稳定逻辑信号。系统总共提供了3位拨档开关,当开关档位在上方时则输出高电平“1”,反之则为低电平“0”。2、复位开关复位开关能够经过手动控制为系统提供脉冲信号。在系统中一共提供了5位按键开关,当按下键后其输出为低电平“0”,反之则为高电平“1”。3、发光二极管LED由一片74HC573锁存器驱动,74HC573使能后,IO口输出高电平LED点亮,
4、反之LED则熄灭,能够模拟二进制数据输出。4、数码管采取2位共阴极数码管,由一片74HC573锁存器驱动数码管段选,由两个三极管S8050驱动数码管位选,用于显示两位数值。5、蜂鸣器由1个无源蜂鸣器和1个三极管S8050组成。6、储存在本系统中采取1个32M8位串行Flash W25Q256,经过对其编程控制,进行数据储存和提取。如:语音存放和回放试验。7、时钟使用50MHz有源晶振,能够为AD/DA和数字频率计提供参考时钟。1.3 基础扩展模块基础扩展模块有时钟模块、数字信号源、数码管模块、矩阵键盘模块、红外模块和温度模块。1、时钟模块时钟模块中主芯片是DS1302,DS1302由VCC1或
5、VCC2(备用电池)二者中较大者供电。当VCC2大于VCC10.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、
6、数码管模块数码管模块使用是4位共阴数码管,由两片74HC573驱动位选信号和段选信号。74HC573当锁存使能端LE为高时,这些器件锁存对于数据是透明(也就是说输出同时)。当锁存使能变低时,符合建立时间和保持时间数据会被锁存。OE为片选端。4、矩阵键盘模块44键盘关键是经过编程实现0F输入,也能够作为一个控制键。其中行占用4个I/O,列占用4个I/O。5、红外模块红外模块中由红外接收头HS0038和一个上拉电阻组成,红外接收头工作频率为38kHz。当红外接收头接收到38kHz信号时输出低电平“0”,反之输出高电平“1”,从而实现红外信号解码。6、温度模块温度模块由DS18B20和一个上拉电阻组
7、成,DS18B20工作原理:刚开启时将进入低功耗等候状态,当需要实施温度测量和AD转换时,总线控制器发出44H指令完成温度测量和AD转换,DS18B20将产生温度数据以两个字节形式存放到高速暂存器温度寄存器中,然后,DS18B20继续保持等候状态。当DS18B20芯片由外部电源供电时,总线控制器在温度转换指令以后提议“读时隙”,从而读出测量到温度数据经过总线完成和单片机数据通讯,DS18B20正在温度转换中由DQ引脚返回0,转换结束则返回1。1.4 自动控制模块自动控制模块有交通灯、步进电机和直流电机控制,其控制引脚均已标注在自动控制模块对应位置。1、交通灯控制交通灯控制为模拟十字路口交通灯控
8、制,有红、绿、黄3种指示灯,共4个方向,分12个IO口控制。LED灯负极接在FPGAIO口上,正极经过一个1K限流电阻接在+3.3V电源上, LED指示灯亮灭经过控制对应IO口输出电平来实现。2、步进电机控制经过将脉冲信号转变成角位移实现步进电机正确定位,共用到4个IO口。控制其正反转时IO口需根据一定次序输出高低电平。步进电机驱动芯片为L293DD,有4个输入引脚4个输出引脚,输入输出引脚电平关系是一一对应,每个输出引脚能输出600mA电流。3、直流电机控制直流电机控制采取脉冲宽度调制技术(PWM)。基础原理是在固定周期内,高电平占比重越多,电机转速就越快。经过PNP三极管S8550提供大电
9、流驱动直流电机,当IO口为高电平时,三极管不导通,反之则导通。1.5 信号处理模块信号处理模块有AD采集、DA输出、语音采集、语音回放和电压调整部分。1、AD采集AD采集部分是由AD9280采集芯片采集,信号经过SMB接口输入AD8065调整后送入AD采集。AD9280是一款单芯片、8位、32 MSPS模数转换器(ADC),采取单电源供电,内置一个片内采样保持放大器和基准电压源。它采取多级差分流水线架构,数据速率达32 MSPS,在整个工作温度范围内确保无失码。语音采集部分由前级放大电路和300Hz3.4Khz带通滤波电路组成,语音信号可由MIC接口或驻极体咪头输入,经放大电路后滤波输出至AD
10、部分采集。电压调整部分是由5V加在可调电阻上,实现输出电压05输出可调。经过输入AD采集前级电路调整偏置后输入AD采集。2、DA输出DA输出部分是由AD9708芯片差分输出,信号经过七阶巴特沃斯滤波后经过AD8065差分相减后再经AD8065放大后由SMB接口输出。AD9708是TxDAC系列8位分辨率组员系列高性能,低功耗CMOS数字-模拟转换器(DAC)。该TxDAC系列包含针兼容8位,10位,12位,14位DAC,是专门opti-而得到优化用于通信系统发射信号路径。全部设备共享相同接口选项,小外形封装和引脚分布,从而提供了一个向上或向下依据性能,分辨率选择适合器件和成本。AD9708提供
11、出色交流和直流性能同时支持更新速率高达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
12、接口经过MAX485芯片实现逻辑电平转换,经过两个端口和外部RS485设备连接,即A和B,不需要GND,可实现多点双向通信,数据传输距离可达千米。4、USB接口USB接口采取PL2303来实现USB转串口,同时对串口信号设置了两个LED指示灯,用于指示串口数据收发。5、VGA接口VGA接口关键是经过编程实现VGA视频信号在监视器上显示,其中包含R、G、B、HS、VS来控制视频显示。第二章 开发平台介绍2.1 Quartus II介绍Quartus II是Altera企业综合性EDA开发软件,支持原理图、VHDL、Verilog HDL和AHDL等设计模式,内嵌综合器和仿真器,能够完成从设计输入
13、到硬件配置完整设计步骤。Quartus II支持AlteraIP核,集成了LPM/MegaFunction宏功效模块库,简化了设计复杂性、加紧了设计速度。用户能够使用第三方EDA工具。2.2 Quartus II开发步骤一、创建工程1、建立工程目录新建一个文件夹,用于存放工程文件。文件路径中不能包含汉字。2、新建工程单击菜单File | New Project Wizard。指定工程目录、名称和顶层设计实体,选择目标芯片。将工程视图切换到Files标签。3、新建文件单击工具栏上按钮或菜单File | New。选择Design Files下Block Diagram/Schematic File
14、,新建原理图文件。选择Design Files下Verilog HDL File,新建源程序文件。选择Memory Files下Hexadecimal File或Memory Initialization File,新建内存初始化文件。选择Verifica/Debugging Files下Unive Program VWF,新建仿真波形文件。在原理图编辑窗口双击左键,即可打开插入元件对话框。展开元件所在类图标,或直接在Name框中输入元件名称,可找到需要元件。单击MegaWizard Plug-In Manager按钮,即可开启宏功效定制向导。4、保留文件单击工具栏上按钮或菜单File | S
15、ave As,保留文件。在工程视图中,假如没有所需文件图标,选中Files图标,单击右键后选择Add/Remove Files in Project。单击文件管理对话框中按钮,找到所需文件后,单击按钮可将文件加入工程,单击按钮可将文件移出工程。5、设置顶层实体在工程视图中,选中顶层元件对应文件图标,单击右键后选择Set as Top-level Entity,将其设置为顶层实体。二、编译工程单击工具栏上按钮或菜单Processing | Start Compilation。全程编译包含排错、网表文件提取、逻辑综合、适配、装配文件生成和时序分析等。假如有错误,可双击错误条文,修改原理图或源程序,
16、重新编译工程。三、分配引脚单击工具栏上按钮或菜单Assignments | Pin Planner。分别单击各引脚Location列单元格,输入对应引脚编号,按回车键确定。分配完引脚后,重新编译工程。四、下载单击工具栏上按钮或菜单Tools | Programmer。假如显示No Hardware,则需要安装下载器驱动,在桌面选中计算机图标,单击右键,选中按钮,打开设备管理器,展开图标,找到未知设备或Altera USB-Blaster图标,单击右键,选中按钮,单击按钮,找到Quartus安装目录下quartusdriversusb-blaster文件夹,即可安装驱动程序。在下载窗口,单击按钮
17、,单击下拉列表,找到USB-Blaster选项,再单击按钮。假如驱动已经安装好,则打开试验箱电源,单击按钮,开始下载程序。当Progress进度条显示为100%,程序下载完成。五、运行改变输入信号,观察试验系统运行情况。假如和预期逻辑功效不符,则需要修改原理图或源程序,重新编译、分配引脚和下载。第三章 试验项目试验1 平台应用及全加器设计一、试验目标经过此次试验,掌握Quaru II开发步骤,学会多层次电路设计方法。二、试验任务设计一个一位全加器,实现加法计算。拨码开关K8K6状态分别作为被加数、加数和低位进位,求和结果送2个LED显示。三、试验方案利用Quaru II集成门元件,先设计半加器
18、,再设计全加器。1、设计半加器单击菜单File | Create/Update,选择Create Symbol Files for Current File,生成对应元件符号。2、设计全加器将工程视图切换到Files标签,选中全加器原理图文件图标,单击右键后选择Set as Top-level Entity,将其设置为顶层实体。3、开关电路拨码开关K8K6往上打引入高电平,往下打引入低电平。4、显示电路LED阴极接地,阳极接74HC573输出端。5、引脚分配四、试验测试拨动开关K8K6,改变被加数、加数和低位进位,观察发光二极管显示和和高位进位。测试结果以下图所表示。五、试验心得试验2 信号发
19、生器设计一、试验目标经过此次试验,掌握宏功效模块设计应用,学会信号发生器设计方法。二、试验任务设计一个信号发生器,输出周期为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加法计数器,设置字宽为
20、26,其进位输出即1Hz时钟。3、地址计数对正弦波ROM提供地址计数,轮番输出各样本点数据。插入lpm_counter,定制模128加法计数器,设置字宽为7,其计数输出送ROM地址总线。4、正弦波ROM(1)新建MIF文件设置字数为128,字长为8,保留正弦波信号单周期128个样本点数据。 (2)开启MegaWizard Plug-In Manager定制ROM:1-PORT元件,设置字数为128,字长为8,导入MIF文件。5、引脚分配四、试验测试观察发光二极管显示正弦波样本点值。测试结果以下图所表示。五、试验心得试验3 数字电压表设计一、试验目标经过此次试验,掌握电压测量原理,学会采样控制和
21、数码管动态显示设计方法。二、试验任务设计一个数字电压表,可对05V电压进行测量,电压值送2位数码管显示。三、试验方案利用AD9280,对电位器提供05V电压进行ADC转换,将数字量转换为电压值,送2位数码管显示。1、电压采集电路利用AD9280实现电压信号模/数转换。2、显示电路利用2位共阳极数码管5621BS-S显示电压值。74HC573驱动数码管段码ADP,2个三极管S8050驱动数码管位码D1D2。3、动态显示分频50MHz输入时钟分频后得到1KHz时钟,用来对数码管扫描。4、电压值转换在AD9280ADCCLK下降沿,读取转换结果,并转换为0.0V5.0V电压值。理想0V5V对应数字量
22、0255,实际0V5V对应数字量126231。设ADC转换结果为x,电压值为y。5、显示控制引入多个进程,分别实现数码管位码更新、数码管段码更新为电压值整数位和小数位、数码管显示译码、74HC573输出许可、数码管位码输出、数码管段码输出和数码管小数点显示。5、引脚分配四、试验程序/数码管位码更新always (countscan16)case(countscan16)1b0: bit_reg=2b01;/选中左数码管1b1: bit_reg=2b10;/选中右数码管endcase/数码管段码更新always (countscan16,adtemp)case(countscan16)1b0:
23、disp_data=adtemp/10;/电压值整数1b1: disp_data=adtemp%10;/电压值小数endcase五、试验测试旋转电位器,观察数码管显示电压值。测试结果以下图所表示。 六、试验心得试验4 数字频率计设计一、试验目标经过此次试验,掌握频率测量原理,学会级联计数和数码管动态显示设计方法。二、试验任务设计一个数字频率计,测量输入信号频率,送8位数码管显示。三、试验方案1、显示电路利用2个4位共阴极数码管HS420361K-32显示频率值。2片74HC573分别驱动数码管段码ADP和数码管位码COM1COM4。2、动态显示分频50MHz输入时钟分频后得到1KHz时钟。3、
24、频率测量分频50MHz输入时钟分频后得到1Hz时钟。4、频率测量引入多个进程,分别实现频率测量许可、锁存和清零信号输出、频率值锁存。频率测量控制信号时序以下图所表示。需要单独建立程序文件,设计十进制加法计数器,引入基按时钟、计数清零和计数使能信号,并输出4位计数值和进位输出信号。对十进制加法计数器进行8次元件例化,用来测量待测信号频率,分别统计频率值个位、十位、百位、千位、万位、十万位、百万位和千万位。引入6个中间信号,各计数器经过基按时钟输入信号和进位输出信号相互级联。5、显示控制引入多个进程,分别实现数码管位码更新、数码管段码更新为频率值各位、数码管显示译码、数码管段码和位码输出切换。6、
25、引脚分配四、试验程序/数码管段码和位码输出切换always (countscan9:8,seg_reg,bit_reg)case(countscan9:8)2h0:beginSEG=seg_reg;/段码送数据线OE=1b1;/严禁输出LED=1b1;/许可段码锁存LEB=1b0;/严禁位码锁存end2h1:beginSEG=bit_reg;/位码送数据线OE=1b1;/严禁输出LED=1b0;/严禁段码锁存LEB=1b1;/许可位码锁存end2h2,2h3:beginSEG=8h0;/数据线输入无效OE=1b0;/许可输出LED=1b0;/严禁段码锁存LEB=1b0;/严禁位码锁存enden
26、dcase五、试验测试改变分频电路中短路片位置,观察数码管显示信号频率值。测试结果以下图所表示。六、试验心得试验5 交通灯控制器设计一、试验目标经过此次试验,掌握交通灯控制器工作原理,学会减法计数和有限状态机设计方法。二、试验任务设计一个交通灯控制器,控制两个方向直行灯和左拐灯,各灯倒计时送8位数码管显示。复位键K6往上打为优先通车模式,往下打为一般通车模式。三、试验方案1、开关电路拨码开关K8K6往上打引入高电平,往下打引入低电平。2、交通灯显示电路3、倒计时显示电路利用2个4位共阴极数码管HS420361K-32分别显示两个方向倒计时。2片74HC573分别驱动数码管段码ADP和数码管位码
27、COM1COM4。4、动态显示分频50MHz输入时钟分频后得到1KHz时钟。5、倒计时分频50MHz输入时钟分频后得到1Hz时钟。6、交通灯控制交通灯模型以下图所表示。使用2个进程,分别控制两个方向直行灯和左拐灯循环亮灭。引入有限状态机,每经过1秒,优先判定复位键是否有效。假如复位键有效,则为优先通车模式,各向红灯,倒计时为5959,一个方向状态编码初始化为直绿左红对应编码,另一个方向状态编码则初始化为直红左红对应编码。假如复位键无效,则为一般通车模式,判定状态切换标志是否有效。假如状态切换标志有效,则重新置为无效,进入到对应状态分支,设置各交通灯显示驱动信号,初始化倒计时剩下时间,并修改状态
28、编码。假如状态切换标志无效,则倒计时降低1秒,分别对秒钟个位、秒钟十位、分钟个位和分钟十位进行计算,假如倒计时剩下时间为1秒,则将状态切换标志置为有效。各状态剩下时间可初始化以下:直绿左红2分,直黄左红10秒,直红左绿1分,直红左黄10秒,直红左红3分20秒。7、倒计时显示控制引入多个进程,分别实现数码管位码更新、数码管段码更新为倒计时各位、数码管显示译码、数码管段码和位码输出切换。8、引脚分配四、试验程序/数码管段码和位码输出切换always (countscan9:8,seg_reg,bit_reg)case(countscan9:8)2h0:beginSEG=seg_reg;/段码送数据线OE=1b1;/严禁输出LED=1b1;/许可段码锁存LEB=1b0;/严禁位码锁存end2h1:beginSEG=bit_reg;/位码送数据线OE=1b1;/严禁输出LED=1b0;/严禁段码锁存LEB=1b1;/许可位码锁存end2h2,2h3:beginSEG=8h0;/数据线输入无效OE=1b0;/许可输出LED=1b0;/严禁段码锁存LEB=1b0;/严禁位码锁存endendcase五、试验测试观察由12个红、绿、黄发光二极管组成交通灯改变和数码管显示倒计时。拨动开关K6,比较优先通车模式和一般通车模式。测试结果以下图所表示。 六、试验心得