在系列文章: Verilog TestBench 中,作者将写一系列简单得发指的 Verilog 代码与 Demo,在这个过程中致力于发现了解 Verilog 的可综合代码综合特性,EDA 工具工作细节等 FPGA 知识。
首先我们来给自己的词汇库丰富两个词汇量instantiation 例化
inference 推译
推译和例化是两种在 FPGA 设计中,添加元件的方式。两种方式的关系从开发者的角度来说:例化是开发者主动在工程中添加 ip 核, FPGA 库原语(primitive)或者宏单元实现用户逻辑功能。
推译则是综合工具分析开发者的 RTL 代码,自动找出某种最为合适的原语或者宏单元作为硬件映射,实现用户的 RTL 代码的逻辑功能。
例化
例化在 verilog 中类似软件编程中的例化对象概念。即通过例化,在当前源文件中,调用一个现有的模块(或者 ip 核,可以使用开发工具生成),并指定例化模块的模块名以及端口的连接,举个例子:
wire 连线a;
wire 连线b;
wire 连线out;
and_gata(模块本身的名字) my_andgate(我们例化的二输入与门的名字) (
.模块的端口 a (连线a),
.模块的端口 b (连线b),
.模块的端口 out (连线out),
);
即实例化一个 二输入与门模块,命名为 my_andgate。并将连接线 连线 a/b/out 连接到实例化的 my_andgate 模块的端口 a,b,out。关于模块本身的名字和实例化模块的名字,不知道这么解释会不会比较容易理解:
int a = 1;
//int:(模块