首页资源分类FPGA/CPLD > 2015年FPGA课程设计

2015年FPGA课程设计

已有 444994个资源

下载专区

文档信息举报收藏

标    签:FPGA课程设计

分    享:

文档简介

2015年FPGA课程设计

文档预览

 合肥工业大学 电子科学与技术、微电子学专业 《FPGA设计》课程设计指导书 (第一类:FPGA设计) 合肥工业大学电子科学与应用物理学院 电子科学与技术系 2014年6月更新 一、 基本工程训练设计题 1. ISE基本使用 ISE介绍,主要菜单选项,以及建立一个工程 以加法器为例,介绍设计输入、约束添加和编译以及综合各个阶段。 2. 位移乘法器设计 目标: 设计一个8位x8位的定点数移位和相加乘器,乘积为16位,使用ISE软件完成综合和后仿真。 要求: 使用移位和相加算法编写定点数乘法器Verilog文件和激励文件; 建立乘法器工程; 完成代码编译和综合; 调用Modelsim执行后仿真,验证设计正确性; 附:移位和相加乘法原理,乘法通过逐项移位相加原理来实现,从被乘数的最低位开始,若为1,则乘数左移后与上一次的和相加;若为0,左移后以全零相加,直至被乘数的最高位。 图1 移位-加 乘法器原理图 图2 移位-加 乘法器工作流程图 二、 提高工程训练设计题 1. 8路流水灯控制器电路设计 目标: 使用开发板上8个LED(高电平亮)逐次点亮,每次仅一个LED处于工作状态,单个LED点亮若干秒钟后熄灭,8个LED从一侧到另一侧点亮,到达最终点后点亮起点LED。 要求: 1) 设计一个8路流水灯控制电路 2) 有多种变化方式: (1) 自左向右逐次点亮,或自右向左逐次点亮,到终点后在从头开始; (2) 自左向右逐次熄灭,或自右向左逐次熄灭,到终点后再从头开始; (3) 按一定间隔(自定义)逐次点亮; (4) 灯工作时间可调; 3) 设置复位键,独立流水灯工作模式控制键,独立流水灯速度键; 4) 时钟信号为开发板上时源。 2. 交通信号灯设计 目标: 以东西—南北交叉路口为应用背景设计一简易交通灯控制器,框图如下: 图2-9-1 简易交通灯控制器框图 要求: 其中CLK为控制器工作时钟,NSRED,NSYELLOW,NSGREEN分别表示南北方向的红,黄,绿三色交通灯控制信号;EWRED,EWYELLOW,EWGREEN分别表示东西方向的红,黄,绿三色交通灯控制信号。通过实际观察给出6个交通灯的变化顺序,画出控制器的状态转换图(假定红、黄、绿灯的显示时间分别为10秒,1秒,9秒),然后按照状态机的实现方法完成设计。 3. 变权计数器设计 目标: 使用开发板上7段数码管显示计数结果。 要求: 1) 基于FPGA,设计一个变权计数器,其要求如下: ① 由外部输入X控制计数器权码,当X=0时进行8421BCD码10进制加计数;当X=1时进行5421BCD码加计数; ② 在转换时,只有原有权码计数完成一个周期后才转换为另一种权码计数。 2) 时钟信号为开发板上时钟信号。 3) 调整技术频率,使得人眼对计数结果可见; 提高 4) 使用VGA显示技术结果; 4. PS2接口设计 目标: 使用开发板上PS-2键盘接口连接PS-2键盘,接收PS-2键盘发出数字键0-9的编码,点亮开发板上对应LED灯。 要求: 1) 学习PS-2通讯协议,并根据该协议设计一个PS-2接口电路; 2) 时钟信号为开发板上时钟信号,有复位信号,输出为8个LED的有效信号; 3) 复位信号(高电平)有效,8个LED灯全灭; 4) PS-2键盘上按下数字键,对应LED被点亮,同时熄灭前一次点亮的LED。 提高题 5) 将PS2接口与VGA集成,通过PS2向FPGA发送数据; 6) 自行搭建符合ASCII的基本字符库; 7) 使用VGA显示键盘输入;(起评分良) 附:标准PS2键盘数据输出通信协议: 下图为标准PS2键盘数据输出短帧格式,当PS2键盘要发数据时,首先要检查Clock时钟脚的电压情况,如电压为低电平,则表示主机抑制了通信,如电压为高电平,PS2键盘获得发送数据的控制权。首先发送短帧数据格式的起始位(低电平),然后才发送数据(低位先发送),跟着发送奇校验位,最后才发送短帧数据格式的停止位。当时钟为高电平时,改变数据,在时钟的下降沿时,PS2键盘把数据锁存在Data数据线上。 图3 标准PS2键盘数据输出短帧格式 5. 简易数字钟 目标: 设计一个24小时制电子钟,使用7段数码管以BCD码显示小时、分钟和秒。 要求: 1)设计一个数字钟控制器,输入为复位信号、多个按键,输出为7段数码管显示的时间和多个LED灯。 2)时钟信号为开发板上时钟信号。 3)数字钟实现功能: a)计时功能,以24小时格式显示当前时间小时、分钟和秒; b)闹钟功能,当计时到设置的闹钟时间时,对应LED开始闪烁; c)手动校时功能,调整时钟内数值; 附: LED灯功能定义: LD_alert: 接发光二极管,发光时指示设置了闹钟功能; LD_hour: 接发光二极管,发光时指示当前调整的是小时信号; LD_min: 接发光二极管,发光时指示当前调整的是分钟信号。 ring_o : 接发光二极管,当计时到闹钟时间后,这个LED灯闪,闪亮的频率为10Hz。 附加题(1) 使用7段数码管显示时间,格式如下; 计时显示格式: 时钟高位 时钟低位 : 分钟高位 分钟低位 : 秒钟高位 秒钟低位 附加题(2): 使用VGA显示时间值,VGA显示接口为自行设计模块; 6. 数字码表设计 目标: 设计一个电子码表,使用CDC以BCD码显示时间,精度达毫秒级。; 要求: 1) 时钟信号为开发板上时钟信号。 2) 输入有复位信号、按键,输出为7段数码管以BCD码显示的时间; 3) 码表能同时存储3组时间,可通过按键逐次翻阅; 码表显示格式: 秒钟高位 秒钟低位 : 毫秒高位 毫秒低位 7. 频率计设计 目标: 使用Verilog HDL设计一个4位十进制数字式频率计对方波进行频率测量,其测量范围为0~10KHz。 基本要求: 1) 时钟信号为开发板上时钟信号。 2) 输入信号为待测信号、复位信号,输出为量程指示灯和数码管以BCD码格式显示的频率值; 3) 频率计设置2个量程,分别为1KHz、10kHz。 量程自动转换规则如下: (1)当读数大于9999时,频率计处于超量程状态,此时显示装置给出溢出指示(最高位显示1,其余各位不显示),下一次测量时,量程自动增大一档; (2)当读数小于0999时,频率计处于欠量程状态,下一次测量时,量程自动减小一档。 显示方式如下: (1)采用记忆显示方式,计数过程中不显示数据,待计数结束以后,显示计数结果,并将此显示结果保持到下一次计数结束,显示时间应不小于1s; (2)小数点位置随量程变更自动移位。 8. 可编程控制按钮器设计 目标: 设计一个可编程控制按钮。 要求: 1) 能识别一个按钮的单击、双击、长按等情况。 2) 与8路流水灯控制器电路设计相结合,单按按钮1形成一个单击启动或暂停,双击改变流水方向(递增和递减来回切换) 3) 完成2个1)功能按钮,并将其组合,实现8路流水灯控制器电路设计中除复位键之外其他按键功能; 4) 流在7段数码管上显示水灯工作模式编码; 5) 时钟信号为开发板上时钟信号。 9. 8位除法器设计 目标: 设计一个除法器,数据实现先进先出的功能。 要求: 8) 利用硬件描述语言描述8 位数除法运算; 9) 输入为复位信号、除法执行按键; 10) 16 位被除数与 8 位除数,共计16组,固化在片内RAM中; 11) 在FPGA上使用7段数码管观察除法器输出结果; 12) 8位商按位连接到LED灯; 13) 时钟信号为开发板上时钟信号。 提高题 14) 将PS2接口与除法器集成,通过PS2向FPGA发送数据; 15) 使用VGA显示计算结果;(起评分良) 10. 8位Booth乘法器设计 目标: 设计一个基2的Booth乘法器。 要求: 1) 利用硬件描述语言描述8位数乘法器运算; 2) 输入为复位信号、乘法执行按键; 3) 8位乘数与8位被乘数,共计16组,固化在片内RAM中; 4) 在FPGA上使用7段数码管观察工作结构; 5) 时钟信号为开发板上时钟信号。 提高题 1) 将PS2接口与乘法器集成,通过PS2向FPGA发送数据; 2) 使用VGA显示计算结果;(起评分良) 11. RS232协议收发器设计 目标: 设计一个符合RS232协议的收发射器。 要求: 1) 利用硬件描述语言描述RS232接受器和发射器; 2) 输入为复位信号、8位拨码开关; 3) 收发器的工作波特率自行定义; 4) 8位拨码开关按8421码组合定义2个16进制字符作为发送内容; 5) 在FPGA上使用七段数码管观察接受到数据; 6) 时钟信号为开发板上时钟信号。 7和8是选做题(起评分良) 7) 将PS2接口与RS232集成,通过PS2向FPGA发送信号; 8) 使用VGA显示接收到数据; 提高题(起评分良+) 9) RS232接口、PS2接口、VGA集成到一个系统中; 发送,PS2输入在VGA上显示同时通过RS232发送到上位机中; 接收,RS232接收PC下行数据,并通过VGA显示。 12. 简易CPU设计 目标: 设计一个简易CPU模型。 要求: 1) 定义一个通用寄存器AC(8bits寄存器),执行4条指令如下: Instruction Instruction Code Operation ADD 00AAAAAA AC<—AC+M[AAAAAA] AND 01AAAAAA AC<—AC^M[AAAAAA] JMP 10AAAAAA GOTO AAAAAA INC 11XXXXXX AC<—AC+1 2) 除了寄存器AC外,我们还需要以下几个寄存器: 3) 地址寄存器 A[5:0], 保存6位地址。 4) 程序计数器 PC[5:0],保存下一条指令的地址。 5) 数据寄存器 D[7:0],接受指令和存储器来的数据。 6) 指令寄存器 IR[1:0],存储指令操作码; 7) 使用2个拨码开关组合作为操作码输入; 8) 使用3个拨码开关按8421码组合作为操作数输入; 9) 在FPGA上使用7段数码管观察输入和输出结果; 10) 时钟信号为开发板上时钟信号。 11) 提高题:集成PS2和VGA,使用PS2输入操作码和操作数,同步在VGA上显示操作码和操作数,并在VGA上输出操作结果。(起评分,良) 13. VGA接口显示设计 目标: 设计一个符合VGA协议的接口,显示输入内容。 要求: 1) 利用 FPGA 实现DVI 接口; 2) 输入为复位信号,输出为176x144的8位伪彩图片; 3) 图片以文件形式预先写入FPGA中RAM; 4) 时钟信号为开发板上时钟信号。 14. 七段数码管动态显示控制器 目标: 7段数码管控制器。 要求: 1) 七段数码管动态显示原理如图所示。图中以四个数码管为例给出了数码管的连接方法,将四个数码管的七段a,b,c,d,e,f,g分别连接在一起,与公共端S1,S2,S3,S4(位选)一起由控制器控制。 2) 四个数码管的显示内容由控制器的四组输入8421码决定,时钟CLK控制扫描频率。其中3个拨码开关决定输入8421码,2个拨码开关确定数码管; 3) 具体显示过程是:控制器将D1进行七段译码后送出,同时控制四个位选S1~S4,点亮第一个数码管,熄灭其余数码管;将D2进行七段译码后送出,同时控制四个位选S1~S4,点亮第二个数码管,熄灭其余数码管;将D3进行七段译码后送出,同时控制四个位选S1~S4,点亮第三个数码管,熄灭其余数码管;将D4进行七段译码后送出,同时控制四个位选S1~S4,点亮第四个数码管,熄灭其余数码管;循环进行上述步骤,调节CLK的频率,就可利用人眼的视觉暂留效应,达到四个数码管同时显示的效果。 4) 时钟信号为开发板上时钟信号。 15. CORDIC计算器设计 目标: 设计一个基于CORDIC算法的三角函数计算器。 要求: 1) 了解CORDIC算法原理; 2) 完成一个CORDIC算法的三角函数计算器硬件设计; 3) 使用7个拨码开关按8421码编码输入待计算正整数角度(0-90度); 4) 使用1个拨码开关实现正余弦功能选择; 5) 一个按键作为计算启动开关; 6) 计算结果通过四个数码管的显示; 7) 时钟信号为开发板上时钟信号。 8) 提高题:集成PS2和VGA,使用PS2输入带计算数值和操作类型,同步在VGA上显示带计算数值和操作数,并在VGA上输出操作结果。(起评分,良+) 16. 硬件排序器设计 目标: 设计一个基于FPGA的硬件排序器。 要求: 1) 了解排序算法原理; 2) 设计一个可对40个数值排序的硬件排序器; 3) 数据使用PS2接口送入; 4) 排序结果使用VGA输出; 5) 一个按键作为排序启动开关; 6) 时钟信号为开发板上时钟信号。(起评分,良+) 17. 波形发生器设计 目标: 设计一个基于FPGA的波形发生器。 要求: 1) 使用查找表方法设计一个波形发生器; 2) 可以产生锯齿波、方波、三角波; 3) 波形输出频率在1-1kHz(自行设定8个频率最低1Hz,最高1KHz); 4) 波形分辨率1/256; 5) VGA输出波形; 6) 2个拨码开关组合选取波形样式; 7) 3个拨码开关组合设置波形频率(1-8); 8) 3个拨码开关组合设置方波占空比(自行定义); 9) 时钟信号为开发板上时钟信号。(起评分,良) 提高要求 10) 接Pmod DA1 四路8位D/A输出接口,调试DA接口,使用将波形发生器输出接D/A输入,通过示波器观察D/A输出。(起评分,良) 18. 多级密码锁设计 目标: 设计一个基于FPGA的波形发生器。 要求: 1) 使用HDL语言设计一个多级密码锁(级数自行设定,不少于3级,每级4位十六进制数); 2) 使用拨码开关组合控制锁工作分别在密码设定和执行模式; a) 密码使用拨码开关输入,并存储在片上存储器中,每次输入1位十六进制数; b) 使用拨码开关确定当前输入密码的位数,每次输入1位十六进制数; 3) 使用LED灯表示当前需输入的密码级数; 4) 使用数码管显示输入密码值; 5) 密码锁解锁成功后自动恢复锁定状态,并在数码管上显示SUO; 6) 设置系统复位功能,自行定义初始密码; 7) 所有级密码输入正确后方可执行密码重新设定功能; 提高题 8) 数据使用PS2接口送入; 9) 密码输入结果使用VGA输出; 10) 时钟信号为开发板上时钟信号。(起评分,良+)

Top_arrow
回到顶部
EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高员外,我们会尽快处理。