文档库 最新最全的文档下载
当前位置:文档库 › FPGA系统实验

FPGA系统实验

FPGA系统实验
FPGA系统实验

《FPGA开发与应用》实验

实验报告以电子版的形式上交。

实验报告相关内容如下:

课程名称:FPGA开发与应用

课程性质:专业选修

2010-04-10 mfc编写

2011-02-19 mfc增加实验4的注意事项

2011-03-20 mfc减少实验1的8-3编码器内容

实验一

实验名称:选择器与编码器设计

实验目的:

(1)学习使用Quatus软件进行Verilog的仿真,包括工程建立、程序设计、仿真波形等。

(2)学习使用Quatus进行原理图和代码设计。

(3)掌握门级建模设计方式。

实验内容:

(1)在门级电路上,以原理图方式进行3-8信号选择器;

(2)在门级电路上,以Verilog文件进行3-8信号选择器;

(3)以宏模块的方式完成3-8信号选择器。

实验要求:通过波形文件,进行实验效果测试,并提交实验报告,在实验报告中贴出仿真波形。

实验参考:《Verilog HDL数字设计与综合》图5.5

实验二

实验名称:算术运算器设计

实验目的:

(1)掌握数据流和行为级建模方式;

(2)掌握算术运算器的设计方式。

实验内容:

(1)以数据流方式完成简单算术运算器的设计;

(2)以行为级方式完成简单算术运算器的设计;

参考代码:

以下为行为级建模:

module alutask(select,a,b,out);

input[2:0] select;

input[3:0] a,b;

output[4:0] out;

reg[4:0] out;

always@(select or a or b)

begin

case(select)

3'b000: out=a;

3'b001: out=a+b;

3'b010: out=a-b;

3'b011: out=a/b;

3'b100: out=a%b;

3'b101: out=a<<1;

3'b110: out=a>>1;

3'b111: out=a>b;

endcase

end

endmodule

实验结果:在实验报告中贴出仿真波形。

实验三

实验名称:存储器设计

实验目的:

(1)学会使用综合方式进行硬件建模;

(2)掌握存储器的设计方式。

实验内容:

存储器使用Verilog语言和宏模块两种方式实现存储器模块。模块要求:

(1)以时钟上升沿为控制的读/写控制;

(2)具有读/写控制线;

(3)具有enable端口;

(4)存储器为8bit*1024大小;

实验代码:参考《Verilog HDL数字设计与综合》3.2.7节

实验结果:在实验报告中贴出仿真波形。

实验四

实验名称:处理器设计

实验目的:

(1)学会使用综合方式进行硬件建模;

(2)掌握处理器的简单设计方式。

实验内容:

以Verilog语言完成。

以实验3指令为基本指令,设计指令集;

指令长度23bit包括:3bit命令+10bit(地址)a+10bit(地址)b;以实验4为基础存储器;

计算结果,保存到地址b

注意事项:

1.指令的读取是时序电路;存储器的读取是组合电路。

2.时序电路与组合电路的同步。

实验代码:

实验要求:在实验报告中贴出仿真波形。

研究生FPGA实验项目(LED显示及秒表计时器设计)

FPGA实验项目 实验一、LED译码显示实验 实验目的:1、掌握QuartusII6.0等EDA工具软件的基本使用; 2、熟悉VHDL硬件描述语言编程及其调试方法; 3、学习用FPGA控制LED电路实现显示器设计。 实验内容: 本实验目标是利用FPGA逻辑资源,编程设计实现一个LED显示控制器。实验器材为EDA实验箱,FPGA芯片型号为EPF10K20RC208-4。电路设计采用VHDL硬件描述语言编程实现,开发软件为QuartusII6.0。 7段数码显示译码器基本原理 在数字电路中,常常需要把运算结果用十进制数显示出来,这就要用显示译码器。 现以驱动七段发光二极管的二-十进制译码器为例说明显示译码器的设计原理,如图1.1。 图1.1 7段数码显示译码器的原理示意图 7段显示译码器实际上是一种代码变换器,它是将4位二进制码转换成7位代码,燃亮LED显示器a、b、c、d、e、f、g七段中的对应段,显示出十进制数的字型。 表2.1 7段显示译码器真值表(以共阴极数码管为例) 在EDA实验箱中验证这个项目,可用数据开关表示输入,用LED数码管表示输出。 实验步骤: 1、创建工程文件 先打开“我的电脑”,在E盘新建名为“fpga_lab1”文件夹。然后,利用QuartusII软件创建工程向导(New Project Wizard)创建一个新的工程。步骤如下: 1)打开QuartusII6.0软件界面,在“文件”菜单下选择“New Project Wizard”,点击“next”后弹出如下对话框

点选第一行右侧的“…”选择工程目录为“F:\ fpga_lab1”,在第二行输入项目名称:led_display,第三行默认把项目名设为顶层文件名,点击“next”,

数字钟设计报告——数字电路实验报告

数字钟设计实验报告 专业:通信工程 姓名:王婧 班级:111041B 学号:111041226

数字钟的设计 目录 一、前言 (3) 二、设计目的 (3) 三、设计任务 (3) 四、设计方案 (3) 五、数字钟电路设计原理 (4) (一)设计步骤 (4) (二)数字钟的构成 (4) (三)数字钟的工作原理 (5) 六、总结 (9) 1

一、前言 此次实验是第一次做EDA实验,在学习使用软硬件的过程中,自然遇到很多不懂的问题,在老师的指导和同学们的相互帮助下,我终于解决了实验过程遇到的很多难题,成功的完成了实验,实验结果和预期的结果也是一致的,在这次实验中,我学会了如何使用Quartus II软件,如何分层设计点路,如何对实验程序进行编译和仿真和对程序进行硬件测试。明白了一定要学会看开发板资料以清楚如何给程序的输入输出信号配置管脚。这次实验为我今后对 EDA的进一步学习奠定了更好的理论基础和应用基础。 通过本次实验对数电知识有了更深入的了解,将其运用到了实际中来,明白了学习电子技术基础的意义,也达到了其培养的目的。也明白了一个道理:成功就是在不断摸索中前进实现的,遇到问题我们不能灰心、烦躁,甚至放弃,而要静下心来仔细思考,分部检查,找出最终的原因进行改正,这样才会有进步,才会一步步向自己的目标靠近,才会取得自己所要追求的成功。 2

二、设计目的 1.掌握数字钟的设计方法。 2熟悉集成电路的使用方法。 3通过实训学会数字系统的设计方法; 4通过实训学习元器件的选择及集成电路手册查询方法; 5通过实训掌握电子电路调试及故障排除方法; 6熟悉数字实验箱的使用方法。 三、设计任务 设计一个可以显示星期、时、分、秒的数字钟。 要求: 1、24小时为一个计数周期; 2、具有整点报时功能; 3、定时闹铃(未完成) 四、设计方案 一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器和定时器组成。干电路系统由秒信号发生 3

FPGA入门实验

艾米电子工作室—让开发变得更简单https://www.wendangku.net/doc/2a14972099.html, FPGA 入门系列实验教程——点亮LED 1. 实验任务 点亮发光二极管。通过这个实验,熟悉并掌握CPLD/FPGA 开发软件Quartus II 的使用方法和开发流程以及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 硬件原理图 艾米电子工作室—让开发变得更简单https://www.wendangku.net/doc/2a14972099.html, FPGA 入门系列实验教程——LED 闪烁灯 1. 实验任务 让实验板上的8 个LED 周期性的闪烁。通过这个实验,熟悉并掌握采用计数 与判断的方式来实现分频的Verilog HDL 的编程方法以及Quartus II 软件的使 用方法和开发流程。 2. 实验环境 硬件实验环境为艾米电子工作室型号EP2C8Q208 增强版开发套件。 软件实验环境为Quartus II 8.1 开发软件。 3. 实验原理 艾米电子工作室开发套件板载50MHz 的时钟源,假如我们直接把它输入到发光二极管LED,由于人眼的延迟性,我们将无法看到LED 闪烁,认为 它一直亮着。如果我们期望看到闪烁灯,就需要将时钟源的频率降低后再输

数字通信系统设计实验报告

实验1:用 Verilog HDL 程序实现乘法器 1实验要求: (1) 编写乘法器的 Veirlog HDL 程序. (2) 编写配套的测试基准. (3) 通过 QuartusII 编译下载到目标 FPGA器件中进行验证 (4) 注意乘法逻辑电路的设计. 2 试验程序: Module multiplier(input rst,input clk,input [3:0]multiplicand, input [3:0]multiplier,input start_sig,output done_sig,output [7:0]result); reg [3:0]i; reg [7:0]r_result; reg r_done_sig; reg [7:0]intermediate; always @ ( posedge clk or negedge rst ) if( !rst ) begin i<=4'b0; r_result<=8'b0; end else if(start_sig) begin case(i) 0: begin intermediate<={4'b0,multiplicand}; r_result<=8'b0; i<=i+1; end 1,2,3,4: begin if(multiplier[i-1]) begin r_result<=r_result+intermediate; end intermediate<={intermediate[6:0],1'b0}; i<=i+1; end 5: begin r_done_sig<=1'b1;

i<=i+1; end 6: begin r_done_sig<=1'b0; i<=1'b0; end endcase end assign result=r_done_sig?r_result:8'bz; assign done_sig=r_done_sig; endmodule3 测试基准: `timescale 1 ps/ 1 ps module multiplier_simulation(); reg clk; reg rst; reg [3:0]multiplicand; reg [3:0]multiplier; reg start_sig; wire done_sig; wire [7:0]result; /***********************************/ initial begin rst = 0; #10; rst = 1; clk = 1; forever #10 clk = ~clk; end /***********************************/ multiplier U1 ( .clk(clk), .rst(rst), .multiplicand(multiplicand), .multiplier(multiplier), .result(result), .done_sig(done_sig), .start_sig(start_sig) ); reg [3:0]i; always @ ( posedge clk or negedge rst ) if( !rst )

北京邮电大学数字电路实验报告

北京邮电大学 数字电路与逻辑设计实验 实验报告 实验名称:QuartusII原理图输入 法设计与实现 学院:北京邮电大学 班级: 姓名: 学号:

一.实验名称和实验任务要求 实验名称:QuartusII原理图输入法设计与实现 实验目的:⑴熟悉用QuartusII原理图输入法进行电路设计和仿真。 ⑵掌握QuartusII图形模块单元的生成与调用; ⑶熟悉实验板的使用。 实验任务要求:⑴掌握QuartusII的基础上,利用QuartusII用逻辑 门设计实现一个半加器,生成新的半加器图像模 块。 ⑵用实验内容(1)中生成的半加器模块以及逻辑门 实现一个全加器,仿真验证其功能,并能下载到实 验板上进行测试,要求用拨码开关设定输入信号, 发光二级管显示输出信号。 ⑶用3线—8线译码器(74L138)和逻辑门实现要求 的函数:CBA F+ C + =,仿真验证其 + B C B A A A B C 功能,,并能下载到实验板上进行测试,要求用拨 码开关设定输入信号,发光二级管显示输出信号。二.设计思路和过程 半加器的设计实现过程:⑴半加器的应有两个输入值,两个输出值。 a表示加数,b表示被加数,s表示半加和, co表示向高位的进位。

⑵由数字电路与逻辑设计理论知识可知 b a s ⊕=;b a co ?= 选择两个逻辑门:异或门和与门。a,b 为异 或门和与门的输入,S 为异或门的输出,C 为与门的输出。 (3)利用QuartusII 仿真实现其逻辑功能, 并生成新的半加器图形模块单元。 (4)下载到电路板,并检验是否正确。 全加器的设计实现过程:⑴全加器可以由两个半加器和一个或门构 成。全加器有三个输入值a,b,ci ,两个输 出值s,co :a 为被加数,b 为加数,ci 为低 位向高位的进位。 ⑵全加器的逻辑表达式为: c b a s ⊕⊕= b a ci b a co ?+?⊕=)( ⑶利用全加器的逻辑表达式和半加器的逻 辑功能,实现全加器。 用3线—8线译码器(74L138)和逻辑门设计实现函数 CBA A B C A B C A B C F +++= 设计实现过程:⑴利用QuartusII 选择译码器(74L138)的图形模块

数字逻辑与数字系统实验报告

xxxx计算机科学与技术学院计算机数字逻辑设计 实验报告书 实验名 Proteus下基本元件熟悉与使用班级____xxx________________________ 姓名____xxx________________________ 指导教师xx 日期 2017年11月

目录 一、实验目的 (22) 二、实验所用器件和仪表 (22) 三、实验内容 (22) 四、电路原理图 (33) 五、实验过程及数据处理 (33) 六实验数据分析与小结 (33) 七实验心得体会 (44) 一、实验目的 1、掌握Proteus软件安装与使用,熟悉Proteus下选择元器件、绘制仿真电路并进行仿真、观察和数据记录 2、掌握TTL与非门的构成。 二、实验所用器件和仪表 1、NPN三极管 2、逻辑调试端子 3、电阻 三、实验内容 1、Proteus的基本使用 2、利用二/三极管搭建TTL与非门,测量并记录其工作

四、电路原理图 五、实验过程及数据处理 根据电路图连接电路 根据真值表中各项预定义数值利用电路求出输出值 六实验数据分析与小结 根据试验中得出来的数据可以发现,该实验中链接的电路实现的是一个或非门电路,通过几个简单的三极管就实现了一个或非门电路的构建

七实验心得体会 通过一个简单的或非门电路的链接,充分了解了Proteus下基本元件的使用,使电路更加清晰,形象的展现在我们面前

xxxx计算机科学与技术学院计算机数字逻辑设计 实验报告书 实验名基本门电路与分立元件使用 班级_______xxx_____________________ 姓名_______xxx_____________________ 指导教师xx 日期 17/11

FPGA设计实验指导书(2013)

《FPGA设计》实验指导书

安全操作注意事项 1、接插下载电缆前,请务必关闭实验箱开关,避免损坏下载电缆或实验箱器件。 2、操作过程中应防止静电。 3、保持实验箱和电路板的表面清洁。 4、小心轻放,避免不必要的硬件损伤或者人身受伤。 实验箱简介

实验一简单组合逻辑设计 一、实验目的和任务 1、熟习Quartus II软件的使用; 2、掌握用原理图输入法和硬件描述语言(Verilog HDL)两种方法来设计逻 辑电路; 3、通过电路的仿真及验证,进一步了解4选1数据选择器的功能; 二、实验内容 1、用原理图输入法来设计4选1数据选择器 参照按图1-1所示来编辑完成4选1数据选择器的原理图输入,其中a、b、c、d 为数据输入端,sel[1]、sel[0]为控制输入端,q为4选1数据输出端。存盘仿真后,观察仿真波形,以验证数据选择器的功能。 图1-1 4选1数据选择器原理图 2、用Verilog HDL硬件描述语言来设计4选1数据选择器 用QuartusII中的文本编辑器,编辑输入4选1数据选择器源程序:module m41( a, b, c, d, sel, q); input a,b,c,d; input [1:0]sel; output q; reg q; always @( sel) case(sel) 2’b00: q=a; 2’b01: q=b;

2’b11: q=d; endcase endmodule 程序中的a 、b 、c 、d 依然为数据输入端,sel[1]、sel[0]为控制输入端,q 为4选1数据输出端。同样存盘后进行仿真,并观察仿真波形,以验证数据选择器的功能。 三、实验仪器、设备及材料 电脑、EDA 软件、实验箱、下载电缆。 四、实验原理 4选1数据选择器的原理框图及真值表如图1-2及表1-1所示,sel[1:0]可能出现四种组合情况: 00 01 10 11,它分别对应选通四个不同的数据输入a 、b 、c 、d ,从q 端输出。结合以前所学数字电路的知识,可由真值表得出利用“与非门”实现的逻辑电路,进而可用QuartusII 原理图输入方法,设计出该4选1数据选择器;如应用EDA 技术所学的Verilog HDL 硬件描述语言来描述该电路功能,即可设计出该4选1数据选择器的源程序。 图1-2 4选1数据选择器的原理框图 q Sel[1]输出 选择输入 0a 01b 00 c 11 d 1 Sel[0]表1-1 真值表 五、重点、难点 d a b c

数字电路实验报告

数字电路实验报告 姓名:张珂 班级:10级8班 学号:2010302540224

实验一:组合逻辑电路分析一.实验用集成电路引脚图 1.74LS00集成电路 2.74LS20集成电路 二、实验内容 1、组合逻辑电路分析 逻辑原理图如下:

U1A 74LS00N U2B 74LS00N U3C 74LS00N X1 2.5 V J1 Key = Space J2 Key = Space J3 Key = Space J4 Key = Space VCC 5V GND 图1.1组合逻辑电路分析 电路图说明:ABCD 按逻辑开关“1”表示高电平,“0”表示低电平; 逻辑指示灯:灯亮表示“1”,灯不亮表示“0”。 真值表如下: A B C D Y 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 表1.1 组合逻辑电路分析真值表 实验分析: 由实验逻辑电路图可知:输出X1=AB CD =AB+CD ,同样,由真值表也能推出此方程,说明此逻辑电路具有与或功能。 2、密码锁问题: 密码锁的开锁条件是:拨对密码,钥匙插入锁眼将电源接通,当两个条件同时满足时,开锁信号为“1”,将锁打开;否则,报警信号为“1”,则接通警铃。

试分析下图中密码锁的密码ABCD 是什么? 密码锁逻辑原理图如下: U1A 74LS00N U2B 74LS00N U3C 74LS00N U4D 74LS00N U5D 74LS00N U6A 74LS00N U7A 74LS00N U8A 74LS20D GND VCC 5V J1 Key = Space J2 Key = Space J3 Key = Space J4 Key = Space VCC 5V X1 2.5 V X2 2.5 V 图 2 密码锁电路分析 实验真值表记录如下: 实验真值表 A B C D X1 X2 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 1 1 1 0 1 表1.2 密码锁电路分析真值表 实验分析: 由真值表(表1.2)可知:当ABCD 为1001时,灯X1亮,灯X2灭;其他情况下,灯X1灭,灯X2亮。由此可见,该密码锁的密码ABCD 为1001.因而,可以得到:X1=ABCD ,X2=1X 。

FPGA实验报告

FPGA课程设计报告 专业班级: 13电信1班 学号: 130101011104 姓名:汪远通 指导老师:祝宏 实验日期:2015.11.27—2015.12.18 文华学院信息学部

多功能数字钟电路设计 一、设计题目 多功能数字钟电路的分层次设计7 二、设计要求技术指标 设计一个具有时、分、秒计时的电子钟电路,按24小时制计时。 三、设计分析 在设计一个比较复杂的数字电路或系统时,通常采用自上而下和自下而上的设计方法。在自上而下设计中,先定义顶层模块,然后再定义顶层模块中用到的子模块。而在自下而上设计中,底层的各个子模块首先被确定下来,然后将这些子模块组合起来构成顶层模块。将电路分为不同层次和多个模块分别进行设计,然后将这些模块组合起来实现电路逻辑功能,这种方法通常被称为分层次的电路设计。 工作原理:振荡器产生的稳定的高频脉冲信号,作为数字钟的时间基准,再经分频器输出标准秒脉冲。秒计数器计满60后向分计数

器进位,分计数器计满60后向小时计数器进位,小时计数器按照24进制规律计数。计数器的输出送译码显示电路,即可显示出数码(时间)。计时出现误差时可以用校时电路进行校时和校分。仿电台报时和定时闹钟为扩展电路,只有在计时主题电路正常运行的情况下才能进行功能扩展。 虚线框内的部分用Verilog HDL进行描述,然后用FPGA/CPLD 实现,译码显示电路用中规模IC实现,振荡器由集成电路定时器555与RC电路组成1kHz的多谐振荡器。 四、设计步骤 ①多功能数字钟主体电路逻辑设计: 采用自下而上的设计方法,首先定义数字钟下层的各个模块,再调用这些模块组合成顶层的数字钟电路。 1.模24计数器的Verilog HDL设计 小时计数器的计数规律为00-01-…-09-10-11-…-22-23-00…,即在设计时要求小时计数器的个位和十位均按8421BCD码计数。 //文件名:counter24.v(BCD计数:0~23) module counter24(CntH,CntL,nCR,EN,CP); input CP,nCR,EN; //分别为计时脉冲CP、清0信号、nCR和使能信号EN output [3:0] CntH,CntL; //计时计数器的十位和个位输出信号 reg [3:0] CntH,CntL; //输出为8421BCD码 always @(posedge CP or negedgenCR) begin if(~nCR) {CntH,CntL}<=8'h00; //异步清零

数字系统设计软件实验报告

实验一QuartusⅡ9.1软件的使用 一、实验目的: 1、通过实现书上的例子,掌握QUARTUSII9.1软件的使用; 2、编程实现3-8译码电路以掌握VHDL组合逻辑的设计以及QUARTUSII9.1软件的使用。 二、实验流程: 1、仔细阅读书上的操作指南,学会在QuartusⅡ9.1中创建新的工程,创建过程如下所示: 1)、建立新设计项目: ①启动QuartusⅡ9.1软件,在软件的管理器窗口选File下拉菜单,即File→New Project Wizard,则出现新建工程向导窗口。如下所示: ②点击Next按钮,将弹出新建工程设置窗口,如下图所示。在新建工程设置窗口中设置好工程的存放路径、工程名称等。

③点击Next进入添加文件窗口,如下图。由于尚未创建文件,跳过该步骤。 ④点击Next按钮,进入选择目标芯片窗口。在这里我们选择Cyclone系列的EP1C6Q240C8,如下图:

⑤点击Next按钮,进入EDA工具设置窗口,通常选择默认的“None”,表示选择QuartusⅡ自带的仿真器和综合器。如下图: ⑥点击Next按钮,弹出New Project Wizard概要对话框,在这个窗口中列出了所有前面设置的结果。若有错误则点击Back回去修改,否则点击Finish结束,即完成新工程的设定工作。如下图:

2)、文本设计输入: ①在QuartusⅡ主界面菜单栏中选择File下拉菜单中的New,弹出新建设计文件窗口,选择VHDL File项,点击OK按钮即可打开VHDL文本编辑窗口,其默认文件名为“Vhdl.vhd”。 ②出现文本编辑窗口后,我们可以直接在空白界面中键入所设计的VHDL文本。这时我们将书本中的程序输入到文本编辑环境中去。程序如下: library IEEE; use IEEE.std_logic_1164.all; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity count10 is port(clk,load,en:in std_logic; data_in:in std_logic_vector(3 downto 0); seg:out std_logic_vector(6 downto 0)); end count10; architecture beha of count10 is signal qout:std_logic_vector(3 downto 0); signal q_temp:std_logic_vector(3 downto 0); begin process(clk,load) begin

FPGA实验及基本程序汇总(Verilog)

一、填空题: 1、 FPGA结构一般分为三部分:可编程逻辑块(CLB)、可编程I/O模块和可编程内部连线。 2、 CPLD的内部连线为连续式布线互连结构,任意一对输入、输出端之间的延时是固定;FPGA的内部连线为分段式布线互连结构,各功能单元间的延时不定(不可预测)。 3、大规模可编程器件主要有CPLD和FPGA两类,其中CPLD通过可编程乘积项逻辑实现其逻辑功能。基于SRAM的FPGA器件,每次上电后必须进行一次配置。FPGA内部阵列的配置一般采用在电路可重构技术,编程数据保存在静态存储器(SRAM) ,掉电易失。 4、目前世界上有十几家生产CPLD/FPGA的公司,最大的两家是:Altera,Xilinx。 5、硬件描述语言(HDL)是EDA技术的重要组成部分,是电子系统硬件行为描述、结构描述、数据流描述的语言,它的种类很多,如VHDL、Verilog HDL、AHDL 6、 WHEN_ELSE条件信号赋值语句和 IF_ELSE顺序语句的异同: * WHEN_ELSE条件信号赋值语句中无标点,只有最后有分号;必须成对出现;是并行语句,必须放在结构体中。 * IF_ELSE顺序语句中有分号;是顺序语句,必须放在进程中 7、可编程逻辑器件设计输入有原理图输入、硬件描述语言输入和波形输入三种方式。原理图输入方式是一种最直接的设计描述方式,波形设计输入适用于时序逻辑和有重复性的逻辑函数。 硬件描述语言的突出优点是: * 语言与工艺的无关性;语言的公开可利用性,便于实现大规模系统的设计; * 具有很强逻辑描述和仿真功能,而且输入效率高,在不同设计输入库之间的转换非常方便,用不着对底层的电路和PLD结构的熟悉。 8、用VHDL/Veilog HDL语言开发可编程逻辑电路的完整流程:文本编辑→功能仿真→逻辑综合→布局布线→时序仿真。 *所谓综合,就是根据设计功能和实现该设计的约束条件(如面积、速度、功耗和成本等),将设计输入转换成满足要求的电路设计方案,该方案必须同时满足与其的功能和约束条件。综合的过程也是设计目标的优化过程,其目的是将多个模块化设计文件合并为一个网表文件,供布局布线使用,网表中包含了目标器件中的逻辑单元和互连的信息。 *布局布线就是根据设计者指定的约束条件(如面积、延时、时钟等)、目标器件的结构资源和工艺特性,以最优的方式对逻辑元件布局,并准确地实现元件间的互连,完成实现方案(网表)到使实际目标器件(FPGA或CPLD)的变换。 9、基于EDA软件的FPGA / CPLD设计流程为:原理图/HDL文本输入→功能仿真→综合→适配→时序仿真→编程下载→硬件测试。 * 综合是EDA设计的关键步骤,综合就是将电路的高级语言转换成低级的,可与FPGA/CPLD相映射的功能网表文件。为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束。 10、构成一个完整的VHDL语言程序的五个基本结构: 实体(ENTITY)、结构体(ARCHITECURE)、配置(CONFIGURATION) 、库(LIBRARY) 、程序包 (PACKAGE) 。 *实体的由实体说明和结构体两部分组成。实体说明部分用于描述所设计系统的外部端口信号和参数的属性和设置,而结构体部分则定义了设计单元的具体功能、行为、数据流程或内部结构。 *结构体的三种描述方式,即行为级描述、数据流级描述和结构级描述。 *结构体通常由结构体名称、定义语句和并行处理语句构成。 *程序包用于存放各设计模块能共享的数据类型、常数、子程序等。 *库用于存放已编译的实体、结构体、程序包和配置,可以通过其目录进行查询和调用。在VHDL语言中,可以存在多个不同的库,但是库与库之间是独立的,不能互相嵌套。它可由用户生成或由ASIC芯片制造商提供,以便于在设计中为大家所共享。 *库用于存放已编译的实体、结构体、程序包和配置,可以通过其目录进行查询和调用。在VHDL语言中,可以存在多个不同的库,但是库与库之间是独立的,不能互相嵌套。它可由用户生成或由ASIC芯片制造商提供,以便于在设计中为大家所共享。 常用库:

数字系统的设计与实验实验报告

数字系统的设计与实验实验报告 1 2020年4月19日

数字系统的设计与实验 学院: 专业: 班级: 学号: 姓名 指导老师 2020年4月19日

年12月 10 日 实验一原码反码发生器 一实验目的: 1、掌握组合逻辑电路的基本设计方法。 2、学习波形仿真的方法。 3、加深对最简单的二进制原码、反码的理解,灵活运用基本的逻辑 门。 二实验内容 1、设计的电路应具备以下功能: A.包含如下端口: 一个选择信号端口,一个8位二进制输入端口,一个原码/反码输出端口。 B. 选择信号的逻辑状态为0时输出原码;逻辑状态为1时输出反码。 2、完成电路设计。 3、对设计的正确性进行验证。 1 2020年4月19日

三实验要求 1、列出所要实现的功能的真值表。 输入端口输出端口 cin(十六进制) Fin cout 01H 0 01H 02H 1 FDH 03H 0 03H 04H 1 FBH 05H 0 05H 06H 1 F9H 07H 0 07H 08H 1 F7H 2、画出电路的逻辑图。 3、编写用VHDL语言描述的源程序。 library ieee; use ieee.std_logic_1164.all; entity shiyan1 is port (cin : in std_logic_vector(7 downto 0); 2 2020年4月19日

fin : in std_logic; cout: out std_logic_vector(7 downto 0)); end shiyan1; architecture behave of shiyan1 is begin process(fin) begin case fin is when '1' => cout <= not cin; when '0' => cout <= cin; when others => null; end case; end process; end behave; 4、在MAX 软件平台上完成编译和功能仿真。 一、信号端口为0时 3 2020年4月19日

FPGA实验报告

FPGA综合实验 学院名称: 专业(班级): 姓名(学号): 起讫日期: 指导教师:

目录 实验一:Quartus II 和EDA实验箱使用练习 实验二:用与门来实现3-8译码器 实验三:用74161来实现十进制计数器 实验四:六十进制加法计数器 实验五:设计一个电路,用8个数码管逐个显示0、1、2、 (9) 实验六:设计一个电路,用两个数码管显示01~12的十二进制计数,两个数码管显示00~59的六十进制计数。 设计题目:四人抢答器电路 心得体会

实验一:Quartus II 和EDA实验箱使用练习 目的:学习EDA软件Quartus II,学会使用EDA实验箱。简述实验步骤仿真结果和下载看到的现象。 步骤1:进入Windows操作系统,打开Quartus II软件。 步骤2:创建工程 (1)工程设置。选择File→ New Project Wizard命令,。在弹出的图所示对话框中,选Next,进入工程设置页面,设置工程文件夹E:\ZWY、工程名和顶层实体名均为zand。设置完成后选Next,进入目标器件选择页面。 新建工程向导 图1-2-4新建工程路径、工程名称、工程实体名 (2)指定目标器件。设计人员可以在该步骤中指明本次 设计的目标器件。按图1-2-5所示选择目标芯片。设置完毕, 选择Next。 图1-2-5目标芯片选择 (3)工程总结。右图工程设置情况总结,包括工程文件夹位置、 工程名和顶层实体名、器件类型、综合器与仿真器选择等。设计人员在 此可检查设置是否符合要求。若无问题,点击“Finish”结束工程的创建。 若有不符合要求的情况,可点击“Back”退回修改。

数字系统的设计与实验实验报告

数字系统的设计与实验 实验报告 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

数字系统的设计与实验学院: 专业: 班级: 学号: 姓名 指导老师 2013 年12月 10 日 实验一原码反码发生器 一实验目的: 1、掌握组合逻辑电路的基本设计方法。 2、学习波形仿真的方法。 3、加深对最简单的二进制原码、反码的理解,灵活运用基本的逻辑门。 二实验内容 1、设计的电路应具备以下功能: A.包含如下端口: 一个选择信号端口,一个8位二进制输入端口,一个原码/反码输出端口。 B. 选择信号的逻辑状态为0时输出原码;逻辑状态为1时输出反码。 2、完成电路设计。 3、对设计的正确性进行验证。 三实验要求

1、列出所要实现的功能的真值表。 2、画出电路的逻辑图。 3、编写用VHDL语言描述的源程序。 library ieee; use shiyan1 is port (cin : in std_logic_vector(7 downto 0); fin : in std_logic; cout: out std_logic_vector(7 downto 0)); end shiyan1; architecture behave of shiyan1 is begin process(fin) begin case fin is when '1' => cout <= not cin; when '0' => cout <= cin; when others => null;

end case; end process; end behave; 4、在MAX 软件平台上完成编译和功能仿真。 一、信号端口为0时 二、信号端口为1 总结:经过上个实验后,对maxplu件有了一定了解,对于 VHDL也更加熟悉,首先构造真值表,画出逻辑电路图,然后编写程序生成仿真波形图。在编写程序的时候也出现了一些错误,比如是将单个字符用双引号,结果编译通不过。老是报错。后来才检查出来。 实验二4舍5入电路 一实验目的: 1、掌握组合逻辑电路的基本设计方法。 2、熟练运用真值表。 二实验内容 1、设计的电路应具备以下功能: A.包含如下端口: 一个4位二进制输入端口,一个进位输出端口。 B. 即当输入的数X大于或等于5时,进位输出端口输出F为1,反之,输出为0。 2、完成电路设计。 3、对设计的正确性进行验证。

FPGA综合设计报告

FPGA综合设计报告

载波信号发生器设计 一、实验目的 1. 熟悉Quaturs II软件的使用。 2. 掌握正余弦查找表的用途、设计和使用方法。 3. 掌握用VerilogHDL硬件描述语言建模时序逻辑电路的能力。 二、实验内容 1.计算正余弦信号采样值 用C/C++编写程序,计算一个周期内的正余弦信号的采样值,一个周期采样32次。要求对采样值和2的幂次倍(例如16、32、64、128等)进行倍乘后处理成适当的整数值,对每个整数值进行8位二进制编码。注意:计算机中对负数用补码表示。 计算正弦信号采样值的C语言程序及注释: #include #include #include using namespace std; //C++及C 语言库函数头文件 #define PI 3.141592653 //宏定义PI数值 #define N 32 //定义放大倍数及累加变量为32,可以修改为64或者是128 int main() { double sinValue[N]; //sinValue为的抽样的数值 int outValue[N]; for(int i=0;i

数字电路实训报告()

广东交通职业技术学院 专业班级:电子信息工程技术 姓名: 班级学号:1013232133 指导教师:丘社权 成绩:

目录 一,数字电路实训目的 二,设计一个抢答器 1)电路工作原理 2)电路分析 3)设计要求 4)功能介绍 三,设计一个电子秒表 1)电路工作原理 2)555定时器 3)74LS90的接法与作用 4)按键的功能 四,电路组装调试过程中发生的问题及解决方法: 五,实训总结

设计一台可供4名选手参加比赛的智力竞赛抢答器。 实验原理图 选手抢答时,数码显示选手组号。 抢答器电路 其功能主要有74LS90触发器和4013和4069完成。该电路完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,;二是禁止其他选手按键操作无效。工作过程:开关J2置于"清除"端时,74LS90触发器的CLR端均为0,Q端均为0,Q=1,所以数码管显示0所有发光二管不亮;。当开关J2不接地即打开时抢答开始,当无人按抢答开关时锁存器Q输出全为高电平经为几个非门仍为高电平锁存器处于等待接收触发状态当选手按下抢答开关时(如第一个抢答开关)1D=1,Q=0,使得CP=1这样使得无论输入何种信号输出将

保持不变(脉冲信号不能进入触发器)从而禁止了其他选手的按键操作 设计要求 (1)4名选手编号为:1,2,3。各有一个抢答按钮,按钮的编号与选手的编号对应,也分别为1,2,3。 (2)给主持人设置一个控制按钮,用来控制系统清零(抢答显示数码管灭灯)和抢答的开始。 (3)抢答器具有数据锁存和显示的功能。抢答开始后,若有选手按动抢答按钮,该选手编号立即锁存,并在抢答显示器上显示该编号,封锁输入编码电路,禁止其他选手抢答。抢答选手的编号一直保持到主持人将系统清零为止。 (4)抢答器具有复位功能。当主持人按下开始按钮后,定时器清零,定时显示器显示零,若无人抢答,将一直显示零。参赛选手在主持人的口令下开始抢答,抢答成功者,抢答显示器上显示选手的编号,并保持到主持人将系统清零为止。 (5)如果抢答定时已到,却没有选手抢答时,本次抢答无效。时间显示器显示0。如果有人抢答将显示抢答者序号,并宣布无效抢答。 (6)555定时器产生频率为1Hz的脉冲信号,作为定时计数器的CP信号 电子秒表制作 实验总电路图

实验四 FPGA 时序逻辑设计

实验四FPGA 时序逻辑设计 学习目标 1、了解可编程数字系统设计的流程 2、掌握Quartus II 软件的使用方法 3、掌握原理图输入方式设计时序逻辑电路的方法和流程 必做实验 1、实验内容: 设计一个电路,用4×4 矩阵键盘输入一个4 位数,并在数码管上显示,要求如下:(1)输入时,数字顺序是从左到右。例如,顺序输入0、1、2、3 应该在数码管上显示“0123” 。 (2)比较输入数值,比较结果用1 个LED 显示。如果输入值和你的学号后4 位相等, 则LED灯亮,不等LED灭。 (3)实验箱上的数码管内部已译码,4×4 键盘上拉电阻也已连接好。 2、实验要求: 1、根据设计要求划分设计层次、单元模块和接口信号,在预习报告上记录设计过程,绘制系统框图,每个模块的状态转移图或ASM 图,并设计验证方案。 2、用原理图输入法设计所有单元模块并编译,分析编译时产生的错误和警告信息 3、 对所有的单元模块进行功能仿真,并记录和分析全部仿真结果 4、在顶层文件中连接全部单元模块并编译、综合、分配管脚和适配。 5、对整个系统进行时序仿真,并记录和分析仿真结果。 6、将仿真正确的设计下载到实验箱上,连接输入输出设备和示波器进行板级验证

实验内容 设计原理 矩阵式键盘,将I/O线分别组成行、列结构,按键设置在行列的交点上。4×4行列键 用4条I/O线作为行线,4条I/O线作为列线所组成的的键盘,16个按键分别设置在行、列线的交点处,行线、列线分别连接到按键开关的两端。所有的行线和列线都通过上拉电阻接电源,钳位在高电平状态。相比较独立式按键,4×4行列式键盘只需要8 根I/O 线就实现了16个按键,节省了8个I/O口。但由于行、列线为多键共用,各按键彼此将相互发生影响,必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。 通过对行线轮流加低电平信号,的值在1110,1101,1011和0111之间变化。无键摁下时,等于1111,;有按键摁下时,行线短接,不等于1111,。检测到变化时,输出控制信号 ,使行线停止扫描。行线和列线共同构成8位二进制码通过译码电路进行译

数字系统设计综合实验报告

数字系统设计综合实验报告 实验名称:1、加法器设计 2、编码器设计 3、译码器设计 4、数据选择器设计 5、计数器设计 6、累加器设计 7、交通灯控制器设计 班级: 姓名: 学号: 指导老师:

实验1 加法器设计 1)实验目的 (1)复习加法器的分类及工作原理。 (2)掌握用图形法设计半加器的方法。 (3)掌握用元件例化法设计全加器的方法。 (4)掌握用元件例化法设计多位加法器的方法。 (5)掌握用Verilog HDL语言设计多位加法器的方法。 (6)学习运用波形仿真验证程序的正确性。 (7)学习定时分析工具的使用方法。 2)实验原理 加法器是能够实现二进制加法运算的电路,是构成计算机中算术运算电路的基本单元。目前,在数字计算机中,无论加、减、乘、除法运算,都是化为若干步加法运算来完成的。加法器可分为1位加法器和多位加法器两大类。1位加法器有可分为半加器和全加器两种,多位加法器可分为串行进位加法器和超前进位加法器两种。 (1)半加器 如果不考虑来自低位的进位而将两个1位二进制数相加,称半加。实现半加运算的电路则称为半加器。若设A和B是两个1位的加数,S 是两者相加的和,C是向高位的进位。则由二进制加法运算规则可以得到。

(2)全加器 在将两个1位二进制数相加时,除了最低位以外,每一位都应该考虑来自低位的进位,即将两个对应位的加数和来自低位的进位三个数相加,这种运算称全加。实现全加运算的电路则称为全加器。 若设A、B、CI分别是两个1位的加数、来自低位的进位,S是相加的和,C是向高位的进位。则由二进制加法运算规则可以得到:3)实验内容及步骤 (1)用图形法设计半加器,仿真设计结果。 (2)用原件例化的方法设计全加器,仿真设计结果 (3)用原件例化的方法设计一个4为二进制加法器,仿真设计结果,进行定时分析。 (4)用Verilog HDL语言设计一个4为二进制加法器,仿真设计结果,进行定时分析。 (5)分别下载用上述两种方法设计4为加法器,并进行在线测试。 4)设计 1)用图形法设计的半加器,如下图1所示,由其生成的符号如图2 所示。

相关文档