FPGA实验教程_原理图设计部分
FPGA实验1_原理图输入与仿真及由原理图生成元器件模块实验

实验一、原理图输入与仿真及由原理图生成元器件模块实验一、实验容1、完成所给原理图的设计输入。
2、对已完成的原理图进行Verilog转换和仿真测试。
3、学习观察器件下级原理图及由原理图生成模块的方法。
二、一位全加法器的原理图设计输入、仿真测试及Verilog转换。
图1.1 全加器原理图表1-1A B Cin Sum Cout0 0 00 0 10 1 00 1 11 0 00 11 1 01 1 11)新建一个项目名为LAB项目,点击菜单Project New Source,选择添加类型为Schematic(参见图1.2——图1.4),完成如图1.1原理图的设计输入。
图1.2创建新工程图1.3 设置工程属性图1.4 新建原理图输入2)添加测试代码,新建用XST或ModelSim Simulator 进行仿真测试(参见图1.5——图1.9),将仿真结果填入一位全加法器真值表1-1中。
图1.5 添加测试模块图1.6 关联被测试模块图1.7 添加激励测试代码图1.8 检查语法后点击仿真图1.9 仿真结果3)确认项目的属性中preferred language 为Verilog,利用生成器将原理图转换为Verilog描述的语言。
(如图1-10所示)图1.104)将原理图转换为symbol,以便能在其他原理图中使用。
(如图1-11所示)图1.11三、新建一个原理图文件Comp,在原理图中插入生成的图标myadder(如图1.12)。
图1.12四、选中myadder模块,按下push按钮,即可查看该模块的下级原理图(如图1.13)。
图1.13五、参照以上步骤,在Comp中完成图1.14的二位比较器原理图的设计输入。
并进行仿真测试及Verilog转换,并将仿真结果填入表1-2。
表1-2A与B的关系Q值A>BA<BA=B图1.14。
FPGA入门实验教程 适合初学者

艾米电子工作室—让开发变得更简单FPGA 入门系列实验教程——点亮LED1. 实验任务点亮发光二极管。
通过这个实验,熟悉并掌握CPLD/FPGA 开发软件QuartusII 的使用方法和开发流程以及Verilog HDL的编程方法。
2. 实验环境硬件实验环境为艾米电子工作室型号EP2C5T144 开发套件。
软件实验环境为Quartus II 8.1 开发软件。
3. 实验原理FPGA 器件同单片机一样,为用户提供了许多灵活的独立的输入/输出I/O 口(单元)。
FPGA 每个I/O 口可以配置为输入、输出、双向、集电极开路和三态门等各种组态。
作为输出口时,FPGA 的I/O 口可以吸收最大为24mA 的电流,可以直接驱动发光二极管LED 等器件。
图1. 1 为8 个发光二极管硬件原理图,本原理图对应艾米电子工作室型号为EP2C5T144 FPGA 开发板及接口板。
通过原理图可知如果要点亮这八个LED,所以只要正确分配并锁定引脚后,在相应的引脚上输出相应高电平“1”,就可实现点亮该发光二极管的功能。
本工作室开发板均采用输出“1”点亮LED 的模式,以后就不再另作说明。
图1. 1 发光二极管LED 硬件原理图艾米电子工作室—让开发变得更简单FPGA 入门系列实验教程——LED 闪烁灯1. 实验任务让实验板上的8 个LED 周期性的闪烁。
通过这个实验,熟悉并掌握采用计数与判断的方式来实现分频的Verilog HDL 的编程方法以及Quartus II 软件的使用方法和开发流程。
2. 实验环境硬件实验环境为艾米电子工作室型号EP2C8Q208 增强版开发套件。
软件实验环境为Quartus II 8.1 开发软件。
3. 实验原理艾米电子工作室开发套件板载50MHz 的时钟源,假如我们直接把它输入到发光二极管LED,由于人眼的延迟性,我们将无法看到LED 闪烁,认为它一直亮着。
如果我们期望看到闪烁灯,就需要将时钟源的频率降低后再输出。
fpga原理图设计方法

fpga原理图设计方法
FPGA原理图设计方法如下:
1. 准备工作
在开始设计FPGA原理图之前,首先需要明确设计目标,了解所需电路功能,并准备好设计所需的电路元件、电源以及相关工具和软件。
2. 确定电路结构
根据电路功能和要求,设计电路的整体结构。
通常可以将电路划分为几个模块,然后根据模块功能设计对应的电路。
3. 绘制原理图
使用电子设计自动化工具(EDA工具)来绘制FPGA的原理图。
在绘制原理图时,应按照电路结构逐个模块进行绘制,并使用合适的元件符号和连线方式。
4. 连接电路元件
根据电路结构和原理图,逐个连接电路元件。
注意保持电路的连续性和正确性,在绘制连线时避免交叉和短路。
5. 添加电源和地
为电路添加合适的电源和地引脚,并按照原理图正确连接电源和地线。
在连接时,确保电源和地的连接正确无误,并符合电路的电源要求。
6. 绘制引脚定义
根据电路功能和FPGA引脚规格,在原理图中添加引脚定义。
引脚定义通常包括输入、输出以及其他特殊功能引脚。
7. 进行验证和修改
完成原理图绘制后,对原理图进行验证,确保电路设计无误。
如果发现问题或需要修改,及时进行调整和改进。
8. 生成输出文件
根据原理图和设计需求,使用EDA工具将原理图转化为
FPGA的可配置文件(如HDL代码或bit文件),以便后续进
行FPGA的配置和实现。
以上是FPGA原理图设计的一般方法,根据具体的设计需求
和EDA工具的使用习惯,可能还需要进行其他操作或步骤。
注意在设计过程中,避免出现相同的文字或标题,以免混淆和歧义。
FPGA轻松学习用QuartusII通过原理图完成与门电路设计

FPGA轻松学习用QuartusII通过原理图完成与门电路设计打开QuartusII软件,程序主界面如下:1,新建一个工程点击File——>New Project Wizard,打开创建新工程向导,这里你将完成工程的基本设定选项。
1,Project name and directory——工程的名称与目录2,Name of the top-level design entity——顶层设计实体的名称3,Project files and libraries——项目文件与库4,Target device family and device——目标设备的族类5,EDA tool settings——EDA工具设定这里一般设定好工程名称和目录,顶层设计实体名称以及目标设备族类就可以了,其他的暂时直接使用默认项就可以了。
2,新建一个设计文件通过点击File——>New打开新建文件选择框,由于我们这里使用原理图描述实现的,则文件类型选择Design Files——>Block Diagram/Schematic File,就新建了一个原理图文件,将其保存起来,注意命名要跟前面设置的顶层设计实体名称相同。
3,编写设计文件接下来开始在文件中绘制原理图,这里首先完成与门的添加,点击左侧工具栏中的Symbol Tool按钮,打开Symbol选择框,选择primitives——>logic——>and2,点击OK后即可在原理图中添加一个2输入的与门了。
在同样通过Symbol Tool中的加入和primitives——>pin——>output加入输入和输出引脚,然后在原理图中把他们用Orthogonal Node Tool即导线连接起来,双击输入输出引脚,为他们设定好名字,pinA,pinB,pinC,就完成了原理图中的设计。
4,编译(分析综合)点击Processing——>Start——>Start Analysis & Synthesis,进行分析综合,就好像是对程序进行编译,等待片刻,如果没有错误,编译报告会输出出来。
FPGA轻松学习用QuartusII通过原理图完成与门电路设计

FPGA轻松学习用QuartusII通过原理图完成与门电路设计打开QuartusII软件,程序主界面如下:1,新建一个工程点击File——>New Project Wizard,打开创建新工程向导,这里你将完成工程的基本设定选项。
1,Project name and directory——工程的名称与目录2,Name of the top-level design entity——顶层设计实体的名称3,Project files and libraries——项目文件与库4,Target device family and device——目标设备的族类5,EDA tool settings——EDA工具设定这里一般设定好工程名称和目录,顶层设计实体名称以及目标设备族类就可以了,其他的暂时直接使用默认项就可以了。
2,新建一个设计文件通过点击File——>New打开新建文件选择框,由于我们这里使用原理图描述实现的,则文件类型选择Design Files——>Block Diagram/Schematic File,就新建了一个原理图文件,将其保存起来,注意命名要跟前面设置的顶层设计实体名称相同。
3,编写设计文件接下来开始在文件中绘制原理图,这里首先完成与门的添加,点击左侧工具栏中的Symbol Tool按钮,打开Symbol选择框,选择primitives——>logic——>and2,点击OK后即可在原理图中添加一个2输入的与门了。
在同样通过Symbol Tool中的加入和primitives——>pin——>output加入输入和输出引脚,然后在原理图中把他们用Orthogonal Node Tool即导线连接起来,双击输入输出引脚,为他们设定好名字,pinA,pinB,pinC,就完成了原理图中的设计。
4,编译(分析综合)点击Processing——>Start——>Start Analysis & Synthesis,进行分析综合,就好像是对程序进行编译,等待片刻,如果没有错误,编译报告会输出出来。
FPGA的基本原理详细+入门 ppt课件

十二、FPGA的功耗
十三、FPGA的利用率
十四、FPGA中的RAM
十五、FPGA的JTAG接口
十六、FPGA的设计安全性
十七、 FPGA的设计流程
2十02八1/3、/26 FPGA的选用 FPGA的基本原理详细+入门 ppt课
1
件
一、什么是FPGA?
(一)、 什么是PLD?
l PLD 即Programmable Logic Device,称为可编程逻辑器件。按照制造 工 艺 、 编 程 方 式 、 结 构 、 规 模 的 不 同 可 分 为 PAL 、 GAL 、 EPLD 、 CPLD等不同种类。
l 这种逆熔丝开关的面积很小,大约9um2,电阻较小(电阻与 编程电压有关),电容很小,10fF(1.2um工艺)。
2、 采用浮栅编程技术的编程单元
浮栅编程技术采用悬浮栅存储电荷的方法来保存数据,在断电时存 储数据不丢失。包括三种:
l EPROM:紫外线擦除、电编程。
l EEPROM:一次可擦一个字
-1 比std快15%
–2 比std快25%
-3 比std快35%
2021/3/26
FPGA的基本原理详细+入门 ppt课
18
件
八、 FPGA内部逻辑模块数及触发器数
• 内部模块数
A54SX32A :2880,CC:1800,RC:1080,D:1980
• 每个逻辑模块所含触发器的个数
ACTEL:1个 XILINX:2个
2021/3/26
FPGA的基本原理详细+入门 ppt课
11
件
• ACT1模块是如何实现三输入与门的?
GND Y
Y A B C
fpga原理图

BLBL+ D7 D6 D5 D4 D3 D2 D1 D0 E RW RS VO VDD GND LCD1260
LD1 S1 a
f
10 5
S2 A a B g b f g b C e c e c D d dp d dp E F S1 G S2 DP
3 9 8 6 7 4 1 2 4 3 2 1 4 3 2 1 RN7 470 8 7 6 5 8 7 6 5 D
DATA nCONFIGS
3.3V 4 3 2 1 3.3V RN8 10k 8 7 6 5 3 7 8 4 J1 DCLK
CONF_DONE nCONFIGS
U5 VCC DATA VCC DCLK VCC nCS GND ASDI EPCS1 2 6 1 5 DATA DCLK nCS ASDI
VDDQ VDDQ VDDQ VDDQ VDD VDDQ VDDQ VDDQ VDDQ VDD VDD VDD
JN1. .JN6如果使用 EP1C12就连通. 如 果FPGA为EP1C6 就断开.
U4 8 7 6 5
3.3V SCL SDA
C17 0.1uF
C6 0.1uF
P_A[11:0]
SD25 41 SD26 42 SD27 43 SD28 44 SD29 45 SD30 46 SD31 47 SD32 48 S1 49 S2 50 S3 53 S4 54 P-D0 55 P-D1 56 P-D2 57 P-D3 58 P-D4 59 P-D5 60 P-D6 61 P-D7 62 P-D8 63 P-D9 64 P-D10 65 P-D11 66 P-D12 67 P-D13 68 P-D14 73 P-D15 74 P-D16 75 P-D17 76 P-D18 77 P-D19 78 P-D20 79 P-D21 82 P-D22 83 P-D23 84 P-D24 85 P-D25 86 P-D26 87 P-D27 88 P-D28 93 P-D29 94 P-D30 95 P-D31 98 SDRAM_WE 99
精品课件-Xilinx FPGACPLD设计初级教程-实验五

实验五 数码管循环计数器 图T5.3 “Project Summary”对话框
实验五 数码管循环计数器 (2) 用文本编辑形式完成对电路功能的描述,并完成综 合。 具体步骤如下: ① 在新建工程向导完成以后,点击“New”按钮,如图 T5.4所示。
图T5.4 点击“New”按钮
实验五 数码管循环计数器 ② 在出现的“New”对话框中选择“Text File”,点击 “OK”按钮,如图T5.5所示。
图T5.8 选择源代码
实验五 数码管循环计数器 ⑦ 在随后出现的“Adding Source Files…”对话框中 点击“OK”按钮,如图T5.9所示。
图T5.9 添加源文件
实验五 数码管循环计数器 ⑧ 在工程项目的“Sources”窗口中,单击“lab5.v”, 在工程的资源操作窗口(Processes)中展开“Implement Design”,双击“Synthesize-XST”,进行综合,综合完成 后如图T5.10所示。
实验五 数码管循环计数器
实验五 数码管循环计数器
实验五 数码管循环计数器
1. 实验目的 ◆ 初步掌握利用人眼惰性现象让几个数码管同时显示的 方法。 ◆ 掌握ISE 9.1i综合工具的使用。 ◆ 掌握ModelSimSE 6.2b仿真工具的使用。 ◆ 掌握引脚分配方法。 ◆ 掌握JTAG下载工具的使用。
实验五 数码管循环计数器
⑤ 点击“Next”按钮,弹出“Create New Source”对 话框。
⑥ 点击“Next”按钮,弹出“Add Existing Sources” 对话框。
⑦ 点击“Next”按钮,在弹出的“Project Summary” 对话框中,点击“Finish”按钮,完成工程项目的建立,如 图T5.3所示。
fpga实验讲义

1-5. 8位数码扫描显示电路设计《示例程序和实验指导课件位置》:\EDA_VHDL_1C3\chapter5\Ep1c3_52_SCAN\ 工程:SCAN_LED(1) 实验目的:学习硬件扫描显示电路的设计。
(2) 实验原理:图5-20所示的是8位数码扫描显示电路,其中每个数码管的8个段:h、g、f、e、d、c、b、a(h是小数点)都分别连在一起,8个数码管分别由8个选通信号k1、k2、…k8来选择。
被选通的数码管显示数据,其余关闭。
如在某一时刻,k3为高电平,其余选通信号为低电平,这时仅k3对应的数码管显示来自段信号端的数据,而其它7个数码管呈现关闭状态。
根据这种电路状况,如果希望在8个数码管显示希望的数据,就必须使得8个选通信号k1、k2、…k8分别被单独选通,并在此同时,在段信号输入口加上希望在该对应数码管上显示的数据,于是随着选通信号的扫变,就能实现扫描显示的目的。
例5-19是扫描显示的示例程序,其中clk是扫描时钟;SG为7段控制信号,由高位至低位分别接g、f、e、d、c、b、a 7个段;BT是位选控制信号,接图5-20中的8个选通信号:k1、k2、…k8 。
程序中CNT8是一个3位计数器,作扫描计数信号,由进程P2生成;进程P3是7段译码查表输出程序,与例5-18相同;进程P1是对8个数码管选通的扫描程序,例如当CNT8等于"001" 时,K2对应的数码管被选通,同时,A被赋值3,再由进程P3译码输出"1001111",显示在数码管上即为“3”;当CNT8扫变时,将能在8个数码管上显示数据:13579BDF 。
图5-20 8位数码扫描显示电路【例5-19】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SCAN_LED ISPORT ( CLK : IN STD_LOGIC;SG : OUT STD_LOGIC_VECTOR(6 DOWNTO 0); --段控制信号输出BT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );--位控制信号输出END;ARCHITECTURE one OF SCAN_LED ISSIGNAL CNT8 : STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL A : INTEGER RANGE 0 TO 15;BEGINP1:PROCESS( CNT8 )BEGINCASE CNT8 ISWHEN "000" => BT <= "00000001" ; A <= 1 ;WHEN "001" => BT <= "00000010" ; A <= 3 ;WHEN "010" => BT <= "00000100" ; A <= 5 ;WHEN "011" => BT <= "00001000" ; A <= 7 ;WHEN "100" => BT <= "00010000" ; A <= 9 ;WHEN "101" => BT <= "00100000" ; A <= 11 ;WHEN "110" => BT <= "01000000" ; A <= 13 ;WHEN "111" => BT <= "10000000" ; A <= 15 ;WHEN OTHERS => NULL ;END CASE ;END PROCESS P1;P2:PROCESS(CLK)BEGINIF CLK'EVENT AND CLK = '1' THEN CNT8 <= CNT8 + 1;END IF;END PROCESS P2 ;P3:PROCESS( A ) –-译码电路BEGINCASE A ISWHEN 0 => SG <= "0111111"; WHEN 1 => SG <= "0000110";WHEN 2 => SG <= "1011011"; WHEN 3 => SG <= "1001111";WHEN 4 => SG <= "1100110"; WHEN 5 => SG <= "1101101";WHEN 6 => SG <= "1111101"; WHEN 7 => SG <= "0000111";WHEN 8 => SG <= "1111111"; WHEN 9 => SG <= "1101111";WHEN 10 => SG <= "1110111"; WHEN 11 => SG <= "1111100";WHEN 12 => SG <= "0111001"; WHEN 13 => SG <= "1011110";WHEN 14 => SG <= "1111001"; WHEN 15 => SG <= "1110001";WHEN OTHERS => NULL ;END CASE ;END PROCESS P3;END;(3) 实验内容1:说明例5-19中各语句的含义,以及该例的整体功能。
FPGA入门实验

8、结果 在本例的设计中,我们利用一个常开按钮(实验板上的KEY1)作为输入(常开 时输入1,闭合时输入0),经过一个反向器后输出到核心板的第一个LED;因此 按下(闭合)实验板上的KEY1,该LED 灭。该设计非常简单,目的就是为了更 容易理解FPGA的设计流程和QuartusII 软件的基本用法。
2.当同时使用多个7段数码管输出多个字符时,需要依次将各个显示字符的数据 分别送到每个数码上并且使能。因此,需要扫描电路依次选择每个7段数码管,扫 描电路实际上就是一个计数器,以计数的方式达到选择切换的功能。为了将扫描 电路的计数器输出到7段数码管,还需将计数输出再经过一个译码电路,因为使用 共阳7段数码管,所以数码管只有在高电平时才有动作。所以,需要一个BCD多路 选择器选择字符到相应的数码管上显示。最后再设计一个3-7数码管译码电路就完 成了。 3.元件例化语句 元件例化就是将预先定义好的设计实体定义为一个元件,然后利用特定的 语句将此元件与当前的设计实体中的指定端口相连接,从而为当前设计实体引 入一个新的低一级的设计层次。当前实体相当于一个较大的电路系统,所定义 的例化元件相当于一个要插在这个电路系统板上的芯片,而当前设计实体中指 定的端口则相当于这块电路板上准备接受芯片的一个插座。 4.管脚映射: 根据实验箱,将连接对应的管脚。
四、思考题
在本实验基础上,进行修改,用三个按键控制两个LED,一个按键控制 LED 全亮、一个按键控制LED 全灭,一个按键控制两个LED 交替点亮。
五Байду номын сангаас实验报告
根据以上的实验内容写出实验报告,包括设计原程序,仿真波形图及思考 题。
实验二 7 段数码管实验
一、实验目的 • 1.进一步了解FPGA的设计流程和加深对Quatus II的使用。 • 2.熟悉和了解动态扫描数码管的工作原理和程序设计方法。 • 3.加强和熟悉VHDL 语言的设计方法和特点,学会掌握常用的计数器, 译码器的设计,功能宏模块使用方法。 二、实验原理 • 1.开发板使用的是一个4位联体的共阳极7段数码管,动态扫描显示 接口是数码管应用最为广泛的一种显示方式之一。其接口电路是把所 有显示器的8个笔划段a-h同名端连在一起,而每个显示器的公共极 COM是各自独立地受I/O线控制。CPU向字段输出口送出字形码时, 所有显示器接收到相同的字形码,但究竟是哪个显示器亮,则取决于 COM端,使各个LED轮流点亮。在轮流点亮的过程中,只要扫描速度 足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。
FPGA 8位全加器的原理图设计

3-8. 在QuartusII中用原理图输入法设计8位全加器1、实验目的:熟悉利用QuartusⅡ的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过一个8位全加器的设计把握利用EDA软件进行原理图输入方式的电子线路设计的详细流程。
2、实验原理:先由一个半加器构成一个全加器,8位全加器可以由8个1位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相临的高位加法器的最低进位输入信号cin 相接。
3、实验内容及过程:在D盘下建立一个新的文件夹为ADDER8。
本设计的思路是先设计1个1位半加器,因此建立新建文件夹D:/ ADDER8/h_adder;要利用1位的半加器构造1位的全加器,因此建立新建文件夹D:/ADDER8/f_adder;要利用1位的全加器构造8位的全加器,因此建立新建文件夹D:/ADDER8/adder8;(1)、用原理图输入法构造1位半加器打开QuartusII软件,选择菜单File-New,在弹出的New对话框中选择原理图文件编辑输入项Block Diagram/Schematic File(如图4-1所示),按ok按钮后将打开原理图编辑窗口。
(2)建立一个初始原理图。
在编辑窗口中的任何一个位置上右击鼠标,选择输入原件项Insert-Symbol,或者直接双击原理图编辑窗口,于是将弹出如图4-2所示原件对话框。
在坐下的Name栏键入输入引脚符号input。
然后单击ok按钮。
即可将元件调入原理图编辑窗口。
图4-1 图4-2(3)原理图文件存盘。
选择菜单File-Save As,将此原理图文件存于刚才建立的目录D:/ ADDER8/h_adder 中,取文件名为:h_adder.bdf。
然后将h_adder.bdf设定为工程,创建工程。
(4)绘制半加器原理图。
在工程管理窗口,双击工程名,再次进入原理图编辑窗。
双击原理图任何位置,再次弹出4-2的对话框。
FPGA轻松学习用QuartusII通过原理图完成与门电路设计

FPGA轻松学习用QuartusII通过原理图完成与门电路设计打开QuartusII软件,程序主界面如下:1,新建一个工程点击File——>New Project Wizard,打开创建新工程向导,这里你将完成工程的基本设定选项。
1,Project name and directory——工程的名称与目录2,Name of the top-level design entity——顶层设计实体的名称3,Project files and libraries——项目文件与库4,Target device family and device——目标设备的族类5,EDA tool settings——EDA工具设定这里一般设定好工程名称和目录,顶层设计实体名称以及目标设备族类就可以了,其他的暂时直接使用默认项就可以了。
2,新建一个设计文件通过点击File——>New打开新建文件选择框,由于我们这里使用原理图描述实现的,则文件类型选择Design Files——>Block Diagram/Schematic File,就新建了一个原理图文件,将其保存起来,注意命名要跟前面设置的顶层设计实体名称相同。
3,编写设计文件接下来开始在文件中绘制原理图,这里首先完成与门的添加,点击左侧工具栏中的Symbol Tool按钮,打开Symbol选择框,选择primitives——>logic——>and2,点击OK后即可在原理图中添加一个2输入的与门了。
在同样通过Symbol Tool中的加入和primitives——>pin——>output加入输入和输出引脚,然后在原理图中把他们用Orthogonal Node Tool即导线连接起来,双击输入输出引脚,为他们设定好名字,pinA,pinB,pinC,就完成了原理图中的设计。
4,编译(分析综合)点击Processing——>Start——>Start Analysis & Synthesis,进行分析综合,就好像是对程序进行编译,等待片刻,如果没有错误,编译报告会输出出来。
FPGA实验教程_原理图设计部分

实验注意事项1.做实验前,先连接好下载线,然后才能接上电源。
2.做完实验后,先拨掉实验箱上的电源,然后才能拨下载线。
实验一:简单逻辑门实验目的:掌握Quartus使用及基于原理框图进行FPGA开发的基本流程实验要求:掌握Quartus使用及基于原理框图进行FPGA开发的基本流程,注意设备及人身安全,严禁带电插拔JTAG下载线,防止损坏设备所需器材:FPGA教学实验系统,带并口的普通计算机实验介绍:本实验是在FPGA教学实验系统上实现简单的逻辑门,例如2输入的与门、与非门、或门、异或门等,对应部分的电路原理图如图1所示。
当K0(K1)按键断开时,FPGA引脚175(173)的输入为低电平,对应发光二极管D2(D3)熄灭,当K0(K1)按键按下时,FPGA引脚175(173)的输入为高电平,对应发光二极管D2(D3)发光。
FPGA引脚175、173在本实验中可用作输入引脚。
FPGA引脚64、65、66、73分别接有发光二极管(LED)DR0~DR3,在实验中可用作输出引脚,当引脚输出高电平时,对应的LED被驱动发光。
这些输出引脚可用于实现2个输入的不同逻辑功能。
图1 部分按键与LED的原理图实验步骤:1. 为工程建立工作目录为了方便工程涉及到的文件的管理,以后的每一个工程,都需要为其建立专门的工作目录,目录路径中不要包含有非英文或数字的字符(例如不要包含空格或中文字符等)。
请利用系统自带的“我的电脑”或“资源管理器”建立目录。
在此假设在E:\work目录下建立名为mylogic_sch的工程工作目录,其目录路径为E:\work\mylogic_sch,本实验所涉及的文件都需要放置在该目录当中。
2. 运行Quartus II程序方法1(通过开始菜单):开始->程序(P)->Altera->Quartus II 7.2->Quartus II 7.2 (32-Bit)方法2(桌面快捷方式):双击桌面的快捷方式图标打开Quartus II后,其界面如图2所示。
《FPGA系统设计》实验报告》简单逻辑电路设计与仿真

《FPGA系统设计》实验报告》简单逻辑电路设计与仿真
一、设计任务
1、掌握组合逻辑电路的设计方法。
2、掌握结构体的三种描述方式,加深FPGA设计的过程。
二、设计过程
1、在结构体中使用行为描述方式,设计一位二进制数的半加器,
两个数分别是a和b,和为s,进位为c。
行为描述
图2.1 引脚分配图
2、在结构体中使用数据流描述方式,设计一位二进制数的半加器,两个数分别是a和b,和为s,进位为c。
数据流描述方式
图2.2 引脚分配图
3、在结构体中使用结构化描述方式,设计一位二进制数的半加器,两个数分别是a和b,和为s,进位为c。
结构化描述方式
图2.3 引脚分配图
三、总结
本次实验分别用行为描述、数据流描述方式、结构化描述方式来实现,关键是在于程序代码上有所不同,接线方式并不改变。
FPGA原理图方式设计流程图

2 Quartus II软件的使用、开发板的使用本章将通过3个完整的例子,一步一步的手把手的方式完成设计。
完成这3个设计,并得到正确的结果,将会快速、有效的掌握在Altera QuartusII软件环境下进行FPGA设计与开发的方法、流程,并熟悉开发板的使用。
2.1 原理图方式设计3-8译码器一、设计目的1、通过设计一个3-8译码器,掌握祝组合逻辑电路设计的方法。
2、初步了解QuartusII采用原理图方式进行设计的流程。
3、初步掌握FPGA开发的流程以及基本的设计方法、基本的仿真分析方法。
二、设计原理三、设计容四、设计步骤1、建立工程文件1)双击桌面上的Quartus II的图标运行此软件。
开始界面2)选择File下拉菜单中的New Project Wizard,新建一个工程。
如图所示。
新建工程向导3)点击图中的next进入工作目录。
新建工程对话框4)第一个输入框为工程目录输入框,用来指定工程存放路径,建议可根据自己需要更改路径,若直接使用默认路径,可能造成默认目录下存放多个工程文件影响自己的设计,本步骤结束后系统会有提示(当然你可不必理会,不会出现错误的)。
第二个输入框为工程名称输入框。
第三个输入框为顶层实体名称输入框,一般情况下保证工程名称与顶层实体名称相同。
设定完成后点击next。
指定工程路径、名称5)设计中需要包含的其它设计文件,在此对话框中不做任何修改,直接点击next。
工程所需其它文件对话框6)在弹出的对话框中进行器件的选择。
在Device Family框中选用Cyclone II,然后在Available device框中选择EP2C35F484C8,点击next进入下一步。
器件选择界面7)下面的对话框提示可以勾选其它的第三方EDA设计、仿真的工具,暂时不作任何选择,在对话框中按默认选项,点击next。
第三方EDA工具选择8)出现新建工程以前所有的设定信息后,点击finish完成新建工程的建立。
XilinxFPGA设计与实践教程教学课件ppt作者赵吉成第1-5章第5章

第五章 时序逻辑设计5.1 时序电路基础5.2 时序电路基本单元的HDL描述5.3 简单例程5.4 时序电路的TestBench5.5 工程实践5.1 时序电路基础5.1.1 时序电路基本存储单元 在时序电路中,最基本的存储器元件就是D触发器,其符号和真值表如图5-1(a)所示,其作用是在时钟clk的上升沿采样信号d的值,然后存储到触发器(FF)当中。
D触发器可以包含一个异步复位信号来对触发器清零,基本符号表示和真值表如5-1(b)所示。
这里要注意,异步复位操作与时钟是无关的。
图5-1(c)为包含同步复位的DFF的基本符号表示和真值表。
图5-1 DFF功能图以及真值表 (1) tCQ是指自时钟上升沿来临,信号传输到q寄存器所需要的时间。
如图5-2所示。
(2) 建立时间tSU是指时钟上升沿来临之前数据已经稳定的时间,是在时钟翻转(对于正沿触发寄存器为0→1的翻转)之前数据输入(d端)必须有效的时间。
(3) 保持时间tHOLD是指在时钟上升沿来临之后数据输入必须保持有效的时间。
tSU和tHOLD的具体含义如图5-2描述更为直观和形象。
图5-2 D触发器的三种时序参数的定义5.1.2 同步时序电路 1.同步时序电路基本模型 同步时序电路由三部分组成:状态寄存器、下一状态逻辑模块、输出逻辑模块。
其基本电路框图如图5-3所示。
图5-3 同步系统原理框图 (2) 下一状态逻辑是指由外部输入和内部状态所决定的状态寄存器新的组合逻辑值,在下一个时钟沿有效。
(3) 输出逻辑是指在当前状态下的输出组合逻辑。
2.系统最高工作频率 在时序电路设计中,往往最关注的是时序电路的最高工作频率,也就是确保系统时序不违犯建立时间和保持时间约束的同时,能够保证系统正常工作的最高时钟频率。
通常在同步系统中,采用静态时序分析方法对单个D触发器进行时序电路分析。
时序电路最高工作频率用f MAX 来表示,它标志着电路执行的最高频率。
FPGA应用板原理图的绘制过程

FPGA应用板原理图的绘制过程1. 概述原理图是FPGA应用板设计的核心部分之一,它展示了电路元件之间的连接和关系。
本文档将介绍FPGA应用板原理图的绘制过程,包括准备工作、元件选择、连线设计等内容。
2. 准备工作在开始绘制FPGA应用板原理图之前,我们需要进行一些准备工作。
2.1 确定设计目标首先,我们需要明确FPGA应用板的设计目标。
这包括板载元件的种类、数量、功耗要求等。
明确设计目标可以帮助我们合理选择元件和进行连线设计。
2.2 选定EDA工具绘制FPGA应用板原理图需要使用电子设计自动化(EDA)工具。
常用的EDA工具有Altium Designer、Cadence Allegro等。
根据自己的经验和需求选择合适的工具进行原理图绘制。
2.3 确定板子尺寸和层数FPGA应用板的尺寸和层数也需要提前确定。
这对于元件的布局和连线设计有很大影响。
根据设计目标和需求确定FPGA应用板的尺寸和层数。
3. 元件选择在绘制FPGA应用板原理图时,我们需要选择合适的元件进行设计。
以下是元件选择的一些建议:•FPGA芯片:选择合适的FPGA芯片,根据设计目标选择性能和功耗合适的芯片。
•时钟元件:根据电路的时钟需求选择合适的时钟元件。
•通信接口元件:根据应用板需要支持的通信接口选择合适的通信接口元件,如UART、SPI、I2C等。
•存储器元件:根据应用板的存储器需求选择合适的存储器元件,如SDRAM、FLASH等。
4. 连线设计连线设计是FPGA应用板原理图绘制的重要环节。
以下是连线设计的一般步骤:4.1 确定信号流向首先,需要明确信号的流向。
根据FPGA的电路原理和信号需求,确定信号是从哪个元件输出,到哪个元件输入。
4.2 连接引脚根据信号的流向,连接各个元件的引脚。
需要注意的是,引脚的连接应该符合元件的规格要求和电气特性。
4.3 划分电源和地线为了保证电路的可靠性和稳定性,需要划分电源和地线。
在绘制原理图时,可以使用特殊的符号来表示电源和地线。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验注意事项1.做实验前,先连接好下载线,然后才能接上电源。
2.做完实验后,先拨掉实验箱上的电源,然后才能拨下载线。
实验一:简单逻辑门实验目的:掌握Quartus使用及基于原理框图进行FPGA开发的基本流程实验要求:掌握Quartus使用及基于原理框图进行FPGA开发的基本流程,注意设备及人身安全,严禁带电插拔JTAG下载线,防止损坏设备所需器材:FPGA教学实验系统,带并口的普通计算机实验介绍:本实验是在FPGA教学实验系统上实现简单的逻辑门,例如2输入的与门、与非门、或门、异或门等,对应部分的电路原理图如图1所示。
当K0(K1)按键断开时,FPGA引脚175(173)的输入为低电平,对应发光二极管D2(D3)熄灭,当K0(K1)按键按下时,FPGA引脚175(173)的输入为高电平,对应发光二极管D2(D3)发光。
FPGA引脚175、173在本实验中可用作输入引脚。
FPGA引脚64、65、66、73分别接有发光二极管(LED)DR0~DR3,在实验中可用作输出引脚,当引脚输出高电平时,对应的LED被驱动发光。
这些输出引脚可用于实现2个输入的不同逻辑功能。
图1 部分按键与LED的原理图实验步骤:1. 为工程建立工作目录为了方便工程涉及到的文件的管理,以后的每一个工程,都需要为其建立专门的工作目录,目录路径中不要包含有非英文或数字的字符(例如不要包含空格或中文字符等)。
请利用系统自带的“我的电脑”或“资源管理器”建立目录。
在此假设在E:\work目录下建立名为mylogic_sch的工程工作目录,其目录路径为E:\work\mylogic_sch,本实验所涉及的文件都需要放置在该目录当中。
2. 运行Quartus II程序方法1(通过开始菜单):开始->程序(P)->Altera->Quartus II 7.2->Quartus II 7.2 (32-Bit)方法2(桌面快捷方式):双击桌面的快捷方式图标打开Quartus II后,其界面如图2所示。
图2 Quartus II集成环境3. 建立工程在Quartus II上进行FPGA的开发是针对工程进行的,所有的设计任务都应当建立对应的工程。
运行菜单命令File->New Project Wizard,打开新建工程向导,分别如图3~图8所示。
完成后,即可在Quartus II中建立起对应的工程。
图3 新建工程向导介绍图4 工作目录、工程名、顶层实体名图 5 添加文件 图6 选定器件图7 第三方工具设置 图 8 信息汇总 在图4所示的对话框中,我们将工作目录(working directory )设定为E:\work\mylogic_sch ,将工程名(name of this project )设定为mylogic_sch ,将顶层实体名(top-level design entity )设定为mylogic_sch 。
顶层实体名最好和工程名一致,如不一致,应根据实际情况修改。
在图7中,我们需要根据实际情况选中EP2C20Q240C8芯片,该芯片为Cyclone II 系列的芯片之一,引脚为240个。
因此,可以先在Family 中选定Cyclone II 系列,然后在Pin count 中选定引脚为240,通过这些过滤条件,可以快速找到EP2C20Q240C8。
在其他图中的设置,不需要更改,直接点击Next 即可。
4. 编辑原理图设计文件运行菜单命令File->New ,或点击工具栏上的按钮,打开新建文件对话框,如图9所示。
在其中选择Block Diagram/Schematic File ,并点击OK 按钮。
Quartus 将打开一个新建原理图文件的编辑窗口,如图10所示。
图9 新建文件对话框图10 新建原理图文件编辑窗口在编辑窗口空白的地方双击,即可打开符号选择窗口,Quartus为我们准备了众多不同类别的元件符号供我们调用,这当中包含基本的逻辑门、74系列数字芯片功能符号和LPM可参数化定制符号等,如图11所示,我们在此分4次调进二输入的与门and2、与非门nand2、或门or2、异或门xor,并调进2个输入引脚input和4个输出引脚output,如图12所示。
图11 符号选择窗口图12 添加进设计窗口的元件双击输入输出引脚上的名字(例如左上角的引脚中的pin_name),可以更改引脚名,如图13所示。
我们在此依次将各个引脚名更改为k0、k1、dr0、dr1、dr2、dr3,如图14所示。
图13 更改引脚名图14 完成更改引脚名把鼠标光标放在引脚或元件符号的连接端上时,光标会变成十字形状示,此时按下鼠标左键不放,可进行连线,如图15所,当移动到另一端点时,松开左键,即完成连线,如图16所示。
按图17完成所有的连线,并以mylogic_sch为文件名(会自动添加.bdf的扩展名)保存文件,如图18所示,在其中默认选择上了Add file to current project选项,将会添加进当前工程当中。
图15 开始连线图16 完成连线图17 完成所有的连线图18 保存文件5. 分析设计分析设计这个步骤不是必需的,但是通过分析设计,可以对设计文件进行错误检查,并给出相应的提示、警告、错误等信息,检查过后,还可以提取出整个工程的结构层次、端口列表等信息,方便进行引脚锁定。
如果直接对工程进行完整的编译,将会耗费比较多的时间,并且修改锁定引脚后,还是得完整编译一次。
运行菜单命令Processing->Start->Start Analysis & Elaboration,对设计进行分析,分析完成后,弹出一完成提示对话框,如图19所示。
点击确定后,可查看自动打开的编译报告,如图20所示。
图19 分析完成提示图20 分析完成后的编译报告6. 功能仿真运行菜单命令File->New,或点击工具栏上的按钮,打开新建文件对话框,选择Other Files标签页下的Vector Waveform File文件类型,如图21所示,然后点击OK按钮。
Quartus将打开一个新建波形文件的编辑窗口,如图22所示。
图21 新建文件对话框图22 波形编辑窗口在Name对应的这一栏下面空白的地方双击鼠标左键,可以打开向波形编辑窗口插入节点或总线的对话框,如图23所示。
点击Node Finder按钮,打开并使用节点查找器来查找添加节点,在Filter这一栏中,选择Pins:all,然后再点击List按钮,即可列出所有的引脚,如图24所示。
图23 插入节点或总线图24 节点查找器在节点查找器中,查找出来的符合匹配条件的节点列在左边的Nodes Found 栏中,选择待添加的节点,然后点击中间的>按钮,即可把其添加到右边的Selected Nodes栏中作为选中节点,如果要把左边所有节点都添加到右边作为选中节点,则只需要点击中间的>>按钮即可。
相反的,<按钮和<<按钮则是把右边的Selected Nodes栏中的选中节点去掉。
我们在此把所有的引脚节点都添加到右边作为选中节点,如图25所示。
然后点击OK按钮,返回到节点查找器中,如图26所示。
图25 添加所有引脚节点图26 选择了节点的插入节点对话框在选择了节点的插入节点对话框中,点击OK按钮,即可返回到波形编辑窗口,并将选中的节点添加到编辑窗口中。
如图27所示。
图27 添加了节点的波形编辑窗口我们在仿真时,只需要设置输入的波形,输出的波形由仿真得到。
设置输入波形时,在输入信号上用鼠标左键框选一个区段,如图28所示,然后点击右边的相应值的按钮即可进行设置,在此,我们把这段选中的区域设为高电平1,则相应点击左边的按钮。
两个输入信号,共有4种电平情况,因此我们如图29所示设置仿真输入波形,在设置时,我们可以利用左边的功能按钮,对波形编辑窗口进行放大或缩小。
图28 选择待设置的信号区段图29 仿真输入波形编辑好输入波形文件后,即可进行保存,在此以mylogic_sch为文件名(会自动添加.vwf的扩展名)保存文件,如图30所示,在其中默认选择上了Add file to current project选项,将会添加进当前工程当中。
图30 保存波形文件运行菜单命令Processing->Simulator Tool,打开仿真器窗口,在Simulation mode中选择Functional类型,如图31所示。
然后点击右边的Generate Functional Simulation Netlist按钮,生成功能仿真所需的网表文件,如无错误,完成后将弹出一如图32所示的提示成功生成功能仿真网表的对话框,点击上面的确定按钮将其关闭。
然后点击下面的Start按钮,即可开始仿真,仿真结束后,将弹出如图33所示的提示成功仿真的对话框,点击上面的确定按钮将其关闭。
在仿真器窗口中点击下面的Report按钮,可以打开查看功能仿真的结果,如图34所示,仔细检查各输出信号的波形是否与期望的一致,如无错误,可将其关闭。
图31 仿真器窗口图32 成功生成功能仿真网表图33 成功仿真图34 功能仿真结果7. 修改工程设置工程设置包含有很多不同的方面,其默认值或自动分配值在不同的工程中并不一定能满足我们的期望,当和我们的期望值不一致时,就需要进行修改。
建立工程过后,一般需要对工程的某些设置进行修改,使其满足我们期望的要求。
修改过后,才进行完整的编译。
(1)锁定引脚锁定引脚是将设计当中的输入输出等端口(例如前面例子当中的k0、dr0)和FPGA实际引脚(175引脚、64引脚)锁定对应起来,最终编译实现过后,在FPGA锁定的引脚上实现对应端口的功能。
如果是在已经做好的FPGA电路板上进行FPGA程序设计,锁定引脚是必需进行的一项工程设置。
运行菜单命令Assignments->Pins,可打开Pin Planner窗口进行引脚锁定设置,如图35所示。
图35 Pin Planner窗口在每个端口对应的Location栏中双击,即可打开下拉列表进行引脚选择,选择完之后点击其他地方即可进行确定,如图36所示。
图36 选定引脚根据图1所示的实际情况给每个端口锁定引脚,全部设置好后如图37所示。
设置好后,可以关闭Pin Planner窗口。
图37 全部锁定引脚(2)修改器件与引脚选项运行菜单命令Assignments->Device,可打开工程设置窗口器件属性页,如图38所示。
图38 工程设置窗口器件属性页点击其中的Device and Pin Options按钮,可打开器件与引脚选项窗口,默认打开的是General标签页,如图39所示,在其中可以进行一些全局的器件与引脚选项设定。