当前位置:文档之家› FPGA实验报告

FPGA实验报告

实验1:状态机

实验目的:学习FPGA设计软件

教学基本要求:掌握软件流程,掌握状态机编程

实验内容提要:设计一个状态机

1. 你觉得上面这段代码中,q 到底在怎样变化?(实验1ppt14页)

答:在上述代码中,q变化如下:首先判断复位信号 rst 是否为 0,如果是 0 则q复位为0;否则当时钟信号上升沿到来时,将d的值赋给q,再判断a的值,如果a为1,则将b赋值给次态q,如果a为其他值,则将现态q赋给次态q。

2. 本页中,q 到底在怎样变化?(实验1 ppt15页)

答:如果异步复位信号rst为0,则q置0;rst不为0时,当时钟上升沿到来时,判断a的值,如果a=1,则将b的值赋给q的次态,如果a是其他值,则将q的现态赋给q 的次态,结束这个判断语句后,将d赋值给q。

3. 画出你理解的这个电路的原理图(ppt16页)

4.Out1 out2 out3 out4有什么区别?

out1的上升沿与下降沿和50MHz时钟的上升沿始终保持一致,周期变为50MHz时钟的6倍,实现周期扩展;out2的上升沿与clkin的上升沿保持一致,下降沿与out1的上升沿保持一致,可将clkin的数据记录下来以起数据使能作用;out3的上升沿恰好是out2的下降沿,比out2慢一拍,是更适合使用的前端使能;out4的上升沿与out3的下降沿保持一致,可以减少延迟。

2. 红绿灯实验中,该状态机最少几个触发器可以实现?

该逻辑情况下红绿灯状态机最少只需8个触发器即可实现。将3个计时计数触发器合并,并将溢出、使能触发器达成的功能改由计数数值在各状态下的交替变化,使用组合逻辑代替触发器,达成减少触发器使用的设计方案。

实验2 数字钟设计

实验目的:掌握FPGA语言设计方法

教学基本要求:学习基本的VHDL语言结构和设计

实验内容提要:使用VHDL设计一个完整的数字钟实验

问题回答:

1.现在的时钟是秒时钟,实际系统的时钟是50MHz.那用50MHz的时钟的情况下,仿真1小时要多少时间?如何解决该问题?

仿真一小时需要计数器计数3600次,计数脉冲由50MHz的时钟驱动。时钟周期是0.02us,也就是说仿真时end time设置为0.1ms就足够了。

2. 复位如何输入的?按键防抖如何制作的?修改按键防抖的间隔会导致什么问题?

答:复位通过按键输入,经由毫秒脉冲10位寄存的全1判定来做按键防抖处理,输出所需rst信号;如缩短间隔则可能使防抖判定时间过短,无法达成防抖效果,如间隔过长则会导致需长时间按下按钮才生效,操作不友好,降低使用效率。

3. 数码管的显示使用组合逻辑输出好还是时序逻辑输出好?

答:时序逻辑输出更好,可以防止数值变化过程中险象的出现。

4. 闰年算法:

答:Process(q)

If((q rem 100) =0 or (q rem 400)=0) and q rem 4 =0 then

Run <= 1;

Else run <= 0;

End if;

End process;

实验三 SRAM

实验目的:学习数字系统模块分割;掌握外接存储器接口技术

教学基本要求:学习存储器的接口技术

实验内容提要:设计一个对片外SRAM进行读写的控制接口

1.用功能仿真和时序仿真两种方法,比较一下ss的状态数值的变化?答:在时序仿真时出现了之前未定义过的状态。

2.是写重要还是读重要?这个代码,如果读请求被漏掉了怎么办?

如何防止?如何保证写满之后不再写,读空之后不再读?

答:写更重要;

为了防止请求被漏掉,就要求CLK最高频率低于

SARM的读写速度;

为保证写满后不再写,可以在代码中设置一个记录读写次数的参数来做到这点。

实验四片内RAM和FIFO

实验目的:掌握ALTERA提供的IP核的使用方法

教学基本要求:学习软件IP核的使用方法

实验内容提要:将实验三的片外SRAM改由芯片内部的单口同步RAM实现

实验类型:设计型

使用的主要仪器:PC、DE2-115开发板

1.如何仿真这个IP核?读请求发出后,数据在何时从管脚送出来?

答:仿真IP核需要Xilinx软件的配合,将已生成的文件传入其中,并在仿真窗

口下调入需要使用的读写命令、始终变量,采用下降沿到来的方式,便可形成

波形。

2.芯片内部用到三态门,该如何实现?

答: 三态门,是指逻辑门的输出除有高、低电平两种状态外,还有第三种状态,即高阻状态的门电路。高阻态相当于隔断状态。三态门都有一个EN控制使能端,来控制门电路的通断。利用一个使能端控制器件的通与不通,即是处于高

阻抗还是0/1状态。内存里面的一个存储单元,读写控制线处于低电位时,存

储单元被打开,可以向里面写入;当处于高电位时,可以读出,但是不读不写,就要用高电阻态,既不是+5v,也不是0v ,计算机里面用 1和0表示是,非

两种逻辑,但是,有时候,这是不够的,处于这两个极端的中间,就用那个既不是“+”也不是“—”的中间态表示,叫做高阻态。

高电平,低电平可以由内部电路拉高和拉低。而高阻态时引脚对地电阻无穷,此时读引脚电平时可以读到真实的电平值。高阻态的重要作用就是I/O(输入/输出)

口在输入时读入外部电平用。

实验五 Signal TapII和NIOSII

实验目的:掌握Signal TapII在线调试方法和SOPC原理

教学基本要求:学习Signal TapII在线调试方法,生成NIOSII 架构实验内容提要:将实验三的设计下载到开发板中

添加Signal Tap II 组件

搭建NIOSII的FPGA结构

实验类型:验证型

使用的主要仪器:PC、DE2-115开发板

实验六自由设计实验

设计名称:万年历与数字钟的设计

设计简介:

本设计为实现一个多功能的万年历,具有年、月、日、时、分、秒计时并显示的功能,其满量程计时为一万年;具有校对功能,能够对初始的时间进行人为的设定。

设计以硬件描述语言VHDL为系统逻辑描述手段设计具有万年历功能的硬件电路,在QuartusII9.1软件设计环境下,采用自顶向下的设计思路,分别对各个基础模块进行

创建,通过各个基础模块的组合和连接来构建上层原理图,完成基于VHDL万年历设计。

系统目标芯片采用EP2C35F484C8N,由miao模块、CNT60模块、CNT24模块、DAY 模块、yue模块、nian模块经编译和仿真所设计的程序,在可编程逻辑器件上下载验证,将硬件编写程序下载到试验箱上,本系统能够完成年、月、日和时、分、秒的分

别显示,由按键输入进行万年历的校时功能。

设计结构:

本设计先用VHDL语言写出需要的各个小模块,并将这些模块进行编译并打包成图形

文件,最后将这些图形文件在顶层文件里进行连线,实现具体要求与功能。

按照模块化的设计思想,要实现万年历的基础功能,必定要包含年、月、日和时、分、秒的功能模块,其中秒和分可以用六十进制计数器来实现,时用二十四进制计数器实现,月用十二进制计数器来实现,年的低两位和高两位都是一百进制计数器,比较特

殊的是天的计数器,因为它有四种情况,大月三十一天,小月三十天,平年二月二十

八天,闰年二月有二十九天,所以年和月的模块对天的计数都有影响,需要从年和月

的输出端引出控制信号来控制天的计数。同时每个计数器都有显示输出端和进位输出端,同时低级别(如秒)的进位输出要给较高级别(如分)的时钟输入端,以此类推,采用串行工作方式进行连接。从而完成了基础的计时和显示的功能。

完成程度:

基本完成了 miao模块、CNT60模块、CNT24模块、DAY模块、yue模块、nian模块的设计和仿真,实现了一年四种不同月份天数的分辨,以及闰年的判断,以及最后的显示器译码输出,完成了万年历的基本功能。

最终实验的完成电路图如下:

未完成部分及其讨论:

校时功能的实现

按照由基础功能到增强功能的设计思路,要实现校时功能,要在之前电路的基础之上增加一个校时控制模块,增加两个按键来实现控制,按键1来选择校对哪一个模块,按键2选择校对到何值——检测到按键2的一个上升沿,对应的计数器加1。除此之外还需要有显示模式的切换的功能,需要增加一个模式切换的控制模块,通过增加一个按键3来实现控制,是显示年月日还是时分秒。

实验总结:

通过状态机、数字钟、SRAM、片内RAM和FIFO、signalTAP和NIOSII五个实验的学习,熟悉了FPGA的结构和具体应用,了解了VHDL语言的基本语法,并通过自己设计完成万年历与数字钟的设计,取得了FPGA学习的巨大进展,为今后进一步学习打下坚实的基础。

fpga实验报告点阵实验报告

点阵实验 一.实验目的 理解原有程序并修改以实现点阵列的行扫描与列扫描。 一、实验原理 1.74HC154简介 74HC154是一款高速CMOS器件,74HC154译码器可接受4位高有效二进制地址输入,并提供16个互斥的低有效输出。74HC154的两个输入使能门电路可用于译码器选通,以消除输出端上的通常译码“假信号”,也可用于译码器扩展。该使能门电路包含两个“逻辑与”输入,必须置为低以便使能输出端。任选一个使能输入端作为数据输入,74HC154可充当一个1-16的多路分配器。当其余的使能输入端置低时,地址输出将会跟随应用的状态。7在实验中通过对74HC154输入端的计数控制,实现了列的扫面。切扫描的频率从由输入变化的频率控制。在实验中,我们使用了74HC154来进行列控制信号的输出。其引脚图为: 74HC154 参数 74HC154 基本参数 电压 2.0~6.0V 驱动电流+/-5.2 mA 传输延迟11 ns@5V 74HC154 其他特性 逻辑电平CMOS 功耗考量低功耗或电池供电应用 74HC154 封装与引脚 SO24, SSOP24, DIP24, TSSOP24 2.点阵工作原理 8*8LED点阵共由64个发光二极管组成,每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1高电平,且某一列置0低电平,则相应的发光二极管就亮;因此要用8*8LED点阵来显示一个字符或汉字,只需要根据字符或汉字图形中的线条或笔画,通过点亮多个发光二极管来勾勒出字符或汉字的线条或笔画就行了。当要比较完美的显示一般的汉字,单个8*8LED点阵模块很难做到,因为LED的点数(也称为像素点)不够多,因此要显示汉字的话,需要多个8*8LED点阵拼合成一个显示屏。假如用4个8*8LED点阵模块拼成16*16的点阵,即能满足一般汉字的显示。但要显示信息量大的图形,则需要n个多个8*8LED点阵,拼装成一个大屏幕才行。 16×16扫描LED点阵的工作原理同8位扫描数码管类似。它有16个共阴极输出端口,

FPGA实验报告

实验一Quartus使用环境和简单电路设计 一、实验目的 1. 熟悉Quartus Ⅱ软件基本使用方法; 2. 掌握电路的基本设计方法; 3. 掌握电路的基本仿真方法; 4. 掌握电路的基本下载方法。 二、实验器材 1. KH-310 下载板; 2. KH-310 LED 显示模块。 三、文件档名 加载:halfadd.sof 烧录:halfadd.pof 工程项目文件名:halfadd.qpf 四、实验内容 用VHDL 语言和原理图分别完成设计、仿真和下载基本逻辑门电路半加器的过程: 输入:a,b;输出:求和sum,进位c; 五、实验步骤 1. 新建文本文件 在Quartus Ⅱ管理器界面中选择File/New.., 菜单,出现New 对话框,如图3.1 所示。在对话框中选择VHDL File,点击OK,打开文本编辑器,输入半加器的VHDL 语言程序,如图1.2 所示。然后保存文件halfadd.vhd。需要注意的是,文件名与模块名必须一致。

图3.1 Quartus Ⅱ新建文本文件界面 图3.2 输入半加器的VHDL 语言程序

图3.3 保存文件 2. 建立工程项目 (1)在管理器窗口中选择File/New Project Wizard...菜单,出现新建项目向导New Project Wizard 对话框,输入项目目录(r:\test)、项目名称(halfadd)和顶层实体(halfadd),如图3.4 所示,顶层实体名可以与项目名不同。 图3.4 建立工程项目 (2)点击Next,添加文件对话框。点击按钮“…”,添加与该项目有关的所有文件到当前项目,

FPGA实验报告

FPGA实验 一、实验目的 1. 熟悉Quartus Ⅱ软件基本使用方法; 2. 掌握电路的基本设计方法; 3. 掌握电路的基本仿真方法; 4. 掌握电路的基本下载方法; 5. 学习状态机的设计技巧; 6. 掌握CASE 语句的使用; 7. 掌握时钟分频电路的HDL 设计; 8. 掌握CASE 语句的使用; 9. 掌握VHDL模块化程序设计方式; 10. 学习VHDL程序的设计技巧; 11. 掌握VHDL语言译码电路的设计; 12. 掌握选择信号赋值语句的设计方法; 二、实验器材 1. KH-310 下载板; 2. KH-310 LED 显示模块; 3. KH-310 时钟模块; 5.KH-310 七段数码管模块。 4. 计算机。 三、实验原理 乒乓球机:乒乓球游戏机是用8~16 个发光二极管代表乒乓球台,中间两个发光二极管兼作乒乓球网,用点亮的发光二极管按一定方向移动来表示球的运动。另外设置发球开关:Af、Bf;和接球开关Aj、Bj。利用若干七段数码管作为计分牌。 甲乙双方按乒乓球比赛规则来操作开关。当甲方按动发球开关Af 时,靠近甲方的第一个灯亮,然后顺序向乙方移动。当球过网后,乙方可以接球,接球后灯反方向运动,双方继续比赛,如果一方提前击球(过网击球)或未击到球,则判失分,对方加分。重新发球后继续比赛。 译码器:

状态机:状态机的一个常用的用处是构成控制步进电机的逻辑电路。表1给出了用于顺时针和逆时针驱动步进电机的二进制码。状态机的设计中我们需要提到一些称为常态和次态的状态,表2列举了步进电机的状态转换顺序。 时钟: 图3.27 四、实验内容 1.用VHDL 语言和原理图分别完成设计、仿真和下载基本逻辑门电路半加器的过程: 输入:a,b;输出:求和sum,进位c; 2. 控制8 个LED 进行花式显示,设计四种显示模式: 1. 从左到右逐个点亮LED; 2. 从右到左逐个点亮LED; 3. 从两边到中间逐个点亮LED; 4. 从中间到两边逐个点亮LED。 四种模式循环切换,由复位键rst 控制系统的运行与停止。 3. 设计一个乒乓球游戏机,模拟乒乓球比赛基本过程和规则,并能自动裁判和计分。 4. 设计一个简单的指令译码器,按指定的要求,对两个逻辑变量进行运算,并将运算的结果在发光二极管上显示。 5.使用VHDL语言,编制一个4相步进电机控制程序,由发光二极管指示步进电机的相序,要求正反转控制,通过改变时钟频率实现调速。 6. 设计一个电子钟,要求可以显示时、分、秒,用户可以设置时间且需要设置的时间显示要求闪烁。

FPGA实验报告

南京理工大学泰州科技学院FPGA系统设计实验报告 教材名称:FPGA系统设计与应用开发 指导教师:周莉莉 实验室:4401 学院(系):电子电气工程学院 专业班级:10电信(1)班 姓名:周根生朱守超 学号:1002040149 1002040150 实验学期:2013-2014学年第一学期 总评成绩:教师签字: 南京理工大学泰州科技学院 FPGA系统设计实验报告

目录 实验一Max+plusII原理图设计输入 (1) 实验二简单逻辑电路设计与仿真 (6) 实验三组合逻辑电路设计(一) (11) 实验四组合逻辑电路设计(二) (16) 实验五有限状态机的设计 (26) 实验六数字频率计 (32)

南京理工大学泰州科技学院FPGA系统设计实验报告 课程: FPGA系统设计班级:10电信1班姓名:周根生朱守超学号:1002040149 1002040150 指导教师:周莉莉实验日期: 实验题目:Max+plusII原理图设计输入成绩: 一、设计任务 采用原理图设计输入法,设计一个具有四舍五入功能的电路,其输入为4位二进制数,要求输入大于或等于0101时,电路输出为高电平,小于0101时电路输出为低电平。 二、设计过程 根据设计要求列出四舍五入的真值表,如图1.1所示。 图1.1 四舍五入真值表 由图1.1可得化简的表达式为OUT=A+BD+BC,由逻辑表达式可知,要设计的电路图有四个输入端(A,B,C,D)和一个输出端OUT,整个电路由两个2输入端的与门和一个3输入的或门组成。 启动MAX+plusII,新建Graphic Editor file文件,后缀为.gdf。在编辑界面空白处双击左键,出现输入元件对话框如图1.2所示,在Symbol Name栏中直接输入元件的符号名OK,输入端(input),输出端(output),连接电路如图1.3所示。

FPGA实验报告整理版.doc

目录 实验一分频器 实验三 ADC0809 模数转换实验实验二七段数码管扫描显示实验四双向移位寄存器

实验一分频器 一、实验目的 1.学习分频器的设计,进一步了解、熟悉和掌握FPGA开发软件Quartus II 的使用方法 2.学习Verilog HDL 和VHDL的编程方法 3.学会使用Vector Wave功能仿真 4.掌握使用多种方法分配管脚 二、实验内容 编写一个分频器的Verilog 代码和VHDL代码并仿真,编译下载验证三、实验原理 在数字电路中,时钟信号的分频是很常见的电路。分频器除了可以对时钟信号频率做除以二的计算外,分频器同时很类似涟波计数器。涟波计数器是计数器的一种,它属于异步设计。因为触发器并非皆由同一个时钟信号同步操作,所以它非常节省电路面积。 本实验要设一个带选择的分频时钟,SEL[1:0]用于选择是几分频。分频器设原理框图如图1所示: 图1 分频器原理图 从原理图中可见,核心板的时钟是50MHz ,通过sel[1:0]选择分频数,00:不分频;01:12.5M分频;10:25M四分频;11:50M分频。采用SW1 ‐SW2 设置分频值,SW3 复位。LED1为时钟的输出,通过调整SW1 、SW2 ,可以得到不同的闪烁频率。引脚分配情况如表1所示 表1 引脚分布情况

四、实验步骤 1.新建工程,取名为frediv ,如下图2所示。 图2 新建工程 2.新建VHDL设计文件,选择“File|New ”,在New 对话框中选择Device Design Files 下的VHDL File,单击OK,完成新建设计文件。 3.在新建设计文件中输入VHDL程序。 4.生成“Symbol ”文件,新建“Block Diagram/Schematic File”文件,在文件中添加刚刚生成的“Symbol ”以及输入输出管脚,最后完整的系统顶层模块图如图3 所示。 图3 顶层模块图 5.保存文件,使用qsf或者tcl 进行管脚分配(相应的文件在本工程里面都可以找到)。 6.对该工程文件进行全程编译处理,若在编译过程中发现错误,则找出并

FPGA 实验报告

FPGA 实验任务书—实验一 课程名称FPGA 适用专业微电子、通信 实验项目FPGA 最小系统—认识D E2 开发板实验课时 2 实验地点6505 实验时间11 周周四7、8 节一、实验目的: 1.认识F PGA 芯片,熟悉其外围接口、连接方式及其功能。 2.利用控制面板测试D E2 开发板,进一步熟悉F PGA 功能。 二、实验内容: 1.认识D E2 开发板中F PGA 芯片和所有外围接口。 1)请在板子上找出以下内容: 2)打开电源,观察板子的反应,与接电源之前有何不同? 答:所有LED都在闪烁,7段数码管显示数字0到F。 2.运行DE2的控制面板,对DE2进行测试。测试内容包括:7-SEG、PS/2、LED、LCD、SDRAM/SRAM/FLASH、VGA、LINE OUT。 三、实验步骤: 1. 打开实验板包装,逐一认识各个接口、电路和芯片。 2. 将实验板连接入P C,上电。观察实验板的反应。

3.打开Q uartus II,运行第一个程序。打开控制面板,逐一对主要外围接口进行测试,并记录。 4.运行 DE2_control_panel 目录下的 DE2_Control_Panel.exe,Open->Open_USB_port, 下面即可对开发板进行测试了; 图 2- 4 DE2 Control Panel 5.PS2 和 7-SEG 的测试。在开发板的插上键盘,输入字符即可显示在上图文本框中;设置HEX0 到 HEX7 的数字,点击 Set,开发板上相应位置的数码管显示相应数字。 6.LED 和 LCD 的测试。如同上一步。 7.VGA 测试。将一台显示器数据线连接到开发板的 VGA 口上。选择 SRAM,将 File Length 单选框选中。点击下面的 Write a File to SRAM,打开 DE2_demonstration\pictures\picture.dat;100%完成。如下图示选 VGA 项。去掉 Default Image 前面的√。 图 2- 5 VGA 测试 选择 TOOLS 项,选择 SRAM Multiplexer->Asynchronous1 选项,点 configure 按钮。此时可看到显示器上显示图片如下 图2-6 图片

FPGA实验报告

CPLD/FPGA实验报告 专业: 学号: 姓名:

1.实验目的和要求 (1)掌握Verilog HDL 模块的基本结构 (2)掌握模块的调用方法 (3)掌握基于Quartus II 的CPLD/FPGA 开发流程 本实验为数字时钟设计,要求设计模为24的加法计数器模块,分频模块,还有译码显示模块。最后编写顶层代码,完成系统的仿真。 2.实验设备 电脑一台,quartus 、modelism 软件。 3.实验步骤 本实验包括三个模块:计数器模块、分频模块、译码显示模块。实验原理框图如图3-1所示。 图3-1 实验原理框图 分频器 模60BCD 码 加法计数器数字时钟 时钟:6MHz 复位 FPGA/CPLD 实现部分 4-7译码器数码管

(1)首先打开quartus9.0软件,建立一个工程digit_clk,如图3-2所示。 图3-2 建立quartus工程 (2)在这个工程中创建三个Verilog HDL文件,并分别命名为不同模块名。然后在每个模块中编写出对应的代码,最后编写顶层文件代码。如图3-3所示。 图3-3 各个模块代码编写

(3)当所有代码都编写完成后,需要对所都程序进行编译、分析综合。 (4)当程序无错误时,建立波形文件,在波形文件中加入相应的信号。 4.实验结果 在仿真过程中6MHZ分频是无法实现的,因此在仿真过程中不使用分频,只是给一个时钟脉冲,在仿真中为了观察方便,特意多设定了两个输出:h、l,h表示计数器计数值的高位,l表示计数值的低位,out1为低位显示端,out2为高位显示端,out1[0]与低位数码管的g端对应,out2[0]与高位数码管g端对应,out2[6]与高位数码管a端对应。仿真波形如下:

FPGA实验三七段数码管静态与动态显示实验报告

FPGA实验三七段数码管静态与动态显示实验报告 实验目的: 通过FPGA实现七段数码管的静态与动态显示,在FPGA上可实现对任 意数字的显示和计数功能。 实验原理: 七段数码管是一种能够显示数字的晶体管数字显示器件,它由七个LED数码管组成,每个数码管分别由a、b、c、d、e、f、g七个LED组成。通过控制每个LED的亮灭情况,可以对任意数字进行显示。 七段数码管的静态显示是指每个数字的显示都是固定的,而动态显示 则是通过快速地刷新七段数码管的显示,使得数字像是在变化。在FPGA 中,可以通过时钟信号和计数器实现刷新,从而实现数字的动态显示。 实验过程: 首先,将FPGA和七段数码管连接,在FPGA上选择适当的引脚连接到a、b、c、d、e、f、g七个数码管。在FPGA中创建工程,并添加适当的 引脚约束,以实现与七段数码管的连接。然后,根据需要选择静态或动态 显示。 静态显示: 静态显示的原理是通过直接控制每个LED的亮灭情况,使得每个数字 都可以被显示出来。首先,需要定义每个数字对应的LED的状态(亮灭),例如数字0对应的LED状态可能为(1,1,1,1,1,1,0)等。然后, 通过FPGA的逻辑电路实现对应数字的显示。 动态显示:

动态显示的原理是通过快速地刷新显示,使得数字在若干个数码管中切换,从而造成数字变化的视觉效果。这里需要使用时钟信号和计数器来控制刷新。首先,需要设计一个计数器,它的计数范围应该与显示数字的个数相同。然后,通过时钟信号让计数器开始计数,并根据计数器的值选择对应的数字显示在七段数码管上。通过控制计数器的计数速度和刷新频率,可以实现数字的动态显示。 实验结果: 经过实验,我们成功地实现了七段数码管的静态显示和动态显示。在静态显示中,我们可以通过FPGA的逻辑电路对七段数码管的每个LED进行控制,从而实现任意数字的显示。在动态显示中,我们通过时钟信号和计数器实现了刷新功能,使得数字在七段数码管中快速地切换,从而呈现出动态的显示效果。 实验总结: 通过本次实验,我们深入理解了七段数码管的原理和使用方法。通过FPGA的逻辑电路和计数器,我们成功地实现了七段数码管的静态和动态显示。我们还学会了如何在FPGA上进行引脚约束和逻辑电路设计,以实现与其他外部设备的连接和控制。这些技能对于我们进一步学习和应用数字电路和嵌入式系统有着重要的意义。通过本次实验,我们不仅提高了对数字电路和FPGA的理解,而且培养了团队合作和问题解决的能力。

FPGA实验报告14---DDS文件的时序分析

Lab 14 DDS文件的时序分析 集成1101班 1.实验目的 熟悉时序分析的一般操作方法。 掌握用时序分析法修改程序和解决问题。 2.实验内容 a)打开DDS文件。 b)对DDS文件进行时序分析。 c)理解时序分析结果和波形。 3.实验步骤 (1)打开Quartus9.1软件,选择“File=>Open Project”,在弹出的窗口中输入项目的名称和存储位置。 (2)打开工程,进行编译。选择“Processing=》Start Compilation” 开始编译,编译通过后可以查看生成的Report。

(3)选择界面上方的时钟图标,进入时序分析界面。

(4)点击时序分析界面的creat timing enlist, 然后可以看到如下状态: (5)在“File=>New”的窗口中选择建立SDC文件。

(6)单击OK后,在Quartus窗口的右方看到该文件,点击edit,选择设置时钟,就进入create clock界面: (7)点击Targets,进入时钟选择界面,点击list查找到CLOCK_50并选择。 (8)继续完成代码后选择“File=>Save”,将文件保存在与项目文件同样的位置即可。然后可以看到如下状态:

(9)将SCD1.sdc加入到工程中,进行整体编译。 (10)点击Setup summary,在右方界面中点击查看mainclk的时序分析结果。 (11)点击时序分析界面的report all summaries,右击弹出界面中的mainclock,选择report timing,即可查看时序分析报告。

FPGA实验报告

FPGA实验报告 一、实验目的 本次FPGA实验目的是通过使用FPGA开发板,了解FPGA的基本原理和应用,培养学生对数字电路设计的基本能力。 二、实验原理 FPGA(Field-Programmable Gate Array)是一种可编程逻辑芯片,通过在芯片中加入多个查找表、可编程互连和触发器等基本模块,使得用户可以根据实际需求程序设计芯片的逻辑功能和互连关系。FPGA的主要优点是能快速更新设计并且重配置灵活,而且速度快、功耗低。 本次实验我们使用的FPGA开发板是Xilinx Spartan-6系列,采用的开发环境是Xilinx ISE Design Suite。 三、实验内容 1.实验用到的器件及端口 我们使用的FPGA开发板上有多个输入输出端口,如LED灯、开关、按键等。其中LED灯作为输出端口,开关和按键作为输入端口。实验中,我们通过控制开关的状态,来控制LED灯的亮与灭。 2.设计电路 我们的实验电路主要由一个FPGA芯片、多个LED灯、多个开关和按键等组成。具体设计如下: (插入电路图) 3.编写代码

我们使用Verilog语言来描述逻辑电路的功能,并将其编写成代码。代码示例如下: module led_controller input wire CLK, input wire [3:0] SWITCH, output reg [7:0] LED case(SWITCH) endcase end endmodule 4.烧录代码 通过Xilinx ISE Design Suite的工具链,将上述代码综合、实现、生成比特文件。然后通过JTAG接口将比特文件烧录到FPGA芯片中。 5.实验结果 实验结果是通过观察LED灯的亮灭情况来验证代码的正确性。根据开关的不同状态,LED灯的亮灭也不同。 四、实验总结 通过本次实验,我们深入了解了FPGA的基本原理和应用,并且使用了Xilinx Spartan-6系列的开发板完成了LED控制的实验。通过观察LED灯的亮灭情况,验证了我们编写的代码的正确性。这次实验是我们初

fpga流水灯设计实验报告

fpga流水灯设计实验报告 一、实验目的 通过此实验进一步了解,熟悉FPGA开发软件的使用方法及,的编程方法:学习简单时序电路的设计。 二、实验原理和内容 实验内容:在实验板上实现LED1~LED8发光二极管流水灯显示实验原理:在LED1~LED8引脚上周期性地输出流水数据,如原来输出的数据是则表示点亮LED1,LED2流水一次后,输出数据应该为,而此时则应点亮LED1-LED3三个LED发光二极管,这样就可以实现LED流水灯,为了观察方便,流水速率最好在2Hz左右。在QuickSOPC核心板上有48MHz的标准时钟源,该时钟脉冲CLOCK与芯片的28脚相连,为了产生2Hz的时钟脉冲,在此调用了一个分频模块intdiv模块,通过修改分频系数来改变输出频率,int-div模块是一个占空比为50%的任意整数分频器。 三、实验步骤 1、启动QuartusⅡ建立一个空白工程,然后命名为。 2、新建VerilogHDL源程序文件,输入程序代码并保存,然后进行综合编译。若在编译过程中发现错误,则找出并更正错误,直至编译成功

为止。 3、从设计文件创建模块,由生成名为的模块符号文件。 4、将光盘中EDA-Component目录下的和拷贝到工程目录。 5、新建图形设计文件命名为并保存。在空白处双击鼠标左键,在Symbol对话框左上角的中,分别将project下的ledwater和int-div模块放在图形文件中,加入输入,输出引脚,双击各引脚符号进行引脚命名。将与ledwater模块led[7.0]连接的引脚命名为led[7..0],与int-div模块clock连接的引脚命名为clock,int-div模块的clk-out与ledwater模块的clk相连接。 6、选择目标器件并对相应的引脚进行锁定,在这里所选择的器件为Altera公司Cyclone系列的EPIC12Q240C8芯片,引脚锁定方法见下表,将未使用的引脚设置为三态输入。 7、将设置为顶层实体,对该工程文件进行全程编译处理,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。 四、实验数据与结果 观察到实验箱流水灯依次闪烁. 五、实验总结 (1)在保存文件名字时不能以数字开头,并文件名要和程序中的模且块名一致,不然编译的时候会报错,当程序编译时的警告超过25个以

《FPGA系统设计》实验报告》有限状态机的设计

《FPGA系统设计》实验报告》有限状态机的设计 一、设计任务 a)了解有限状态机的概念; b)掌握Moore型有限状态机的特点和其VHDL语言的描述方法; c)掌握Mealy型有限状态机的特点和其VHDL语言的描述方法。 二、设计过程 实验原理 在数字电路系统中,有限状态机是一种重要的时序逻辑电路模块。 它对数字系统的设计具有十分重要的作用。例如:全自动洗衣机,浸泡、洗涤、排水、脱水,流程状态无需手动操作,只要条件满足就自动进入下一工作个状态,并且工作流程可以灵活设定。这种控制功能完全可用有限状态机来实现。 有限状态机( Finite State Machine, FSM)也是一种时序逻辑电路。 状态机从输出方式出发,可以分为Moore型和Mealy型; 从状态机结构出发,可以分为单进程状态机和多进程状态机。 我们知道,任何数字系统都可以分为相互作用的控制单元(control unit)和数据通道(data path)两部分。数据通道通常 由组合逻辑构成,而控制单元通常由时序逻辑构成,任何时序电路都可以表示为有限状态机(Finite State Machine,FSM)。在基本时序逻辑电路建模的基础上,本实验主要介绍有限状态机实现复杂时序逻辑电路的设计。

数字系统控制部分的每一个部分都可以看作一种状态,与每一控制相关的转换条件指定了状态的下一个状态和输出。根据有限状态机的输出与当前状态和当前输入的关系,可以将有限状态机分成Moore 型有限状态机和Mealy型有限状态机两种。从现实的角度,这两种状态机都可以实现同样的功能,但是它们的时序不同,选择使用哪种有限状态机要根据实际情况进行具体分析。 1.单进程Moore型有限状态机 程序码

FPGA课程设计实验报告

FPGA课程设计实验报告 1. 引言 本报告是针对FPGA课程设计实验的实验结果进行总结和 分析。该实验旨在通过设计一个FPGA应用电路,加深对FPGA的理论知识的理解,并提高对FPGA设计流程的掌握能力。本实验采用Verilog硬件描述语言进行FPGA设计。 2. 实验目的 本实验的主要目的有以下几点: - 通过设计一个FPGA应用电路,提高对FPGA的理论知识的理解。 - 熟悉FPGA设计流程,掌握使用Verilog语言进行FPGA设计的方法。 - 掌握FPGA设计的仿真、综合和下载的流程。 - 提高对FPGA设计 中时序约束的理解和处理能力。 3. 实验环境和工具 本实验的实验环境和工具如下: - FPGA开发板:Xilinx Spartan-6 - FPGA设计工具:Xilinx ISE Design Suite - 仿真工具:Xilinx ISIM

4. 实验设计 本实验设计了一个简单的FPGA应用电路,实现了一个4位计数器。该计数器能够从0递增到15,然后重新从0开始计数。计数器的递增频率可通过外部开关调节,同时采用七段数码管显示当前计数器的值。 4.1 电路结构 实验设计的电路结构如下所示: 电路结构图 电路结构图 该电路包含以下模块: - 时钟模块:用于提供递增计数器的时钟信号。 - 计数器模块:实现了一个4位计数器,并能够从0递增到15。 - 控制模块:用于控制外部开关的输入,并将结果输出到七段数码管的控制端口。 - 七段数码管模块:用于将计数器的值以七段数码管的形式显示出来。 4.2 Verilog代码 根据电路结构图,我们编写了如下的Verilog代码:

fpga流水灯实验报告

竭诚为您提供优质文档/双击可除fpga流水灯实验报告 篇一:vhdl流水灯课程设计报告 院系:姓名:学号:课程设计名称:指导老师:时间:摘要 VhDL的特点 应用VhDL进行系统设计,有以下几方面的特点。 (一)功能强大 VhDL具有功能强大的语言结构。它可以用明确的代码描述复杂的控制逻辑设计。并且具有多层次的设计描述功能,支持设计库和可重复使用的元件生成。VhDL是一种设计、仿真和综合的标准硬件描述语言。 (二)可移植性 VhDL语言是一个标准语言,其设计描述可以为不同的eDA工具支持。它可以从一个仿真工具移植到另一个仿真工具,从一个综合工具移植到另一个综合工具,从一个工作平

台移植到另一个工作平台。此外,通过更换库再重新综合很容易移植为AsIc设计。 (三)独立性 VhDL的硬件描述与具体的工艺技术和硬件结构无关。设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。程序设计的硬件目标器件有广阔的选择范围,可以是各系列的cpLD、FpgA及各种门阵列器件。 (四)可操作性 由于VhDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变端口类属参量或函数,就能轻易地改变设计的规模和结构。 (五)灵活性 VhDL最初是作为一种仿真标准格式出现的,有着丰富的仿真语句和库函数。使其在任何大系统的设计中,随时可对设计进行仿真模拟。所以,即使在远离门级的高层次(即使设计尚未完成时),设计者就能够对整个工程设计的结构和功能的可行性进行查验,并做出决策。VhDL的设计结构VhDL描述数字电路系统设计的行为、功能、输入和输出。它在语法上与现代编程语言相似,但包含了许多与硬件有特殊关系的结构。 VhDL将一个设计称为一个实体entity(元件、电路或

相关主题
文本预览
相关文档 最新文档