FPGA实验一: 原理图与VHDL设计初步
实验目的: 通过1位全加器的详细设计, 掌握原理图输入以及Verilog的两种设计方法。软件基于quartusII 13.0版本,开发板基于Intel DE2-115。1位全加器可以用两个半加器及一个或门连接而成, 因此需要先完成半加器的设计。下面将给出使用原理图输入的方法进行底层元件设计和层次化设计的主要步骤。
一、输入原理图实现1位加法器
1.新建工程
点击next后,选择路径及名称
选择芯片 直接next,之后到达完成界面,这里会看见关于整个工程的一些信息,核对 一下是否正确,然后点击“finish”。此时界面上会出现顶层文件名和项目名:
2.创建原理图文件
-
首先选择File->New,进入后选择Block Diagram/Schematic File 选择元件
and2 xor
-
绘制原理图
-
存盘编译
保存文件,并编译
-
将设计项目设置成可调用的元件
3.半加器仿真
点击【File】→【New】,选择【University Program VWF】。
选择【Edit】→【Insert】→【Insert Node or Bus…】。
点击【Node Finder…】,然后点击【List】会罗列出四个管脚,点击【>>】选择全部,然后点击【OK】,自动补全了【Name】,然后点击【OK】。 出现如图的波形图文件 编辑信号
仿真 仿真成功,自此半加器设计完成
4.全加器仿真
-
为了建立全加器的项层文件,必须再打开一个原理图编辑窗,即新建一 个原理图文件。方法同前,即再次选择菜单" File”→“new",原理图文件 编辑输入项"Block Diagram/Schematic File"。
添加half_adder和or2
-
绘制原理图 保存文件,并编译 通过tool->Netlist Viewers->RTL Viewer,查看电路图
-
同上创建一个向量波形文件
-
设计波形 仿真
二、Verilog实现1位加法器
1.创建verilog文件
2.添加代码如下
module full_adder( //输入信号,ain表示被加数,bin表示加数,cin表示低位向高位的进位 input ain,bin,cin, //输出信号,cout表示向高位的进位,sum表示本位的相加和 output reg cout,sum ); reg s1,s2,s3; always @(ain or bin or cin) begin sum=(ain^bin)^cin;//本位和输出表达式 s1=ain&cin; s2=bin&cin; s3=ain&bin; cout=(s1|s2)|s3;//高位进位输出表达式 end endmodule
3.保存并编译文件
通过tool->Netlist Viewers->RTL Viewer,查看电路图
4.仿真实现
同上步骤一致
三、硬件测试
-
选择目标芯片
cycloneIVE系列的EP4CE11529C7 (若在新建工程时就已经指定目标芯片,则这步可以省略),在菜单中选择,“assignments→device…” 如图:
-
引脚绑定
设置如下
-选定了引脚之后原理图文件一定要再编译一次,才能真正把引脚绑定上。引脚绑定好 并编译过的文件如图: -把开发板接上电源, USB 接口接电脑,点击按钮
-
添加驱动
-
烧录
实验结果
