FPGA触发器与计数器实验报告

合集下载

数电实验报告触发器及其应用(共10篇)

数电实验报告触发器及其应用(共10篇)

数电实验报告触发器及其应用(共10篇)1、实验目的:掌握触发器的原理和使用方法,学会利用触发器进行计数、存储等应用。

2、实验原理:触发器是一种多稳态数字电路,具有存储、计数、分频、时序控制等功能。

常见的触发器有RS触发器、D触发器、T触发器、JK触发器等。

RS触发器是由两个交叉互连的反相器组成的,它具有两个输入端R(复位)和S(置位),一个输出端Q。

当输入R=1,S=0时,Q=0;当输入R=0,S=1时,Q=1;当R=S=1时,无法确定Q的状态,称为禁态。

JK触发器是将RS触发器的两个输入端合并在一起而成,即J=S,K=R,当J=1,K=0时,Q=1;当J=0,K=1时,Q=0;当J=K=1时,Q反转。

JK触发器具有启动、停止、颠倒相位等功能。

D触发器是由单个输入端D、输出端Q和时钟脉冲输入端组成的,当时钟信号上升沿出现时,D触发器的状态发生改变,如果D=1,Q=1;如果D=0,Q=0。

T触发器只有一个输入端T和一个输出端Q,在每个时钟脉冲到来时,T触发器执行T→Q操作,即若T=1,则Q取反;若T=0,则Q保持不变。

触发器可以组成计数器、分频器、存储器、状态机等各种数字电路,被广泛用于计算机、控制系统等领域。

3、实验器材:数码万用表、示波器、逻辑分析仪、CD4013B触发器芯片、几个电阻、电容、开关、信号发生器等。

4、实验内容:4.1 RS触发器测试利用CD4013B芯片来测试RS触发器的功能,在实验中将RS触发器的输入端分别接入CD4013B芯片的端子,用示波器观察输出端的波形变化,并记录下输入输出关系表格,来验证RS触发器的工作原理。

具体实验步骤如下:将CD4013B芯片的端子按如下接线方式连接:RST1,2脚接入+5V电源,C1个100nF的电容与单位时间5 ns的外部时钟信号交替输入接口CLK,以模拟器件为master时,向器件提供单个时钟脉冲。

测试时选择适宜的数据输入,R1和S2另一端程+5V,S1和R2另一端连接接地GND,用万用表测量各端电压,电容缓存的电压。

FPGA实验报告

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_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灯的亮灭情况,验证了我们编写的代码的正确性。

时序电路应用实验报告(3篇)

时序电路应用实验报告(3篇)

第1篇一、实验目的1. 理解时序电路的基本概念和组成,掌握时序电路的设计方法和分析方法。

2. 掌握计数器、寄存器、移位寄存器等时序电路的应用。

3. 熟悉FPGA开发环境,能够使用Quartus II设计工具进行时序电路的设计和仿真。

二、实验原理时序电路是数字电路中的一种重要电路,它能够根据输入信号的变化,产生一系列有序的输出信号。

时序电路主要由触发器、逻辑门和时钟信号组成。

1. 触发器:触发器是时序电路的基本单元,具有存储一个二进制信息的功能。

常见的触发器有D触发器、JK触发器、T触发器等。

2. 逻辑门:逻辑门用于实现基本的逻辑运算,如与、或、非、异或等。

3. 时钟信号:时钟信号是时序电路的同步信号,用于控制触发器的翻转。

三、实验内容1. 计数器设计(1)设计一个3位同步二进制加计数器。

(2)设计一个3位同步二进制减计数器。

2. 寄存器设计使用74LS74触发器设计一个双向移位寄存器。

3. 移位寄存器设计使用74LS74触发器设计一个单向移位寄存器。

4. 环形计数器设计使用74LS74触发器设计一个环形计数器。

5. 可控分频器设计使用Verilog HDL语言设计一个可控分频器,实现时钟信号的分频功能。

四、实验步骤1. 使用Quartus II设计工具创建工程,并添加所需的设计文件。

2. 根据实验原理,编写时序电路的Verilog HDL代码。

3. 编译代码,并生成测试平台。

4. 在测试平台上进行仿真,验证时序电路的功能。

5. 将设计下载到FPGA,进行硬件实验。

6. 记录实验结果,分析实验现象。

五、实验结果与分析1. 计数器实验结果(1)3位同步二进制加计数器:按照时钟信号的变化,计数器能够从000计数到111。

(2)3位同步二进制减计数器:按照时钟信号的变化,计数器能够从111减到000。

2. 寄存器实验结果使用74LS74触发器设计的双向移位寄存器,能够实现数据的左移和右移功能。

3. 移位寄存器实验结果使用74LS74触发器设计的单向移位寄存器,能够实现数据的左移功能。

FPGA_触发器与计数器实验报告

FPGA_触发器与计数器实验报告

电力学院FPGA应用开发实验报告实验名称:触发器与计数器专业:电子科学与技术姓名:班级:学号:1.触发器功能的模拟实现实验目的:1.掌握触发器功能的测试方法。

2.掌握基本RS触发器的组成及工作原理。

3.掌握集成JK触发器和D触发器的逻辑功能及触发方式。

4.掌握几种主要触发器之间相互转换的方法。

5.通过实验,体会EPLD芯片的高集成度和多I/O口。

实验说明:将基本RS触发器,同步RS触发器,集成J-K触发器,D触发器同时集一个FPGA芯片中模拟其功能,并研究其相互转化的方法。

实验的具体实现要连线测试,实验原理如图所示:2.计数器在VHDL中,可以用Q<=Q+1简单地实现一个计数器,也可以用LPM来实现。

下面分别对这两种方法进行介绍。

方法一:第1步:新建一个Quartus项目。

第2步:建立一个VHDL文件,实现一个8位计数器。

计数器从“00000000”开始计到“11111111”,计数器的模是256。

计数器模块还需要包含一个时钟clock、一个使能信号en、一个异步清0信号aclr和一个同步数据加载信号sload。

模块符号如下图所示:第3步:VHDL代码如下:第4步:将VHDL文件另存为counter_8bit.vhd,并将其设定为项目的最顶层文件,再进行语法检查。

第5步:语法检查通过以后,用KEY[0]表示clock,SW[7..0]表示data,SW[8~10]分别表示en、sload和aclr;LEDR[7..0]表示q。

第6步:引脚分配完成后,编译并下载。

第7步:修改上述代码,把计数器的模更改为100,应如何操作。

模为100的计数器,VHDL代码如下:方法二:使用LPM实现8位计数器。

LPM是指参数化功能模块,用LPM可以非常方便快捷地实现一个计数器。

第1步:选择Tools->MegaWizard Plug-In Manager命令,打开如下图所示的对话框。

第2步:直接单击Next按钮,出现如下图所示的对话框。

触发器_实验报告

触发器_实验报告

一、实验目的1. 理解和掌握触发器的基本原理和功能。

2. 熟悉基本RS、JK、D和T触发器的逻辑功能及其应用。

3. 学习触发器之间相互转换的方法。

4. 通过实验,加深对触发器在数字电路中的应用理解。

二、实验原理触发器是一种具有记忆功能的电子器件,它可以根据输入信号和时钟脉冲的变化,在两个稳定状态之间进行切换。

触发器在数字电路中有着广泛的应用,如计数器、寄存器、时序电路等。

触发器根据时钟脉冲的触发方式分为同步触发器和异步触发器。

同步触发器在时钟脉冲的上升沿或下降沿发生状态转换,而异步触发器则不受时钟脉冲的限制,可以在任何时刻发生状态转换。

三、实验仪器与设备1. 双踪示波器2. 数字万用表3. 数字电路实验箱4. 74LS00(二输入端四与非门)5. 74LS74(双D触发器)6. 74LS76(双J-K触发器)四、实验内容与步骤1. 基本RS触发器功能测试(1)搭建基本RS触发器电路,连接实验箱中的与非门。

(2)按照实验要求,在S、R端加信号,观察并记录触发器的Q、端状态。

(3)分析实验结果,总结RS触发器的逻辑功能。

2. JK触发器功能测试(1)搭建JK触发器电路,连接实验箱中的与非门。

(2)按照实验要求,在J、K端加信号,观察并记录触发器的Q、端状态。

(3)分析实验结果,总结JK触发器的逻辑功能。

3. D触发器功能测试(1)搭建D触发器电路,连接实验箱中的与非门。

(2)按照实验要求,在D端加信号,观察并记录触发器的Q、端状态。

(3)分析实验结果,总结D触发器的逻辑功能。

4. T触发器功能测试(1)搭建T触发器电路,连接实验箱中的与非门。

(2)按照实验要求,在T端加信号,观察并记录触发器的Q、端状态。

(3)分析实验结果,总结T触发器的逻辑功能。

5. 触发器之间相互转换(1)分析基本RS触发器与JK触发器之间的转换方法。

(2)分析基本RS触发器与D触发器之间的转换方法。

(3)分析基本RS触发器与T触发器之间的转换方法。

fpga触发器及计数器实验报告

fpga触发器及计数器实验报告

XX电力学院FPGA应用开发实验报告实验名称:触发器与计数器专业:电子科学与技术姓名:班级:学号:1.触发器功能的模拟实现实验目的:1.掌握触发器功能的测试方法。

2.掌握基本RS触发器的组成及工作原理。

3.掌握集成JK触发器和D触发器的逻辑功能及触发方式。

4.掌握几种主要触发器之间相互转换的方法。

5.通过实验,体会EPLD芯片的高集成度和多I/O口。

实验说明:将基本RS触发器,同步RS触发器,集成J-K触发器,D触发器同时集一个FPGA芯片中模拟其功能,并研究其相互转化的方法。

实验的具体实现要连线测试,实验原理如图所示:2.计数器在VHDL中,可以用Q<=Q+1简单地实现一个计数器,也可以用LPM来实现。

下面分别对这两种方法进行介绍。

方法一:第1步:新建一个Quartus项目。

第2步:建立一个VHDL文件,实现一个8位计数器。

计数器从“00000000”开始计到“11111111”,计数器的模是256。

计数器模块还需要包含一个时钟clock、一个使能信号en、一个异步清0信号aclr和一个同步数据加载信号sload。

模块符号如下图所示:第3步:VHDL代码如下:第4步:将VHDL文件另存为counter_8bit.vhd,并将其设定为项目的最顶层文件,再进行语法检查。

第5步:语法检查通过以后,用KEY[0]表示clock,SW[7..0]表示data,SW[8~10]分别表示en、sload和aclr;LEDR[7..0]表示q。

第6步:引脚分配完成后,编译并下载。

第7步:修改上述代码,把计数器的模更改为100,应如何操作。

模为100的计数器,VHDL代码如下:方法二:使用LPM实现8位计数器。

LPM是指参数化功能模块,用LPM可以非常方便快捷地实现一个计数器。

第1步:选择Tools->MegaWizard Plug-In Manager命令,打开如下图所示的对话框。

第2步:直接单击Next按钮,出现如下图所示的对话框。

实验六 触发器实验报告

实验六 触发器实验报告

实验六触发器实验报告一、实验目的本次实验的主要目的是深入理解触发器的工作原理和应用,通过实际操作和观察,掌握触发器在数字电路中的功能和特性。

二、实验原理触发器是一种具有记忆功能的基本逻辑单元,能够存储一位二进制信息。

常见的触发器类型有 SR 触发器、JK 触发器、D 触发器和 T 触发器等。

以 D 触发器为例,其工作原理是在时钟脉冲的上升沿或下降沿,将输入数据D 传递到输出端Q。

在没有时钟脉冲时,输出状态保持不变。

三、实验设备与材料1、数字电路实验箱2、 74LS74 双 D 触发器芯片3、示波器4、导线若干四、实验内容与步骤1、用 74LS74 芯片搭建 D 触发器电路将芯片插入实验箱的插座中,按照芯片引脚功能连接电源、地和输入输出引脚。

使用导线将 D 输入端连接到逻辑电平开关,将时钟输入端连接到脉冲信号源,将 Q 和 Q'输出端连接到发光二极管或逻辑电平指示器。

2、测试 D 触发器的功能置 D 输入端为高电平(1),观察在时钟脉冲作用下 Q 输出端的变化。

置 D 输入端为低电平(0),再次观察时钟脉冲作用下 Q 输出端的变化。

3、观察 D 触发器的异步置位和复位功能将异步置位端(PRE)和异步复位端(CLR)分别连接到逻辑电平开关,测试在置位和复位信号作用下触发器的状态。

4、用示波器观察时钟脉冲和 Q 输出端的波形将示波器的探头分别连接到时钟脉冲输入端和 Q 输出端,调整示波器的设置,观察并记录波形。

五、实验结果与分析1、在 D 输入端为高电平时,每当时钟脉冲的上升沿到来,Q 输出端变为高电平;在D 输入端为低电平时,每当时钟脉冲的上升沿到来,Q 输出端变为低电平,验证了 D 触发器的正常功能。

2、当异步置位端(PRE)为低电平时,无论其他输入如何,Q 输出端立即变为高电平;当异步复位端(CLR)为低电平时,Q 输出端立即变为低电平,表明异步置位和复位功能有效。

3、从示波器观察到的波形可以清晰地看到时钟脉冲与 Q 输出端的关系,进一步验证了触发器的工作特性。

FPGA实验报告5篇

FPGA实验报告5篇

FPGA实验报告5篇第一篇:FPGA实验报告FPGA实验报告专业:XXX 姓名:XXX 学号:XX一:实验目的1.熟悉Modelsim和Quartus II软件的运行环境和使用2.熟练使用Quartus II仿真软件生成网表。

3.熟悉FPGA前仿真和后仿真的整个流程。

二:实验内容编写counter计数器,在Quartus II仿真软件中生成网表,再在Modelsim中进行后仿真。

三: 实验步骤1.在Modelsim编写源程序(counter计数器及激励),编译源文件,确保程序的正确性,并进行前仿真,生成波形图如下:附:源程序如下:module counter(q,clk,reset);input clk,reset;output [3:0] q;reg [3:0] q;always @(posedge reset or negedge clk)if(reset)q <= 4'b0;elseq <= q + 1;endmodule module top;reg CLK,RESET;wire [3:0] Q;counter c1(Q,CLK,RESET);initialCLK=1'b0;always#1 CLK=~CLK;initial$monitor($time,“Q=%d”,Q);initialbeginRESET=1'b1;#5 RESET=1'b0;#180 RESET=1'b1;end endmodule 2.新建文件夹,将源程序counter.v放进去。

然后启动Quartus II仿真软件,生成网表。

1).在【File】下拉菜单中选中New Project Wizard选项,出现对话框。

并指定工程工作目录、工程名称和顶层模块名,如图(a)所示。

2).添加(Add)counter.v文件。

如图(b)所示。

3).选择器件系列4).指定其它EDA工具,如图(d)所示。

《FPGA系统设计》实验报告》时序逻辑电路的设计

《FPGA系统设计》实验报告》时序逻辑电路的设计

《FPGA系统设计》实验报告》时序逻辑电路的设计
一、设计任务
分别设计并实现锁存器、触发器的VHDL模型。

二、设计过程
1、同步锁存器:
同步锁存器是指复位和加载功能全部与时钟同步,复位端的优先级较高。

下图为同步锁存器的VHDL程序及模型:
2、异步锁存器:
异步锁存器,是指复位与时钟不同步的锁存器。

下图为同步锁存器的VHDL程序及模型:
3、D触发器:
D触发器是最常用的触发器。

下图为简单D触发器的VHDL 模型:
4、T触发器:
T触发器的特点是在时钟沿处输出信号发生翻转。


照有无复位、置位信号以及使能信号等,T触发器也有多种类型。

下图为带异步复位T触发器的VHDL模型:
5、JK触发器:
JK触发器中,J、K信号分别扮演置位、复位信号的角色。

为了更清晰的表示出JK触发器的工作过程,以下给出JK触发器的真值表(如表1所示)。

表1 JK触发器真值表
按照有无复位、置位信号,常见的JK触发器也有多种类型,下图带异步复位(clr)、置位(prn)的JK触发器的VHDL模型:
三.总结
本次实验中较为顺利,在第一次课的时间内我就已经完成了必做实验与选作实验。

在实验的过程中,在防抖电路处有了较大的困难。

由于仿真中不存在此问题,在实际操作中参数选择时遇到了一定的困难。

在反复比对效果之后,我
确定了电路的参数,实现了防抖功能。

通过这次实验,我对时钟脉冲、计数器等有了更加深入的认识与理解。

FPGA实验报告

FPGA实验报告

FPGA电路实验报告实验一、Nexys DDR4入门实验实验目的:1.熟悉Vivado软件的使用2.熟悉Verilog编程3.下载Bit流文件实验内容:基本步骤:1.创建新工程,完成新文件的配置 2.在sources框架下创建design sources 和constraint 3.创建输入输出(可选) 4.在对应文件下分别放入源代码、仿真代码和约束文件5.依次执行run simulation、run synthesis并最后generate bitstream生FPGA配置文件6.下载FPGA配置文件bit文件至Nexys A7主板使用器件:LED灯、电路、vivado软件实验方法:在给LED灯设置开关SW来控制LED灯的高低电平来控制LED灯的开和关源程序与实验结果:源文件:beginLED_0<=switch_0;LED_1<=switch_1;end实验结果:LD21点亮,拨动L16和J15可以控制LED灯K15,H17的变化实验总结:基本熟悉FPGA文件在vivado软件中的实现流程;设置输入输出是可选项,可在源代码中代替此功能;约束文件用于定义输入输出对应的端口。

实验二、多路选择器的FPGA实现实验目的:1.了解多路选择器的功能与原理2.了解通过vivado实现多路选择器的方法实验步骤:1.创建新工程2.在sources框架下创建design sources 、仿真文件和constraint3.分别创建两个输入输出(可选)4.在对应文件下分别放入源代码、仿真代码和约束文件5.依次执行run simulation、run synthesis并最后generate bitstream生FPGA 配置文件6.下载FPGA配置文件bit文件至Nexys A7。

源程序与实验结果:源代码:assign y=~s&a | s&b;实验结果:使用SW1和SW2作为两个数据输入端,使用SW0决定哪一个数据被选通。

3FPGA实验报告8位计数器—徐艺萍

3FPGA实验报告8位计数器—徐艺萍

3FPGA实验报告8位计数器—徐艺萍实验三8位计数器试验⼀、实验原理所做8位计数器,有1个时钟输⼊端,1个同步清0端,输出为8位并⾏输出,每来1个时钟脉冲,所输出的⼋位⼆进制数加1,当由00000000计数到11111111时,计数器返回到00000000重新开始计数。

其代码如下:module counter8(out,reset,clk);output[7:0] out;(可以不写吗?)input reset,clk;reg[7:0] out;always @(posedge clk)beginif (reset) out<=0; //同步复位else out<=out+1; //计数endendmodule本实验采⽤ChipScope-Pro⽣成ILA/ICON 核,并插⼊到8位计数器设计中,在线进⾏观测和调试。

⼆、实验⽬的1. 熟悉ISE9.1开发环境,掌握⼯程的⽣成⽅法;2. 熟悉SEED-XDTK XUPV2Pro实验环境;3. 了解Verilog HDL语⾔在FPGA中的使⽤;4. 通过掌握8位计数器的Verilog HDL设计,了解数字电路的设计。

三、实验内容1.⽤Verilog HDL语⾔设计8位计数器,进⾏功能仿真验证。

2.使⽤chipscope-Pro⽣成ILA/ICON核,在线观测调试。

四、实验准备1. 将USB下载电缆与计算机及XUPV2Pro板的J8连接好;2. 将RS232串⼝线⼀端与计算机连接好,另⼀端与板卡的J11相连接;3. 启动计算机,当计算机启动后,将XUPV2Pro板的电源开关SW11打开到ON 上。

观察XUPV2Pro板上的+2.5V,+3.3V,+1.5V 的电源指⽰灯是否均亮。

若有不亮的,请断开电源,检查电源。

五、实验步骤1.创建⼯程及设计输⼊⑴在E:\project\⽬录下,新建名为counter8的新⼯程;器件族类型(Device Family)选择“Virtex2P”,器件型号(Device)选“XC2VP30 ff896 -7”,综合⼯具(Synthesis Tool)选“XST (VHDL/Verilog)”,仿真器(Simulator)选“ISE Simulator”⑵设计输⼊2.功能仿真⑴在sources窗⼝sources for中选择Behavioral Simulation。

FPGA实验计数器设计实验

FPGA实验计数器设计实验

哈尔滨理工大学软件学院实验报告课程 FPGA题目实验二计数器设计实验班级集成12-2班专业集成电路设计与集成系统学生学号 12140202272014年10 月15日实验二计数器设计实验实验目的:学习计数器的设计、仿真和硬件测试方法。

实验内容及步骤:1.使用Verilog HDL设计2位 16进制计数器,由DE2的KEY0输入计数值,在HEX1,HEX0上显示计数值。

2.使用嵌入式逻辑分析仪进行仿真;3.将实验程序下载到DE2运行。

实验注意事项:去抖动DE2按键电路图实验程序:module counting(clk,reset,k,h1,h2);input k,reset,clk;output [6:0]h1,h2;reg [7:0]count;reg key;reg [6:0]h1,h2;reg [10:0]clock=11'b0;always@(posedge clk)beginif(k) // k is the input Key0 beginkey<=1;clock<=0;endelsebeginclock<=clock+1; // if clock still isn't 2000 ,then the next all don,t excutiveif(clock==1000) // so continue came back until up to 2000beginclock<=11'b0;key=0; // to produce a negadge as a senstive pinendendendalways@(negedge key or negedge reset)beginif(reset==0)count=0;elsecount=count+1'b1;endalways@(count)begincase(count[3:0])4'b0000:h1<=7'b1000000; 4'b0001:h1<=7'b1111001; 4'b0010:h1<=7'b0100100; 4'b0011:h1<=7'b0110000; 4'b0100:h1<=7'b0011001; 4'b0101:h1<=7'b0010010; 4'b0110:h1<=7'b0000010; 4'b0111:h1<=7'b1111000; 4'b1000:h1<=7'b0000000; 4'b1001:h1<=7'b0010000; 4'b1010:h1<=7'b0001000; 4'b1011:h1<=7'b0000011; 4'b1100:h1<=7'b1000110; 4'b1101:h1<=7'b0100001; 4'b1110:h1<=7'b0000110; 4'b1111:h1<=7'b0001110; default : h1<=7'b1000000; endcasecase(count[7:4])4'b0000:h2<=7'b1000000; 4'b0001:h2<=7'b1111001;4'b0010:h2<=7'b0100100;4'b0011:h2<=7'b0110000;4'b0100:h2<=7'b0011001;4'b0101:h2<=7'b0010010;4'b0110:h2<=7'b0000010;4'b0111:h2<=7'b1111000;4'b1000:h2<=7'b0000000;4'b1001:h2<=7'b0010000;4'b1010:h2<=7'b0001000;4'b1011:h2<=7'b0000011;4'b1100:h2<=7'b1000110;4'b1101:h2<=7'b0100001;4'b1110:h2<=7'b0000110;4'b1111:h2<=7'b0001110;default : h2<=7'b0000001;endcaseendendmodule实验结果:当计数值为4时。

FPGA程序设计实验报告 JK触发器

FPGA程序设计实验报告 JK触发器

FPGA程序设计实验报告——JK触发器一.实验目的JK触发器是一种基础电子元件,这个程序用Quartus模拟JK触发器的功能,具有异步信号清零或置1功能,同时在JK触发器程序基础上进行修改,使其具有对输出q的显示功能,在q取1时显示1,在q取0时显示0。

这里使用的是上升沿触发式JK触发器。

二.程序代码module JK(clk,j,k,q,r,s,seg);input clk,j,k,r,s;output q;output [7:0]seg;reg q=0;reg [7:0]seg;always @(posedge clk)beginif(r==1 && s==0)begin q<=0;endif(r==0 && s==1)begin q<=1;endif(r==0 && s==0)beginif(j==1 && k==1)begin q<=~q;endif(j==1 && k==0)begin q<=1;endif(j==0 && k==0)begin q<=q;endif(j==0 && k==1)begin q<=0;endendendalways @(q)beginif(q==0)begin seg<=8'b0011_1111;endif(q==1)begin seg<=8'b0000_0110;endendendmodule三.仿真结果对程序进行编译仿真之后,得到以下结果:仿真结果说明:对于上升沿式JK触发器,仅在上升沿到来是触发改变q的取值。

r和s是两个异步信号输入端,在r取1,s取0时,无论j,k输入端如何,q始终取0。

在r取0,s取1时,无论j,k输入端如何,q始终取1。

在r和s都取0时,触发器正常工作,其q值取决于上升沿到来时的j,k以及之前一个周期的q值。

fpga 实验报告

fpga 实验报告

fpga 实验报告
这是一份关于 FPGA 实验的报告,主要包括实验目的、实验原理、实验步骤、实验结果及分析等内容。

一、实验目的
本次实验的主要目的是熟悉 FPGA 的基本结构及开发流程,掌握 FPGA 的基本设计方法和原理,并提高实验操作技能。

二、实验原理
FPGA 是一种可编程逻辑器件,其原理是利用可编程逻辑单元和可编程互连资源实现数字逻辑电路功能。

FPGA 可以通过编程来实现不同的功能,具有灵活性和可重构性。

三、实验步骤
1.熟悉工具、芯片型号及开发板型号。

2.根据实验要求打开 Vivado 设计套件,创建一个新工程。

3.在工程中创建一个 VHDL 组合逻辑电路,并实现四个 NAND 门的功能。

4.合成电路,并进行布局和布线。

5.下载到 FPGA 开发板上。

6.测试电路功能。

四、实验结果及分析
实验中,我们成功设计并实现了四个 NAND 门,可以进行逻辑与、或、非运算。

并通过仿真和实际测试,验证了电路的正确性。

在布局和布线的过程中,我们也可以看到 FPGA 的内部结构和资源分配情况。

总的来说,这个实验使我们更深入地了解了 FPGA 的基本原理和开发流程,对我们今后的研究和开发工作都有很大的帮助。

FPGA实验报告

FPGA实验报告

西南科技大学实验报告课程名称: FPGA技术实验名称基于HDL十进制计数、显示系统设计姓名:学号:班级:指导教师:实验题目一、实验原理1、实验内容:设计具有异步复位、同步使能的十进制计数器,其计数结果可以通过七段数码管、发光二极管等进行显示。

图2.1系统原理图2、模块端口信号说明设计任务表述:输入信号:clk_50m ---系统采样时钟clk -------待计数的时钟clr ---------异步清零信号,当clr=1,输出复位为0,当clr=0,正常计数ena---------使能控制信号,当ena=1,电路正常累加计数,否则电路不工作输出信号:q[6:0]---------驱动数码管,显示计数值的个位COM---------共阳级数码管公共端(接地,电路板原理图)3、以自顶向下的设计思路进行模块划分整个系统主要设计的模块是:十进制计数模块和数码管驱动模块,由于实验板的按键为实现硬件防抖,则需要将按键输入的时钟clk,先通过消抖模块消抖后,再输出至后续使用。

图2.2系统模块划分和引脚连线图由以上分析可知本设计总共包括3个模块:1)十进制计数器(cnt10.v)模块。

2)驱动七段数码管的模块(led.v)。

3)由于实验板上按键需要进行消抖,所以需要一个消抖模块(debounce_module),待计数的时钟clk输入至计数器前,先通过消抖模块。

1)十进制计数器模块(cnt10.v)实验原理输入:CLK -------待计数的时钟CLR ---------异步清零信号,当CLR =1,输出复位为0,当CLR =0,正常计数ENA---------使能控制信号,当ENA=1,电路正常累加计数,否则电路不工作输出:SUM[3:0]---------- 计数值的个位。

即,在CLK上升沿检测到SUM=9时,SUM将被置0,开始新一轮的计数。

COUT ------------计数值的十位进位,即:只有在时钟CLK上升沿检测到SUM=9时,COUT将被置1,其余情况下COUT=0。

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的时钟驱动。

FPGA课程设计实验报告

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 ISIM4. 实验设计本实验设计了一个简单的FPGA应用电路,实现了一个4位计数器。

该计数器能够从0递增到15,然后重新从0开始计数。

计数器的递增频率可通过外部开关调节,同时采用七段数码管显示当前计数器的值。

4.1 电路结构实验设计的电路结构如下所示:电路结构图电路结构图该电路包含以下模块: - 时钟模块:用于提供递增计数器的时钟信号。

- 计数器模块:实现了一个4位计数器,并能够从0递增到15。

- 控制模块:用于控制外部开关的输入,并将结果输出到七段数码管的控制端口。

- 七段数码管模块:用于将计数器的值以七段数码管的形式显示出来。

4.2 Verilog代码根据电路结构图,我们编写了如下的Verilog代码:module counter(input wire clk,input wire reset,output wire [6:0] seg,output wire seg_en);reg [3:0] count;always @(posedge clk or posedge reset)beginif (reset)count <= 4'b0000;else if (count == 4'b1111)count <= 4'b0000;elsecount <= count + 1;endassign seg = count;assign seg_en = 1'b1;endmodule5. 实验过程5.1 仿真在进行实际FPGA设计之前,我们首先对设计的Verilog代码进行仿真,以验证其功能的正确性。

FPGA实验报告

FPGA实验报告

电气技术实践可编程逻辑器件FPGA应用开发实验报告2016年12月目录一、实验目的二、实验要求三、实验内容四、实验代码及实验结果(1)4位二进制加法计数器(2)半加器(3)LED静态显示(4)38译码器(5)点阵扫描显示(6)步进电机状态机五、实验感想六、学习并使用FPGA的心得与体会七、电气技术实践总结一、实验目的1、熟悉使用可编程逻辑器件(Altera公司FPGA Cyclone系列EP1C6Q)。

2、熟悉使用硬件描述语言VHDL。

3、掌握FPGA集成环境(Altera公司FPGA QuartusII 开发流程。

4、熟悉使用核心目标系统板与接口电路等工作原理及其功能模块绑定信息。

5、熟悉并掌握下载线方式和下载文件的选择。

二、实验要求1、学习并掌握文本、图形等输入和时序、功能仿真方法。

2、学习并熟悉门电路、组合电路、时序电路等单一模块功能。

3、学习并设计各种不同状态机逻辑功能。

4、学习并设计由单一模块→较多功能模块集成→系统集成方法。

5、学习并选择多种模式显示(发光二极管显示、米字型数码管显示、七段数码管→动态扫描或静态扫描显示、LED点阵显示各种字符和图形或静止或移动等方式、LCD液晶显示各种字符和图形或静止或移动等方式)。

6、根据自已的兴趣和愿望,可从以下给定的实验目录中选取或自已设定功能题目。

7、实验数目没有要求,关键是看质量,是否是自已编写、调试、实现。

三、实验内容1、按指导书集成开发环境章节操作实现文本编程实例1和图形编程实例2全过程。

2、任选门电路、组合电路、时序电路实验各完成一个其逻辑功能,其实现方案自已规定。

在进行FPGA目标器件输入和输出引脚绑定时,输入引脚绑定高/低电平、单脉冲、各种分频连续脉冲等多种信号,输出引脚可绑定发光二极管、七段数码管、LED点阵等显示模式。

3、在完成1位十进制计数器的基础上,可增加完成2或3等多位十进制计数器逻辑功能并用多位七段数码管来显示。

4、根据状态机工作特点,设计一个有一定功能效果的例程。

数电实验报告_触发器

数电实验报告_触发器

一、实验目的1. 理解触发器的概念和基本原理;2. 掌握触发器的逻辑功能和应用;3. 熟悉触发器电路的搭建和调试方法;4. 通过实验验证触发器的功能和应用。

二、实验原理触发器是一种具有记忆功能的电子电路,能够存储一个二进制信息。

它根据输入信号的变化,在一定的条件下可以改变其输出状态,从而实现数据的存储和传递。

触发器是数字电路中的基本单元,广泛应用于计数器、寄存器、存储器等数字系统中。

触发器主要分为两大类:电平触发器和边沿触发器。

电平触发器在输入信号保持一定电平期间,输出状态才会发生变化;而边沿触发器仅在输入信号的跳变沿处改变输出状态。

常见的触发器有RS触发器、D触发器、JK触发器和T触发器等。

以下分别介绍这些触发器的原理和逻辑功能。

1. RS触发器:由两个与非门交叉耦合而成,具有两个输入端(S、R)和两个输出端(Q、Q')。

当S=0,R=1时,触发器置1;当S=1,R=0时,触发器置0;当S=0,R=0时,触发器保持原状态;当S=1,R=1时,触发器处于不确定状态。

2. D触发器:由一个与非门和两个反相器组成,具有一个输入端(D)和两个输出端(Q、Q')。

当输入信号D变化时,触发器的输出状态随之变化,即D=1时,Q=1;D=0时,Q=0。

3. JK触发器:由两个与非门交叉耦合而成,具有两个输入端(J、K)和两个输出端(Q、Q')。

当J=K=0时,触发器保持原状态;当J=1,K=0时,触发器置1;当J=0,K=1时,触发器置0;当J=K=1时,触发器翻转。

4. T触发器:由一个与非门和两个反相器组成,具有一个输入端(T)和两个输出端(Q、Q')。

当T=1时,触发器翻转;当T=0时,触发器保持原状态。

三、实验内容及步骤1. 触发器电路搭建:根据实验原理,搭建RS触发器、D触发器、JK触发器和T触发器电路。

2. 触发器功能测试:通过改变输入信号,观察输出端Q的逻辑信号及其下一逻辑状态,验证触发器的逻辑功能。

数电实验五触发器实验报告

数电实验五触发器实验报告

数电实验五触发器实验报告一、实验目的二、实验原理三、实验器材四、实验步骤五、实验结果分析六、实验总结一、实验目的本次数电实验旨在通过触发器实验,加深学生对于触发器的理解和应用,掌握触发器的工作原理及其在电路中的应用。

二、实验原理1. 触发器概述触发器是一种存储器件,可以将输入信号转换成稳定的输出信号,并且能够记住先前输入过的状态。

触发器有两个稳态(高电平或低电平),并且只有在时钟信号到来时才会改变状态。

2. SR锁存器SR锁存器是最简单的触发器之一,由两个交叉耦合反相输出(NOR或NAND)门构成。

当S=1,R=0时,Q=1;当S=0,R=1时,Q=0;当S=R=0时,保持上一个状态不变。

但是SR锁存器存在一个致命缺陷——SET和RESET不能同时为1。

3. D锁存器D锁存器是由一个数据输入口和一个时钟输入口组成。

当D为1且时钟信号到来时,Q会被置为1;当D为0且时钟信号到来时,Q会被置为0。

D锁存器可以看做是SR锁存器的一种特殊情况,即S=D,R=not D。

4. JK锁存器JK锁存器是由J、K、时钟和输出端Q组成的。

当J=1,K=0时,Q=1;当J=0,K=1时,Q=0;当J=K=1时,Q状态取反;当J=K=0时,保持上一个状态不变。

JK锁存器可以看做是SR锁存器的一种改进型。

5. T锁存器T锁存器是由T、时钟和输出端Q组成的。

当T为1且时钟信号到来时,Q状态取反;当T为0且时钟信号到来时,保持上一个状态不变。

T锁存器可以看做是JK锁存器的一种特殊情况,即J=T,K=not T。

三、实验器材本次实验所需材料如下:- 数字电路实验箱- 74LS73触发器芯片- 电源线、万用表等四、实验步骤1. 按照电路图连接74LS73芯片。

2. 打开电源并接通电路。

3. 分别将CLK输入高低电平,并记录输出结果。

4. 将D输入高低电平,并记录输出结果。

5. 将J、K输入高低电平,并记录输出结果。

6. 将T输入高低电平,并记录输出结果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

上海电力学院FPGA应用开发实验报告
实验名称:触发器与计数器
专业:电子科学与技术
姓名:
班级:
学号:
1.触发器功能的模拟实现
实验目的:
1.掌握触发器功能的测试方法。

2.掌握基本RS触发器的组成及工作原理。

3.掌握集成JK触发器和D触发器的逻辑功能及触发方式。

4.掌握几种主要触发器之间相互转换的方法。

5.通过实验,体会EPLD芯片的高集成度和多I/O口。

实验说明:
将基本RS触发器,同步RS触发器,集成J-K触发器,D触发器同时集一个FPGA芯片中模拟其功能,并研究其相互转化的方法。

实验的具体实现要连线测试,实验原理如图所示:
2.计数器
在VHDL中,可以用Q<=Q+1简单地实现一个计数器,也可以用LPM来实现。

下面分别对这两种方法进行介绍。

方法一:
第1步:新建一个Quartus项目。

第2步:建立一个VHDL文件,实现一个8位计数器。

计数器从“00000000”开始计到“11111111”,计数器的模是256。

计数器模块还需要包含一个时钟clock、一个使能信号en、一个异步清0信号aclr和一个同步数据加载信号sload。

模块符号如下图所示:
第3步:VHDL代码如下:
第4步:将VHDL文件另存为counter_8bit.vhd,并将其设定为项目的最顶层文件,再进行语法检查。

第5步:语法检查通过以后,用KEY[0]表示clock,SW[7..0]表示data,SW[8~10]分别表示en、sload和aclr;LEDR[7..0]表示q。

第6步:引脚分配完成后,编译并下载。

第7步:修改上述代码,把计数器的模更改为100,应如何操作。

模为100的计数器,VHDL代码如下:
方法二:使用LPM实现8位计数器。

LPM是指参数化功能模块,用LPM可以非常方便快捷地实现一个计数器。

第1步:选择Tools->MegaWizard Plug-In Manager命令,打开如下图所示的对话框。

第2步:直接单击Next按钮,出现如下图所示的对话框。

如图所示,在左边的选择框中选择“LPM_COUNTER”,在输出文件类型单选框中选中“VHDL”,并输入文件名为“counter_lpm”。

第3步:完成设置后直接单击Next按钮,打开如下图所示的对话框。

在输出位数的下拉框中选择“8 bits”,在计数方向的单选框中选中“Up only”。

这个设置表示生成的计数器是8位加法计数器。

第4步:独立设计模为七的计数器
第4步:单击Next按钮后,出现如下图所示的对话框。

在该对话框中选择添加额外的端口,在这里选中“Count Enable”选项,表示添加了一个计数使能端口,此时在左边的图形符号中可以看到多了一个“cnt_en”的引脚。

第5步:单击Next按钮,打开如下图所示的下一个对话框。

在同步输入(Synchronous inputs)处选择“Load”,在异步输入(Asynchronous inputs)处选择“Clear”。

表示在计数器中添加了一个同步置数端和一个异步清0端,在左边
的图形符号中可以看到又添加了一个aclr、sload和用于置数用的data[7..0]。

第6步:继续单击Next按钮直到结束为止。

到此即完成了一个8位计数器的设计,同时生成了一个VHDL文件此couter_lpm.vhd。

第7步:接着需要将生成的couter_lpm.vhd文件添加到项目中,如下图所示,在项目浏览器窗口中,右击“Device Design Files”,在下拉菜单中选择“Add/Remove Files in Project”命令。

第8步:选择添加文件命令后,打开如下图所示的对话框。

在“File name”处可直接输入将添加的文件名,或通过点击右边的浏览按钮,打开浏览窗口,选择需要添加的文件。

然后点击右边的Add按钮,即完成。

第9步:将couter_lpm.vhd设定为顶层设计文件,进行语法检查后,执行与方法一相同的操作即可。

3.时钟电路
利用上面设计好的计数器和分频器设计一个实时的时钟。

一共需要1个模24计数器、2个模6计数器、2个模10计数器、一个生成1Hz的分频器和6个数码管解码器。

最终用HEX5~HEX4显示小时(0~23),用HEX3~HEX2显示分钟(0~59),用HEX1~HEX0显示秒钟(0~59)。

具体步骤如下:
第1步:新建一个QuartusII工程,将其命名为Clockcircut。

第2步:建立各功能模块(计数器、分频器及7段数码管)的VHDL文件,并分别将它们设置成顶层文件,进行编译和仿真。

(1)模为24的计数器VHDL代码:
(2)模为6的计数器VHDL代码:
(3)模为10的计数器VHDL代码:
(4)7段数码管的VHDL代码:
(5)50M分频的分频器VHDL代码:
第3步:语法检查通过后直接生成符号。

第4步:采用图形编辑器,将几个模块连接起来构成一个时钟。

第5步:将原理图保存为clockcircuit.bdf,并进行语法分析,确定无误后在进行引脚分配。

第6步:锁定引脚以后,对项目进行全编译,然后下载到开发板上观察实验现象。

相关文档
最新文档