FPGA实验二cjl(修改后)
- 格式:pptx
- 大小:717.60 KB
- 文档页数:37
FPGA实验报告Xilinx FPGA及应⽤实验报告(⼀)实验⼀全加器⼀、实验⽬的1、编写简单门电路的RTL级描述程序;2、创建简单电路的结构级VHDL描述程序;3、实现全加器功能,由半加器组成,以元件⽅式调⽤。
⼆、实验环境1、ISE软件⼀套;2、PC机⼀台。
三、实验步骤1、创建⼀个新的⼯程(1)选择“开始->所有程序->Xilinx ISE 9.1i”或直接在桌⾯双击Xilinx ISE 9.1i的图标,打开ISE 9.1i集成环境。
(2)在ISE中,选择菜单栏中的File->New Project 打开创建新⼯程界⾯,在Project Name 中填⼊⼯程名,在Project Location中填⼊⼯程所在⽂件夹。
2、编写半加器的RTL级描述和全加器的结构级描述半加器源程序为:library IEEE;use IEEE.STD_LOGIC_1164.ALL;entity half isPort ( a : in STD_LOGIC;b : in STD_LOGIC;s : out STD_LOGIC;co : out STD_LOGIC);end half;architecture Behavioral of half issignal c,d : STD_LOGIC;beginc <= a or b;d <= a nand b;s <= c and d;co <= not d;end Behavioral;波形仿真结果为:全加器源程序为:library IEEE;use IEEE.STD_LOGIC_1164.ALL;entity full isPort ( a : in STD_LOGIC;b : in STD_LOGIC;cin : in STD_LOGIC;s : out STD_LOGIC;co : out STD_LOGIC);end full;architecture Behavioral of full is component halfPORT (a, b: IN std_LOGIC;s,co: OUT std_LOGIC);end component;signal u0_co,u0_s,u1_co:std_logic;beginu0:half port map(a,b,u0_s,u0_co);u1:half port map(u0_s,cin,s,u1_co);co<=u0_co or u1_co;end Behavioral;波形仿真结果为:\ 实验⼆12进制计数器⼀、实验⽬的1、熟悉Xilinx的ISE软件的使⽤和设计流程;2、初步了解VHDL的编程⽅法;3、使⽤VHDL语⾔创建、仿真并验证12进制计数器。
fpga 实验报告FPGA实验报告引言:FPGA(Field-Programmable Gate Array)是一种可编程逻辑器件,广泛应用于数字电路设计和嵌入式系统开发中。
本实验报告旨在介绍FPGA的基本原理、应用领域以及实验过程和结果。
一、FPGA的基本原理FPGA由可编程逻辑单元(PLU)和可编程互连资源(ICR)组成。
PLU是FPGA 的核心,由逻辑门、寄存器和查找表等组成,通过编程可以实现不同的功能。
ICR用于连接PLU之间的信号线,实现不同模块之间的通信。
FPGA的可编程性使其具有灵活性和可重构性,适用于多种应用场景。
二、FPGA的应用领域1. 数字电路设计:FPGA可以实现各种数字电路,如逻辑门、加法器、乘法器等。
其可重构性使得电路设计师可以在硬件开发过程中进行快速迭代和调试,提高开发效率。
2. 通信系统:FPGA广泛应用于通信系统中的信号处理和协议转换等功能。
通过编程实现不同的通信协议,提高系统的兼容性和灵活性。
3. 图像处理:FPGA在图像处理领域有着广泛的应用。
通过并行计算的能力,可以实现实时图像处理和图像增强等功能,提高处理速度和效果。
4. 汽车电子:FPGA在汽车电子领域的应用越来越广泛。
例如,用于驾驶辅助系统、车载娱乐系统和车身控制等方面,提高汽车的安全性和性能。
三、实验过程和结果本次实验旨在设计一个简单的数字电路,并在FPGA上实现。
首先,我们使用HDL(Hardware Description Language)编写了一个4位二进制加法器的逻辑电路描述。
然后,使用FPGA开发工具将逻辑电路描述烧录到FPGA芯片中。
在实际操作中,我们按照实验指导书的步骤进行了硬件连线和编程配置。
通过FPGA开发工具提供的仿真功能,我们验证了逻辑电路的正确性。
在实际测试中,我们输入了两个4位的二进制数,并观察了输出结果。
实验结果表明,FPGA成功实现了4位二进制加法器的功能。
四、实验总结通过本次实验,我们深入了解了FPGA的基本原理和应用领域。
第1篇一、实验目的1. 熟悉可编程逻辑器件(FPGA)的基本原理和操作方法。
2. 掌握使用FPGA进行数字电路设计的流程。
3. 学会使用FPGA进行简单数字电路的设计与实现。
二、实验器材1. FPGA开发板2. 编译器软件(如Xilinx ISE、Vivado等)3. 实验指导书4. 实验数据线三、实验原理可编程逻辑器件(FPGA)是一种基于半导体工艺的可编程数字电路,具有高集成度、高速度、可重构性强等特点。
FPGA通过内部逻辑单元(如查找表、触发器等)来实现各种数字电路功能。
本实验主要涉及以下原理:1. 数字电路基本原理2. 可编程逻辑器件(FPGA)的基本结构和工作原理3. 编译器软件的使用方法四、实验步骤1. 熟悉开发板(1)认识开发板上的各个模块,如时钟模块、输入输出模块、存储器模块等。
(2)了解开发板上各个模块的功能和作用。
2. 设计数字电路(1)根据实验要求,设计所需的数字电路。
(2)使用原理图或HDL语言进行电路描述。
3. 编译与下载(1)使用编译器软件对设计的数字电路进行编译。
(2)生成比特流文件。
(3)将比特流文件下载到FPGA中。
4. 测试与验证(1)观察FPGA上各个模块的输出信号,验证电路功能是否正确。
(2)使用示波器等仪器进行波形观察,进一步验证电路功能。
五、实验内容1. 设计一个4位全加器(1)原理图设计:使用原理图编辑器设计4位全加器电路。
(2)HDL语言设计:使用HDL语言描述4位全加器电路。
(3)编译与下载:将设计的电路编译成比特流文件,下载到FPGA中。
(4)测试与验证:观察FPGA上各个模块的输出信号,验证4位全加器电路功能是否正确。
2. 设计一个8位奇偶校验器(1)原理图设计:使用原理图编辑器设计8位奇偶校验器电路。
(2)HDL语言设计:使用HDL语言描述8位奇偶校验器电路。
(3)编译与下载:将设计的电路编译成比特流文件,下载到FPGA中。
(4)测试与验证:观察FPGA上各个模块的输出信号,验证8位奇偶校验器电路功能是否正确。
实验二 使用Quartus II 软件进行电路设计(一)该实例通过设计一个如图2.1所示的灯光控制电路来熟悉Quartus Ⅱ软件的使用。
开关x1和x2都可以用来控制灯f ,设开关闭合为逻辑1,图2.2为这个电路的真值表,这是一个简单的异或电路,但这里我们用门电路来实现。
X1X2f 图2.1 灯光控制电路图 图2.2 真值表建立一个新工程Quartus Ⅱ软件设计的一个电路或者电路模块称做工程。
Quartus Ⅱ软件同时只能处理一个工程,所有与该工程相关的内容都保存在一个目录下。
要设计一个电路,第一步就是建立一个工程,我们使用D:\DE2\example 这个目录保存工程文件。
运行Quartus Ⅱ软件,图2.3是Quartus Ⅱ 刚启动时的图形界面。
Quartus II 常用的六大工作区域如图2.3。
图2.3 Quartus II 7.1图形界面按照以下步骤使用新建工程向导建立一个新工程:x1 x2f 0 00 11 01 10 1 1 0 工作区信息区状态区工程导航区快捷命令工具条菜单栏(1)选择File>New Project Wizard菜单,显示如图2.4所示的对话框,告诉使用者本向导能够完成哪些工作,如果以后不需要这个对话框出现,则选中Don’t show me this introduction again,按Next>按钮,出现如图2.5所示的对话框。
图2.4 新建工程向导完成的任务图2.5 建立一个新工程(2)设定工程的工作目录为D:\DE2\example,当然也可以选其他目录。
工程必须有一个名字,一般情况下,这个工程的名字与设计的顶层实体同名,这里我们将工程命名为light。
按Next>按钮,显示如图2.6所示的对话框。
图2.6 加入设计文件(3)用向导可以加入已有的设计文件,如果不需要加入已有的文件,则按Next>按钮,出现如图2.7所示的对话框,我们这里假设没有已经设计好的文件。
FPGA电气技术实践实验报告院(系)名称宇航学院专业名称飞行器设计与工程(航天)学生学号XXXXXXXX学生姓名XXXXXX指导教师XXXX2017年11月XX日实验一四位二进制加法计数器与一位半加器的设计实验时间:2017.11.08(周三)晚实验编号20一、实验目的1、熟悉QuartusII的VHDL的文本编程及图形编程流程全过程。
2、掌握简单逻辑电路的设计方法与功能仿真技巧。
3、学习并掌握VHDL语言、语法规则。
4、参照指导书实例实现四位二进制加法计数器及一位半加器的设计。
二、实验原理.略三、实验设备1可编程逻辑实验箱EP3C55F484C8 一台(包含若干LED指示灯,拨码开关等)2计算机及开发软件QuartusII 一台套四、调试步骤1四位二进制加法计数器(1)参照指导书实例1进行工程建立与命名。
(2)VHDL源文件编辑由于实验箱上LED指示灯的显示性质为“高电平灭,低电平亮”,为实现预期显示效果应将原参考程序改写为减法器,且”q1<= q1+1”对应改为”q1<= q1-1”,以实现每输入一个脉冲“亮为1,灭为0”。
由于参考程序中的rst清零输入作用并未实现,所以应将程序主体部分的最外部嵌套关于rst输入是否为1的判断,且当rst为1时,给四位指示灯置数”1111”实现全灭,当rst为0时,运行原计数部分。
(3)参照指导书进行波形仿真与管脚绑定等操作,链接实验箱并生成下载文件(4)将文件下载至实验箱运行,观察计数器工作现象,调试拨动开关查看是否清零。
可以通过改变与PIN_P20(工程中绑定为clk输入的I/O接口)相连导线的另一端所选择的实验箱频率时钟的输出口位置,改变LED灯显示变化频率。
并且对照指导书上对实验箱自带时钟频率的介绍,可以通过改变导线接口转换输入快慢,排查由于clk输入管脚损坏而可能引起的故障。
2一位半加器(1)参照指导书实例1进行工程建立与命名。
(2)图形源文件编辑:由于实验箱上LED指示灯的显示性质为“高电平灭,低电平亮”,为实现预期显示效果应将原电路图中两个输出管脚与非门串联以实现原参考输出“高电平亮,低电平灭”。
西南科技大学实验报告课程名称:基于FPGA的现代数字系统设计实验名称:基于HDL十进制计数、显示系统设计姓名:学号:班级:通信1301指导教师:刘桂华西南科技大学信息工程学院制基于HDL十进制计数、显示系统设计一、实验目的1、掌握基于语言的 ISE 设计全流程;2、熟悉、应用 VerilogHDL描述数字电路;3、掌握基于 Verilog的组合和时序逻辑电路的设计方法;4、掌握 chipscope 片内逻辑分析仪的使用与调试方法。
二、实验原理1、实验内容:设计具有异步复位、同步使能的十进制计数器,其计数结果可以通过七段数码管、发光二极管等进行显示。
2、模块端口信号说明:输入信号:Clk_50m ---系统采样时钟clk -------待计数的时钟clr ---------异步清零信号,当 clr=0,输出复位为 0,当clr=1,正常计数ena---------使能控制信号,当 ena=1,电路正常累加计数,否则电路不工作输出信号:q[6:0]---------驱动数码管,显示计数值的个位cout -----------1bit 数据,显示计数值向十位的进位COM-----------共阳级数码管,公共端(接地,参考开发板原理图3、以自顶向下的设计思路进行模块划分:整个系统主要设计的模块是:十进制计数模块和数码管驱动模块,由于实验板的按键为实现硬件防抖,则需要将按键输入的时钟 clk,先通过消抖模块消抖后,再输出至后续使用。
1)十进制计数器模块设计输入: CLK -------待计数的时钟CLR ---------异步清零信号,当 CLR =0,输出复位为0,当 CLR =1,正常计数。
EN---------使能控制信号,当 EN=1,电路正常累加计数,否则电路不工作输出: SUM[3:0]---------- 计数值的个位。
即,在 CLK 上升沿检测到SUM=9 时,SUM 将被置 0,开始新一轮的计数。
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_controllerinput wire CLK,input wire [3:0] SWITCH,output reg [7:0] LEDcase(SWITCH)endcaseendendmodule4.烧录代码通过Xilinx ISE Design Suite的工具链,将上述代码综合、实现、生成比特文件。
然后通过JTAG接口将比特文件烧录到FPGA芯片中。
5.实验结果实验结果是通过观察LED灯的亮灭情况来验证代码的正确性。
根据开关的不同状态,LED灯的亮灭也不同。
四、实验总结通过本次实验,我们深入了解了FPGA的基本原理和应用,并且使用了Xilinx Spartan-6系列的开发板完成了LED控制的实验。
通过观察LED灯的亮灭情况,验证了我们编写的代码的正确性。
西南科技大学实验报告课程名称:基于FPGA的现代数字系统设计实验名称:基于HDL十进制计数、显示系统设计姓名:学号:班级:通信1301指导教师:刘桂华西南科技大学信息工程学院制基于HDL十进制计数、显示系统设计一、实验目的1、掌握基于语言的ISE 设计全流程;2、熟悉、应用VerilogHDL描述数字电路;3、掌握基于Verilog的组合和时序逻辑电路的设计方法;4、掌握chipscope 片内逻辑分析仪的使用与调试方法。
二、实验原理1、实验内容:设计具有异步复位、同步使能的十进制计数器,其计数结果可以通过七段数码管、发光二极管等进行显示。
2、模块端口信号说明:输入信号:Clk_50m ---系统采样时钟clk -------待计数的时钟clr ---------异步清零信号,当clr=0,输出复位为0,当clr=1,正常计数ena---------使能控制信号,当ena=1,电路正常累加计数,否则电路不工作输出信号:q[6:0]---------驱动数码管,显示计数值的个位cout -----------1bit 数据,显示计数值向十位的进位COM-----------共阳级数码管,公共端(接地,参考开发板原理图3、以自顶向下的设计思路进行模块划分:整个系统主要设计的模块是:十进制计数模块和数码管驱动模块,由于实验板的按键为实现硬件防抖,则需要将按键输入的时钟clk,先通过消抖模块消抖后,再输出至后续使用。
1)十进制计数器模块设计输入: CLK -------待计数的时钟CLR ---------异步清零信号,当CLR =0,输出复位为0,当CLR =1,正常计数。
EN---------使能控制信号,当EN=1,电路正常累加计数,否则电路不工作输出:SUM[3:0]---------- 计数值的个位。
即,在CLK 上升沿检测到SUM=9 时,SUM 将被置0,开始新一轮的计数。
tc ------------计数值的十位进位,即:只有在时钟CLK 上升沿检测到SUM=9 时,TC将被置1,其余情况下TC=0;在设计中可以使用always,if-else-if语句实现,设计中注意不要在两个以上的always 模块中对同一个变量进行赋值,否则会产生多重赋值源(multi-source)的问题。
实验四:状态机一、 实验目的1.对有限状态机(FSM)做初步了解。
二、 实验内容1.Gray编码和One-hot编码两种状态机;2.触发器部分和组合逻辑部分结合与分开两种状态机。
三、 实验要求1.对程序中状态和输出稍作修改,在Quartus II 环境下进行时序仿真;2.学会利用状态机编写一个流水灯程序;3.下载至实验板,观察结果。
四、 实验步骤有限状态机是由寄存器组和组合逻辑构成的硬件时序电路,其状态(即由寄存器组的1和0的组合状态所构成的有限个状态)只可能在同一时钟跳变沿的情况下才能从一个状态转向另一个状态,究竟转向哪一状态还是留在原状态不但取决于各个输入值,还取决于当前所在状态。
(这里指的是米里Mealy型有限状态机,而莫尔Moore型有限状态机究竟转向哪一状态只取决于当前状态。
)图4.1、用三种不同编码所实现的状态图【例1】 采用Gray编码的状态机源程序:module fsm (Clock, Reset, A, F, G);input Clock, Reset, A;output F,G;reg F,G;reg [1:0] state ;parameter Idle = 2'b00, Start = 2'b01, Stop = 2'b11,Clear = 2'b10;always @(posedge Clock)beginif (!Reset)beginstate <= Idle; F<=0; G<=0;endelse begincase (state)Idle: beginif (A) beginstate <= Start;G<=0;endelse state <= Idle;endStart: beginif (!A) state <= Stop;else state <= Start;endStop: beginif (A) beginstate <= Clear;F <= 1;endelse state <= Stop;endClear: beginif (!A) beginstate <=Idle;F<=0; G<=1;endelse state <= Clear;endendcaseendendendmodule【例2】采用One-hot编码的状态机源程序:module fsm (Clock, Reset, A, F, G);input Clock, Reset, A; output F,G;reg F,G;reg [3:0] state ;parameter Idle = 4'b1000,Start = 4'b0100,Stop = 4'b0010,Clear = 4'b0001;always @(posedge Clock)beginif (!Reset)beginstate <= Idle; F<=0; G<=0;endelsebegincase (state)Idle: beginif (A) beginstate <= Start;G<=0;endelse state <= Idle;endStart: beginif (!A) state <= Stop;else state <= Start;endStop: beginif (A) beginstate <= Clear;F <= 1;endelse state <= Stop;endClear: beginif (!A) beginstate <=Idle;F<=0; G<=1;endelse state <= Clear;enddefault: state <=Idle;endcaseendendendmodule例1中采用Gray编码,例2中采用的是One-hot编码。
FPGA实验⼆2-4译码器设计实验报告原版得分:数字系统设计课程实验实验⼆2-4译码器设计1、⽤CSAE语句进⾏2-4译码器设计程序设计library ieee;use ieee.std_logic_1164.all;entity decoder24isport(a:in std_logic_vector(1downto0);--定义输⼊信号a(1..0) s:out std_logic_vector(3downto0));--定义输出信号s(3..0) end decoder24;architecture behave of decoder24isbeginprocess(a)begincase a iswhen"00"=>s<="1110";--当a=00时,s(0)=0 when"01"=>s<="1101";--当a=01时,s(1)=0 when"10"=>s<="1011";--当a=10时,s(2)=0 when"11"=>s<="0111";--当a=11时,s(3)=0when others=>null;end case;end process;end behave;仿真结果a s(填灯亮和灭)a(1)a(2)LED2LED3LED4LED5 00灭灭灭亮01灭灭亮灭10灭亮灭灭11亮灭灭灭下载后LED2,6,7亮按下up后LED4,6,7亮2、⽤IF语句进⾏2-4译码器设计程序设计library ieee;use ieee.std_logic_1164.all;entity d24isport(a:in std_logic_vector(1downto0);--定义输⼊信号a(1..0) s:out std_logic_vector(3downto0));--定义输出信号s(3..0) end d24;architecture behave of d24isbeginprocess(a)beginif a="00"then s<=(0=>'0',others=>'1');--当a=00时,s(0)=0 elsif a="01"then s<=(1=>'0',others=>'1');--当a=01时,s(1)=0 elsifa="10"then s<=(2=>'0',others=>'1');--当a=10时,s(2)=0 elsif a="11"then s<=(3=>'0',others=>'1');--当a=11时,s(3)=0 else s<= (others=>'0');end if;end process;end behave;仿真结果a s(填灯亮和灭)a(1)a(2)LED2LED3LED4(pin68)LED5 00灭灭灭亮01灭灭亮灭10灭亮灭灭11亮灭灭灭引脚配置如表:端⼝引脚实验板上名称端⼝引脚实验板上名称端⼝引脚实验板上名称a(1)132up s(3)64LED2s(1)68LED4 a(0)131left s(2)67LED3s(0)69LED5实验总结:由于有了之前实验的操作基础,所以在做这个实验时遇到的阻⼒不⼤,⽐较顺利的完成了。