FPGA一位全加器设计实验报告
- 格式:doc
- 大小:92.00 KB
- 文档页数:4
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进制计数器。
一位全加器实验报告一位全加器实验报告引言:全加器是数字电路中常用的逻辑门,用于将两个二进制数相加并输出和与进位。
本实验旨在通过搭建一位全加器电路并进行测试,加深对数字电路原理的理解。
一、实验背景数字电路是现代电子技术中的重要组成部分,其广泛应用于计算机、通信等领域。
全加器作为数字电路的基础,具有重要的意义。
全加器的设计和实现对于提高计算机的运算速度和效率至关重要。
二、实验目的1. 了解全加器的原理和工作方式;2. 掌握全加器的电路搭建方法;3. 进行全加器的测试,验证其正确性。
三、实验材料和器件1. 电路实验箱;2. 电源;3. 逻辑门集成电路(如74LS08、74LS32等);4. 连线和插线板。
四、实验原理全加器是由两个半加器和一个或门组成的。
半加器用于计算两个二进制位的和与进位,全加器则利用半加器的结果和第三个输入位的进位来计算三个二进制位的和与进位。
五、实验步骤1. 首先,将所需的逻辑门集成电路插入插线板中;2. 将电源连接到插线板上的电源接口上,并调整电源电压;3. 按照全加器的电路图,将逻辑门按正确的方式连接起来;4. 完成电路的搭建后,将输入信号接入逻辑门的输入端,将输出信号接入逻辑门的输出端;5. 打开电源,观察输出结果;6. 调整输入信号,测试多种情况下的输出结果。
六、实验结果与分析通过实验,我们得到了全加器的输出结果。
在输入信号为0、0、0的情况下,输出结果为0、进位为0;在输入信号为0、1、0的情况下,输出结果为1、进位为0;在输入信号为1、1、0的情况下,输出结果为0、进位为1;在输入信号为1、1、1的情况下,输出结果为1、进位为1。
实验结果与预期一致,说明全加器的电路搭建正确。
七、实验总结通过本次实验,我们深入了解了全加器的原理和工作方式,并通过实际操作验证了其正确性。
全加器作为数字电路中的重要组成部分,对于计算机等领域的应用具有重要意义。
通过实验,我们不仅加深了对数字电路原理的理解,还提高了实际操作的能力。
实验五 1位全加器的文本输入(波形仿真用)1.实验目的通过此实验让学生逐步了解、熟悉和掌握FPGA开发软件Quartus II的使用方法及VHDL 的编程方法。
学习电路的仿真方法。
2.实验内容本实验的内容是建立一个1位全加器。
在实验箱上的按键KEY1~KEY3分别为A、B 和Cin,并通过LED1~LED3指示相应的状态。
输出Sum和Cout通过LED7和LED8指示。
3.实验原理1位全加器的真值表如下所示。
表1位全加器逻辑功能真值表4.实验步骤(1) 启动Quartus II,建立一个空白工程,然后命名为full_add.qpf。
(2) 新建full_add.vhd源程序文件,编写代码。
然后进行综合编译。
若在编译过程中发现错误,则找出并更正错误,直到编译成功为止。
也可采用原理图文件的输入方式,建立半加器,然后在组成1位全加器。
原理图如下所示半加器设计1位全加器设计(3) 波形仿真步骤如下:① 在Quartus II 主界面中选择File → New 命名,打开新建文件对话框,从中选择V ector Waveform File ,如下图所示。
单击OK 建立一个空的波形编辑窗口。
选择File →Saveas 改名为full_add.vwf。
此时会看到窗口内出现如下图所示。
图 新建文件对话框 图 新建波形文件界面② 在上图所示的Name 选项卡内双击鼠标左键,弹出如图 所示的对话框。
在该对话框中单击Node Finder 按钮,弹出如图 所示的对话框。
图 添加节点对话框③ 按照下图所示进行选择和设置,先按下“list ”按钮,再按下“>>”按钮添加所有节点,最后按下“ok ”按钮。
图添加节点④波形编辑器默认的仿真结束时间为1us,根据仿真需要可以设置仿真文件的结束时间。
选择Edit→ End Time命令可以更改。
这里采用默认值不需更改。
图添加完节点的波形图⑤编辑输入节点的波形。
编辑时将使用到波形编辑工具栏中的各种工具。
题目:1位全加器的设计一.实验目的1.熟悉QUARTUSII软件的使用;2.熟悉实验硬件平台的使用;3.掌握利用层次结构描述法设计电路。
二.实验原理由于一位全加器可由两个一位半加器与一个或门构成,首先设计半加器电路,将其打包为半加器模块;然后在顶层调用半加器模块组成全加器电路;最后将全加器电路编译下载到实验箱,其中ain,bin,cin信号可采用实验箱上SW0,SW1,SW2键作为输入,并将输入的信号连接到红色LED管LEDR0,LEDR1,LEDR2上便于观察,sum,cout信号采用绿色发光二极管LEDG0,LEDG1来显示。
三.实验步骤1.在QUARTUSII软件下创建一工程,工程名为full_adder,芯片名为EP2C35F672C6;2.新建Verilog语言文件,输入如下半加器Verilog语言源程序;module half_adder(a,b,s,co);input a,b;output s,co;wire s,co;assign co=a & b;assign s=a ^ b;Endmodule3.保存半加器程序为half_adder.v,进行功能仿真、时序仿真,验证设计的正确性。
其初始值、功能仿真波形和时序仿真波形分别如下所示4.选择菜单Fil e→Create/Update→Create Symbol Files for current file,创建半加器模块;5.新建一原理图文件,在原理图中调用半加器、或门模块和输入,输出引脚,按照图1所示连接电路。
并将输入ain,bin,cin连接到FPGA的输出端,便于观察。
完成后另保存full_adder。
电路图如下6.对设计进行全编译,锁定引脚,然后分别进行功能与时序仿真,验证全加器的逻辑功能。
其初始值、功能仿真波形和时序仿真波形分别如下所示7.下载采用JATG方式进行下载,通过SW0,SW1,SW2输入,观察LEDR[0],LEDR[1],LEDR[2],LEDG[0],LEDG[1]亮灭验证全加器的逻辑功能。
实验题目
实验报告正文一律使用A4打印纸打印或手写,页眉上标明“《XXXX》课程实验”字样。
页面设置上边距2.5cm,下边距2 cm,右边距2 cm(左装订),多倍行距1.25倍。
正文用宋体5号字,页眉和页脚同宋体小5号字并居中。
1、实验内容
用MAX+plus II 10.1设计一位全加器
2、实验目的与要求
设计一位全加器,并且熟悉MAX+plus II 10.1使用环境。
3、实验环境
MAX+plus II 10.1
4、设计思路分析(包括需求分析、整体设计思路、概要设计)
用两个半加器和一个或门,设计一位全加器。
5、详细设计
一位全加器可以用两个半加器和一个或门连接而成,半加器由一个与门,一个非门,同或门来实现。
在MAX+plus II 10.1环境操作步骤如下:
1、半加器的设计
2、全加器的设计
3、分配管脚
4、编译
5、仿真
6、下载
7、观察结果
6、实验结果与分析
半加器原理图
半加器波形图
全加器原理图
全加器波形图
7、实验体会与建议
通过这次实验课的学习,我学会了MAX+plus 的使用。
了解了半加器和全加器的设计原理和在MAX+plus中的实现方法。
在操作过程中虽然遇到了很多的困难,但在同学的帮助下都克服了。
同学的帮助在学习的过程中是很重要的。
FPGA一位全加器设计实验报告
本实验的目的是学习使用FPGA设计一个全加器,通过实践掌握FPGA硬件描述语言和数字电路设计的一些基础知识和技能。
一、实验背景
数字逻辑电路是计算机硬件的基础,而硬件描述语言是数字电路设计的重要手段。
FPGA是可编程逻辑器件,它可以根据用户的需求进行编程,实现不同的数电逻辑电路。
全加器是组成加法器的重要单元,也是我们学习数字逻辑的重要基础。
二、实验设计
本实验我们将采用Verilog硬件描述语言来设计一个全加器。
代码如下:
module full_add(
input A,B,Cin,
output S,Cout
);
wire w1,w2,w3;
xor(S,w1,A^B);//A异或B
xor(Cout,w2,A&Cin);//A与Cin之后异或
xor(w3,B&Cin,A&Cin);//B与Cin之后异或
xor(Cout,Cout,w3);//再次异或
endmodule
三、测试结果
我们使用Quartus II软件进行仿真和综合。
通过对代码的仿真和波形分析,我们发现该全加器符合设计要求,并且可以正确地输出结果。
四、实验总结
本实验我们学习了FPGA硬件描述语言,掌握了数字电路设计的一些基础知识和技能。
通过设计全加器,我们更深入地理解了数字逻辑电路的原理和应用。
希望在今后的学习中,能够继续深入研究数字电路的知识,为我们掌握计算机硬件设计打下坚实的基础。
一位全加器的实验报告一位全加器的实验报告摘要:本实验旨在通过搭建一位全加器电路,探究数字电路中的加法运算原理。
通过实验,我们成功验证了全加器的功能,并观察到了其在二进制加法中的作用。
实验结果表明,全加器是一种重要的数字电路元件,能够实现多位二进制数的相加运算。
引言:全加器是一种常见的数字电路元件,用于实现二进制数的相加运算。
它能够处理两个输入位和一个进位位,并输出一个和位和一个进位位。
全加器的设计和实现对于数字电路的理解和应用具有重要意义。
本实验将通过搭建一位全加器电路,探究其工作原理和应用。
材料与方法:1. 逻辑门:与门、或门、异或门、非门2. 连线材料:导线、电源线3. 电源:直流电源4. 示波器:用于观察电路输出波形实验步骤:1. 按照电路图搭建一位全加器电路,包括两个输入位A和B,一个进位位Cin,一个和位S和一个进位位Cout。
2. 将电源线连接至电路,确保电路正常供电。
3. 分别将输入位A和B的电平信号输入到与门和异或门中,将进位位Cin的电平信号输入到与门中。
4. 将与门和异或门的输出信号输入到或门中,得到和位S的输出信号。
5. 将与门的输出信号输入到与非门中,得到进位位Cout的输出信号。
6. 使用示波器观察和位S和进位位Cout的波形。
结果与讨论:通过实验观察,我们得到了一位全加器的输出波形。
当输入位A和B均为0时,和位S和进位位Cout均为0;当输入位A和B均为1时,和位S为0,进位位Cout为1;当输入位A和B中有一个为1时,和位S为1,进位位Cout为0;当输入位A和B均为1时,和位S和进位位Cout均为1。
这一结果与全加器的逻辑运算规则相符,验证了全加器电路的正确性。
全加器在二进制加法中起到了关键作用。
通过将多个全加器连接起来,我们可以实现多位二进制数的相加运算。
在实际应用中,全加器被广泛应用于计算机的算术逻辑单元(ALU)中,用于实现加法和其他运算。
结论:通过本实验,我们成功搭建了一位全加器电路,并验证了其在二进制加法中的功能。
实验一 全加器实验目的:1、设计一个全加器。
2、熟悉和掌握FPGA开发软件Quartus II的使用方法。
3、了解掌握用VHDL语言以不同的方式编程方法。
4、掌握电路设计仿真和硬件下载的方法。
实验器材1、SOPC实验箱2、计算机(装有Quartus II 7.0软件)实验预习1、阅读SOPC实验箱的相关资料,了解实验箱的使用方法。
2、预习Quartus II7.0基本使用方法,熟悉实验操作流程。
3、书写预习报告,必须有完整的VHDL设计程序及实验步骤。
实验原理1、1位全家器能实现2个二进制数含进位位的加法,其逻辑功能真值表如表-1,电路原理图如图1.0所示表-1 1 位全加器逻辑功能真值表A B Cin Sum Cout0 0 0 0 01 0 0 1 00 1 0 1 01 1 0 0 10 0 1 1 01 0 1 0 10 1 1 0 11 1 1 1 1图1.0 1 位全加器电路实验内容设计一个全加器,实现全家器的逻辑功能。
其输入由三位拨码开关提供,输出由五路LED指示,其中两路显示输出结果,另外三路显示输入拨码开关的状态。
注意:实验箱上的LED指示灯,低电位时亮,高电位时灭,注意电路最后的输出逻辑转换。
一、使用QUARTUS II建立工程1、打开QUARTUS II软件并建立工程选择开始>>程序>>Quartus II 7.0>> Quartus II 7.0(32-Bit)打开Quartus II 7.0软件。
也可以直接点击桌面上的Quartus II 7.0(32-Bit)图标打开Quartus II 7.0,软件界面如图1.1所示。
图1.1 Quartus II界面2、在图1.1中选择File>>New Project Wizard来新建一项工程。
在本实验指导书中,任何一个实验都是包含于一个项目中。
同时要区别“New Project Wizard”与“New”的关系,“New”是新建项目内的子文件用。
太原理工大学EDA实验报告1-1位全加器
太原理工大学Eda实验报告1-1位全加器
实验报告
课程名称:Eda技术与FPGa应用设计
课设题目:
1位全加器
实验地点:信息学院楼cPLd实验室
专业班级:
学号:
学生姓名:
指导教师:张文爱
20XX年4月1日
实验一1位全加器
一、实验目的
1.熟悉ispdesignEXPERTSystem、Quartusii的原理图设计流程的全过程。
2.学习简单组合电路的设计方法、输入步骤。
3.学习层次化设计步骤。
4.学习Eda设计的仿真和硬件测试方法。
二、实验原理
1.位全加器可以用两个半加器及一个或门连接而成。
图1.半加器原理图
图2.全加器原理图
三、实验任务
1.用原理图输入方法设计半加器电路。
2.建立顶层原理图电路。
3.对全加器电路进行引脚锁定、硬件测试。
四、实验内容
1.用原理图输入方法设计半加器电路
图3.半加器电路图
2.半加器经封装后作为一个元件为全加器电路使用,调用半加器设计全加器:
图4.全加器电路图
五、实验结果
六、实验感想
通过本次试验我熟悉了ispdesignEXPERTSystem、Quartusii的原理图设计流程的全过程。
学习了简单组合电路的设计方法、输入步骤以及Eda设计的仿真和硬件测试方法。
学会了使用FPGa设计的顶层设计的简单实验,通过设计半加器完成全加器的设计。
对所学的知识得到很好的实践和检验。
()。
FPGA原语之⼀位全加器FPGA原语之⼀位全加器1、实验原理⼀位全加器,三个输⼊,两个输出。
进位输出Cout=AB+BC+CA,本位输出S=A异或B异或C。
实验中采⽤三个与门、⼀个三输⼊或门(另外⼀个是两个或门,功能⼀致)、⼀个三输⼊异或门实现该简单功能。
2、实验操作实验设计还是⽐较简单的,直接看代码即可:module test2(input clk,input rt_n,input [3:0] key_c,output [3:0] key_r,output [11:0] led);wire k1,k2,k3,k4;assign k1=key_c[0];assign k2=key_c[1];assign k3=key_c[2];assign k4=key_c[3];assign key_r=4'b0;xor xor1(led[0],k1,k2,k3);and and1(led[11],k1,k2);and and2(led[10],k2,k3);and and3(led[9],k3,k1);or or1(led[8],led[11],led[10]);or or2(led[2],led[8],led[9]);or or3(led[3],led[9],led[10],led[11]);endmodule就是直接调⽤,输出结果直接显⽰在led上,也就没有区分led,下次可能需要注意⼀下。
⽣成的RTL视图看不出具体的电路结构,只能看到调⽤的器件和总线。
3、实验结果RTL视图器件的数量和连线基本正确。
板级验证就是按相应的输⼊即可得到具体的输出。
这⾥就不展⽰了。
后⾯可能验证的就是更加复杂的数字电路。
可以将FPGA作为⼀个可以反复使⽤的数字电路实验平台。
实验二 全加器设计一、实验目的1、设计并实现一个一位全加器。
2、编写testbench 并仿真。
二、实验原理计算机中的加法器一般就是全加器,它实现多位带进位加法。
下面以一位全加器介绍。
一位全加器有三个输入、两个输出,见图2-1。
图2-1 一位全加器示意图图中的“进位入”C i-1指的是低位的进位输出,“进位出”Ci 即是本位的进位输出。
一位全加器的真值表见表2-1。
表2-1:输入输出C i-1 Bi Ai Si Ci 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 01 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 11 1 1 1根据表2-1便可写出逻辑函数表达式:1111−−−−••+••+••+••=i i i i C Bi Ai C Bi Ai C Bi Ai C Bi Ai Si 11−−•+•+•=i i C Bi C Ai Bi Ai Ci全加功能的硬件实现方法有多种,例如:可以把全加和看作是Ai 与Bi 的半加和Hi 与进位输入C i-1的半加和来实现。
(被加数)Bi (被加数)Ai(进位入)C i-1(全加和)Si(进位出)Ci多位全加器就是在一位的原理上扩展而成的。
集成电路全加器有7480、7481、7483等。
实验源程序文件名是fulladder.vhd。
三、实验代码(含TESTBENCH)1、全加器代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fulladder ISPORT(a,b,cin:IN STD_LOGIC;s,co:OUT STD_LOGICM : out std_logic_vector(3 downto 0));--4位功能选择位M[3:0],设置状态为0001,即16位拨码开关接到16位数据总线上。
本科实验报告
课程名称:EDA技术与FPGA应用设计实验项目:1位全加器的设计
实验地点:跨越机房
专业班级:学号:
学生姓名:
指导教师:
2012年6 月20 日
一、实验目的:
1.熟悉ispDesignEXPERT System原理图设计流程的全过程。
2.学习简单组合电路的设计方法、输入步骤。
3.学习层次化设计步骤。
4.学习EDA设计的仿真和硬件测试方法。
二、实验原理:
1.位全加器可以用两个半加器及一个或门连接而成。
三、实验任务:
1.用原理图输入方法设计半加器电路。
2.建立顶层原理图电路。
3.对全加器电路进行仿真分析、引脚锁定、硬件测试。
四、实验内容:
1.用原理图输入方法设计半加器电路
2.调用半加器设计全加器:
五、仿真波形:
六、加法器的延时情况:
七、心得体会:
通过本实验让我对原理图方法设计有了一定的认识,让我初步掌握了ispDesignEXPERT System软件,在构建原理图时,我们可以使用巧妙的办法搭建出最简便的原理图,初次实验,有些生疏,不过还是很完美的做完了实验,希望今后能有更多的机会去实践,去巩固,去提高。
一、实验原理
全加器是一个能对两个一位二进制数及来自低位的“进位”进行相加,产生本位“和”及向高位“进位”的逻辑电路。
该电路有3个输出变量,分别是两个加数Ai,Bi和一个低进位Ci—-1,2个输出变量。
分别是本位Si和向高进位Ci。
二、实验过程
1,使用中小规模集成电路来设计组合电路是最常见的逻辑电路。
根据设计任务的要求建立输入,输出变量,并列出真值表。
2设计步骤,
1)根据题意列出真值表,再填入卡诺图。
2)由卡诺图得出逻辑表达式,并演化成“与非”的形式
3)根据逻辑表达式画出用“与非门”构成的逻辑电路
4)用实验验证逻辑功能
在实验装置适当位置选定3个14插座,按照集成块定位标记插好集成块74LS20
按图接好,输入端至逻辑开关。
实验提示:
对于非门而言,如果一个与门中的一条或几条如入引脚不被使用,则需将他们接高电平,如果一个与门不被使用,则需将此与门的至少一条输入引脚接低电平。
三、实验数据
半加器功能测试
A B S C
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1 全加器功能测试
A i
B i
C i S i C i+1
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 00 1
1 1 1 0 1
四、实验所得
学会了全加器,半加器的接法,从原理上懂得了选择器的使用方法。
全加器的设计实验报告《全加器的设计实验报告》摘要:本实验旨在设计并实现一个全加器电路,用于对两个二进制数进行加法运算。
通过实验,我们成功地设计了一个全加器电路,并进行了验证和测试。
实验结果表明,该全加器能够正确地对两个二进制数进行加法运算,并输出正确的结果。
引言:全加器是数字电路中常用的逻辑电路之一,用于对两个二进制数进行加法运算。
它由两个半加器和一个或门组成,能够实现对两个二进制数的加法运算,并输出相应的结果。
在本次实验中,我们将设计并实现一个全加器电路,并对其进行验证和测试。
设计与实现:首先,我们根据全加器的逻辑功能和真值表,设计了相应的电路图。
然后,我们选择适当的逻辑门和触发器进行电路的实现。
在实验中,我们采用了集成电路来实现全加器电路,并通过连接适当的引脚,将其组成一个完整的电路。
最后,我们对电路进行了验证和测试,确保其能够正确地进行加法运算。
实验结果:经过验证和测试,我们成功地实现了一个全加器电路,并对其进行了测试。
实验结果表明,该全加器能够正确地对两个二进制数进行加法运算,并输出正确的结果。
在不同的输入条件下,我们都得到了正确的输出结果,证明了该全加器的正确性和可靠性。
结论:通过本次实验,我们成功地设计并实现了一个全加器电路,并对其进行了验证和测试。
实验结果表明,该全加器能够正确地对两个二进制数进行加法运算,并输出正确的结果。
这为我们进一步深入理解数字电路和逻辑电路提供了重要的实践基础。
同时,我们也发现了一些问题和改进的空间,为今后的研究和实践提供了有益的启示。
希望通过本次实验,能够对数字电路的设计与实现有更深入的理解。
实验二1位全加器的设计(VHDL)
实验二1位全加器的设计(VHDL)
一、实验目的
1、掌握MAX+PLUSII 10.2软件的使用流程。
2、掌握设计文本输入方法。
3、熟悉ZY11EDA13BE型实验箱的开关按键模块,LED显示模块。
二、实验内容
在MAX+PLUSII 10.2软件中使用文本输入方法设计并实现一个1位全加器。
三、实验仪器
1、ZY11EDA13BE型实验箱通用编程模块,配置模块,开关按键模块,LED显示模块。
2、并口延长线,JTAG延长线。
3、安装MAX+PLUSII 10.2软件的PC机。
四、实验原理
根据实验一的全加器原理,用VHDL分别描述半加器和或门,使用元件例化语句实现全加器的描述。
五、实验注意事项:
实验指导书中所有实验内容都是针对主板系统的核心芯片EP1K30QC208-2来设计的,实验原理中提供了管脚分配情况,管脚分配好后必须通过成功编译才可以下载配置。
六、实验步骤:
步骤1:为本项工程设计建立文件夹。
步骤2:输入设计项目原理图,并存盘。
步骤3:将设计项目设置成工程文件:
步骤4:选择目标器件并编译
步骤5:时序仿真
步骤6:创建默认的逻辑符号:选莱单File\Create Default Symbol(只在底层设计中使用)。
步骤7:引脚锁定
步骤8:连接设备:
步骤9:下载配置文件到目标芯片。
步骤10:逻辑验证
七、实验报告
1、列出半加器和全加器的真值表。
2、列举出不同方式的VHDL1位全加器的描述。
课程名称:EDA技术与FPGA应用设计实验项目:1位全加器2012年 6 月22 日一、实验目的①熟悉ispDesignEXPERT System、Quartus II原理图设计流程的全过程。
②学习简单组合电路的设计方法、输入步骤。
③学习层次化设计步骤。
④学习EDA设计的仿真和硬件测试方法。
二、实验原理1位全加器可以由2个半加器及1个或门连接而成,因此首先完成如图的半加器设计。
使用原理图输入的方法先进行底层半加器设计,在建立上层全加器设计文件,调用半加器和或门符号,连线完成原理设计。
半加器原理图全加器原理图三、主要仪器设备Isp Design EXPERT软件,FPGA配置存储芯片,硬件电路板。
四、实验步骤(1)启动Isp Design EXPERT软件,并创立半加器设计项目和选择器件ispLSI 1016E。
(2)添加原理图输入源文件(3)根据上图添加半加器中的元件符号和输入输出符号,然后连线,画好半加器。
(4)将图形中半加器的添加输入输出端口并锁定引脚。
(5)画出半加器的仿真波形。
(6)删掉半加器的输入输出端口链接和引脚,将半加器变成模块的形式并保存。
(7)再把半加器当作元件,按照原理图链接。
(8)根据图形标记输入输出和锁定引脚(9)保存所完成的全加器图(10)建立波形仿真源文件,分别进行功能和时序仿真(11)接好编程电缆,选择Scan Board命令。
完成一个包含菊花链中所有器件的基本结构文件。
(12)添加JEDEC文件和器件编程。
(13)根据锁定的引脚观察实验板上相应的LED灯的变化。
五、实验结果及分析设计校验过程:功能仿真:在设计输入阶段,进行逻辑功能验证,称为功能仿真或前仿真。
时序仿真:在选择了具体器件并完成布局布线方案后进行的时序仿真称为后仿真或延时仿真。
由于不同器件的内部延时不一样,不同的布局、布线方案也给延迟造成了很大的影响,因此在设计处理以后,分析时序关系,估计设计的性能以及检查和消除竞争冒险等是必要的。
实验报告课程名称:FPGA设计及应用实验项目:一位二进制全加器实验时间:2013年4月1日实验班级:xxxx总份数:1份指导教师:***电子与信息学院工业中心实验室二〇一三年四月一日广东技术师范学院实验报告学院:电子与信息学院专业:电子信息工程班级:xxxxx 成绩:姓名:x xxxx 学号:xxxxxxxx 组别:组员:实验地点:工业中心实验日期:2013年4月1日指导教师签名:实验一项目名称:一位二进制全加器一、全加器的VHDL语言:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;(定义元件库)ENTITY vf_adder ISPORT (ain,bin,cin:IN BIT;cout,sum:OUT BIT);END ENTITY vf_adder;(实体说明:全加器有三个输入端,两个输出端)ARCHITECTURE one OF vf_adder ISSIGNAL d,e,f: BIT;BEGINd<=ain AND bin;e<=ain XNOR (NOT bin);f<=e AND cin;cout<= f OR d;sum<= e XNOR (NOT cin);END ARCHITECTURE one;(结构体:根据逻辑公式得出两个输出端的值)二、进行全加器的编译:通过将VHDL文件进行保存,与存为项目之后,即可进入编译状态。
上图为编译成功的结果,当然在一开始编译的过程中会出现一些比较常见的错误,比如文件还没有被定义,此时我们应该在工作栏中的文件中选择该文件,如下图的vf_adder 点击右键选择set as Top_Level Entity,再进行编译就可以了。
三、波形仿真:编译成功后就可以进入波形仿真首先,要建立一个波形文件,如右图所示:选中vector Waveform File,建立文件。
其次,将所有的输入输出端拉进波形文件里面:然后,设置好三个输入端的状态,设定波形仿真的类型,这一个步骤很重要,如果没有做的话,仿真出来的波形就不正确了,如下图所示,选择设置菜单,。
一位全加器的文本输入实验报告一、实验目的与要求通过此实验了解FPGA开发软件Quartus II的使用方法及VHDL的编程方法,学习用VHDL语言来描述1位全加器及电路的设计仿真和硬件测试。
二、实验设备SmartSOPC+多功能教学实验开发平台。
三、实验内容本实验的内容是建立一个1位全加器。
具体内容包括:(1)使用quartus II建立工程、编写程序;(2)进行波形仿真验证;(3)进行硬件测试;通过SmartSOPC实验箱上的按键KEY0-KEY2输入信号,分别为ain、bin、cin输出sum和count通过led6和led7指示(灯亮表示输出为“0”)。
四、实验步骤(1)启动quartus II 建立一个空白工程,然后命名为adder1b.qpf。
(2)新建VHDL源程序文件adder1b.vhd,输入程序代码并保存。
(3)编译前设置:1、选择目标芯片EP3C55F484C8。
2、选择配置器件的工作方式。
3、选择配置器件EPCS1和编程方式。
4、选择目标器件闲置引脚状态为输入三态。
5、锁定引脚。
set_location_assignment PIN_E13 -to led[6]set_location_assignment PIN_E11 -to led[7]set_location_assignment PIN_AB11 -to key[0]set_location_assignment PIN_AA11 -to key[1]set_location_assignment PIN_T21 -to key[2]6、再次进行全程编译。
(4)通过jtag下载程序到实验箱中,并将相应的短接帽插好,并将按键与相应FPGA 输出引脚连接好,观察实验现象。
(5)通过波形仿真,查看实验结果。
五、设计程序library ieee;use ieee.std_logic_1164.all;entity adder1b isport(ain , bin , cin : in std_logic;sum , count : out std_logic );end entity adder1b;architecture art of adder1b isbeginsum <= ain xor bin xor cin;count <= (ain and bin) or (ain and cin) or (bin and cin); end architecture art;六、实验结果及分析实验结果:(1)按照如下真值表,相应的小灯亮。
题目:1位全加器的设计
一.实验目的
1.熟悉QUARTUSII软件的使用;
2.熟悉实验硬件平台的使用;
3.掌握利用层次结构描述法设计电路。
二.实验原理
由于一位全加器可由两个一位半加器与一个或门构成,首先设计半加器电路,将其打包为半加器模块;然后在顶层调用半加器模块组成全加器电路;最后将全加器电路编译下载到实验箱,其中ain,bin,cin信号可采用实
验箱上SW0,SW1,SW2键作为输入,并将输
入的信号连接到红色LED管
LEDR0,LEDR1,LEDR2上便于观察,sum,cout
信号采用绿色发光二极管LEDG0,LEDG1来
显示。
三.实验步骤
1.在QUARTUSII软件下创建一工程,工程名为full_adder,芯片名为EP2C35F672C6;
2.新建Verilog语言文件,输入如下半加器Verilog语言源程序;
module half_adder(a,b,s,co);
input a,b;
output s,co;
wire s,co;
assign co=a & b;
assign s=a ^ b;
Endmodule
3.保存半加器程序为,进行功能仿真、时序仿真,验证设计的正确性。
其初始值、功能仿真波形和时序仿真波形分别如下所示
4.选择菜单File→Create/Update→Create Symbol Files for current file,创建半加器模块;
5.新建一原理图文件,在原理图中调用半加器、或门模块和输入,输出引脚,按照图1所示连接电路。
并将输入ain,bin,cin连接到FPGA的输出端,便于观察。
完成后另保存full_adder。
电路图如下
6.对设计进行全编译,锁定引脚,然后分别进行功能与时序仿真,验证全加器的逻辑功能。
其初始值、功能仿真波形和时序仿真波形分别如下所示
7.下载
采用JATG方式进行下载,通过SW0,SW1,SW2输入,观察LEDR[0],LEDR[1],LEDR[2],LEDG[0],LEDG[1]亮灭验证全加器的逻辑功能。
波动波动开关并观察红色、绿色LED的变化,验证设计的正确性。
结果验证正确。
四.思考题
1.为什么在实验步骤3中,将半加器保存为half_adder,可否保存为full_adder
答:不能,因为在程序中,module half_adder(a,b,s,co)已经给程序定义了一个名字叫half_adder,VHDL语言中,要求程序名与实体名一致,因此保存的文件名必须和程序名一致,否则在编译程序的时候就会出现错误。
2.对电路进行功能仿真与时序仿真时,发现二者有什么样的区别
答:功能仿真就是将综合后的VHDL网表文件再送到VHDL仿真器中所进行仿真。
这时的仿真仅对VHDL描述的逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计的要求,仿真过程不涉及具体器件特性,如延时特性。
时序仿真就是将布线器/适配器所产生的VHDL 网表文件送到VHDL仿真器中所进行的仿真。
该仿真已将器件特性考虑进去了,因此可以得到精确的时序仿真结果。
总而言之,功能仿真不需要综合,所以也不需要延时,时序仿真要走完整个电路要计算各个模块的时延,所以要延时。
3.什么要进行引脚锁定
答:每种芯片的不同引脚(pin)对应着不同的功能。
比如,有的引脚对应着发光二极管,有的是数码管的控制端,有的是输入时钟;FPGA一般都有几百个管脚,我们的设计也会有很多管脚,进行引脚锁定,编引脚接到到了FPGA的哪一个管脚上,如果不进行引脚锁定,编译,下载后就无法知道你设计的模块中的哪一个信号练到了FPGA的哪一个管脚上。
如果只是进行编译,综合,并不下载,就不需要引脚锁定,如果想把程序编译综合后下载到FPGA去运行,就必须进行引脚锁定,锁定后重新编译综合,然后下载,验证。
4.采用层次结构法描述电路有什么样的优点
答:可以大大降低设计成本,缩短设计周期;极大地简化设计文档的管理;提高大规模系统电子设计的自动化程度;设计者拥有完全的自主权,再无受制于人之虞;良好的可移植与可测试性,为系统开发提供可靠的保证;能将所有设计环节纳入统一的自顶向下的设计方案中;在系统板设计结束后仍可利用计算机对硬件系统进行完整的测试。