深圳市航顺芯片技术研发有限公司
直播中

汪潇潇

7年用户 833经验值
私信 关注
[问答]

怎样去设计一种基于FPGA的1位全加器

怎样去设计一种基于FPGA的1位全加器?
如何对基于FPGA的1位全加器进行仿真

回帖(1)

方娟

2021-9-17 17:45:39
一、原理图输入
环境:QuartusⅡ13.0 && 开发板:Intel DE2-115
1.1 创建工程
选择目标芯片:CycloneIVE系列的EP4CE115F29C7
1.2 原理图输入
新建Block Diagram,输入and2
调入xnor、输入输出引脚input、output
连接好电路图,并修改输入输出引脚名字
保存编译
1.3 将设计项目设置成可调用的元件
为了构成全加器的项层设计,必预将以上设计的半加器full_adder.bdf设置成可调用的元件。在打开半加器原理图文件full_adder.bdf的情况下,选择File中的Create/Update→Create Symbol Files for Current File项,即可将当前文件full_adder. bdf变成一个元件符号存盘,以待在高层次设计中调用。

1.4 半加器仿真
新建波形文件
输入波形文件
设置输入波形取值
仿真,先保存文件为half_adder.vwf,然后点击

完成
1.5 设计全加器顶层文件
File-》New-》Block Diagram
选择底层文件半加器的存储名“half_adder”调出半加器
再调出其他元件or2
连好电路图
保存编译
Tools-》Netlist-》RTL Viewer
1.6 全加器仿真&同1.4
结果如下
1.7 硬件测试
引入pin引脚
网上查询相应引脚图
Assignments→Pin Planner或者点击如下图位置

Tools-》Programmer第一次下载需要安装硬件
没有altera USB blaster的需要安装驱动,下面是下载到硬件完成
二、Verilog编程
2.1 创建工程
2.2 Verilog代码
新建Verilog文件
代码如下
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;
//高位进位输出表达式endendmodule
保存并编译文件
Tools-》Netlist-》RTL Viewer
2.3 仿真
新建波形文件
输入波形文件
设置输入波形取值
保存
功能仿真,出现错误
Tools-》Launch Simulation Library Compiler,在下图位置选择保存文件的***simulationqsim位置,然后start compilation
重新功能仿真

时序仿真
举报

更多回帖

发帖
×
20
完善资料,
赚取积分