资料介绍
描述
这是一个由 5 部分组成的博客,以下是链接:
第 2 部分:在 Spartan 6 FPGA 上使用 Xilinx ISE 的组合逻辑
第 3 部分:在 Cyclone-IV FPGA 上使用 Quartus Prime 的顺序逻辑
第 4 部分:在 Artix-7 FPGA 上使用 Vivado 的组合逻辑与顺序逻辑
第 5 部分:最终项目 - DE0 Nano 开发板上的 Pong 游戏
本博客介绍了在 Spartan-6 FPGA 上从头开始实现全加器,并概述了 Verilog HDL 编程风格。
FPGA设计流程:
我们来看第一步
1. 设计作品:
FPGA 设计输入可以通过两种方式完成,或者通过代表硬件描述语言的 HDL - 这是最常见的方法,或者通过原理图输入,其中可以拖放并将各种块连接在一起或集成两者。
我们将通过探索赛灵思 ISE 来讨论设计条目!
Xilinx ISE 入门:
全加器电路(逻辑)
该电路的功能非常简单,它增加了 3 位并给出了和和进位输出。
全加器真值表:
什么是组合逻辑?
组合逻辑是一种由布尔电路实现的数字逻辑,其中输出仅是当前输入的纯函数,电路不包含任何存储元件。
硬件描述语言 (HDL):
有很多 HDL,其中一些非常常用的 HDL 是 Verilog、VHDL、SystemVerilog。几乎所有 FPGA 供应商都支持这些 HDL 进行综合。
让我们在这个博客中谈谈 Verilog。Verilog中有3种建模风格。
a) 结构:用门来描述逻辑电路的结构,有时也称为门级建模。
b) 数据流:数据流建模根据从输入到输出的数据流来描述硬件。
c) 行为:这些包含程序语句,用于控制数据类型的模拟和操作变量。
a) 使用 Verilog 中的结构建模实现全加法器:
module Full_Adder (
input A, B, Cin,
output Sum, Cout
);
wire X1, A1, A2;
xor gate1 (X1, A, B),
gate2 (Sum, X1, Cin);
and gate3 (A1, A, B),
gate4 (A2, X1, Cin);
b) 使用 Verilog 中的数据流建模实现全加法器:
module Full_Adder (
input A, B, Cin,
output Sum, Cout
);
assign Sum = ( ( A ^ B ) ^ Cin ); // Sum = A xor B xor Cin
assign Cout = ( ( (A ^ B) & Cin ) | ( A & B ) ); // Carry out as the equation
endmodule
c) 使用 Verilog 中的行为建模实现全加法器:
module Full_Adder (
input A, B, Cin,
output reg Sum, Cout
);
always @ (A, B, Cin)
begin: add
{Cout,Sum} = A + B + Cin;
end
endmodule
为 FPGA 设计准备文件:
一个典型的 FPGA 设计有两组文件,一组文件包含指定设计的所有设计文件,另一组是约束文件,其中包含设计的所有约束,例如 FPGA 的时序约束和引脚映射。
保持设计模块化是一种很好的做法,以便于开发和调试。
top.v 文件(当 Verilog 用作设计语言时)用于实例化层次结构中单个顶层设计中的所有模块。
2、设计综合:
在 FPGA 综合过程中,高描述设计或 HDL 设计被转换为门级表示或逻辑组件。
现在综合设计
综合完成后,我们需要添加约束文件以将 FPGA 的引脚映射到逻辑元件。
创建一个新源并在选项中选择约束文件并为其命名。
几乎所有 FPGA 开发板供应商都提供了一个主约束文件,其中包含所有引脚及其到 FPGA 的映射。
复制并粘贴项目所需的引脚,例如,用于 Sum 和 Carry 的 2 个 LED,然后是 3 个用于 3 个输入的开关。
3、设计实现:
现在是实施设计的时候了。
实施工具将网表作为输入并进行优化、布局和布线。
4. 设计验证:
这是一个简单的全加器设计,因此不需要验证,但这样做是一个很好的做法。使用 Modelsim 验证设计
5. 生成编程文件:
编程文件用于对 FPGA 进行编程。该文件包含特定于 FPGA 的设计实现的所有信息。
6. 编程:
Xilinx ISE 有一个名为 iMPACT 的特定工具,用于对 FPGA 进行编程。
您将收到一条警告,要求您创建 iMPACT 文件,单击“确定”。然后 iMPACT 工具将打开,然后单击边界扫描,然后单击初始化链。
- PyTorch教程4.4之从头开始实现Softmax回归
- PyTorch教程3.4之从头开始执行线性回归
- 如何从头开始制作六足机器人
- 从头开始构建无人机
- Spartan-6 FPGA的配置教程说明 26次下载
- spartan-6 FPGA的配置资料说明 20次下载
- spartan-6 FPGA的时钟资源的用户指南资料免费下载 27次下载
- Spartan-6 FPGA块RAM的技术参考资料免费下载 13次下载
- spartan-6 FPGA可配置逻辑块的用户指南资料免费下载 16次下载
- 如何在spartan-6 FPGA中使用GTP收发器的详细资料说明 27次下载
- spartan-6 FPGA的设备引出线和包装规格介绍 8次下载
- Spartan-6-FPGA配置讲解 6次下载
- Spartan-6 FPGA电气特性 21次下载
- Spartan-6 FPGA Configuration User Guide 31次下载
- Xilinx-Spartan6 FPGA实现MultiBoot
- 从头开始设计扬声器系统 469次阅读
- FPGA设计:4位全加器代码以及仿真 3071次阅读
- 全加器的真值表 5.9w次阅读
- digilentAnvyl:Spartan-6 FPGA训练板介绍 3647次阅读
- digilent Spartan-6 FPGA 介绍 3826次阅读
- 如何从头开始进行数据科学项目 2525次阅读
- 什么是全加器 全加器工作原理 7.6w次阅读
- 全加器是什么?全加器和半加器的区别? 7.2w次阅读
- 一文详解Spartan-6系列IO Tile结构 8098次阅读
- 关于Xilinx公司出品的Spartan6系列FPGA的MultiBoot设计方案详解 9851次阅读
- Xilinx Spartan-6系列封装概述和管脚分配 9196次阅读
- Spartan-6 FPGA 的 ISE 工具快速入门视频 6893次阅读
- Spartan6开发中bufpll mapping error 2135次阅读
- 在用Spartan6生成的Clock时在maping遇到的问题 2704次阅读
- ZedBoard上的点灯签名实验(二):创建自定义IP 687次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多