Verilog代码和FPGA硬件的映射关系(二)

       你们可能会有这样的疑问,咱们编写的Verilog代码最终会在FPGA上以怎样的映射关系来实现功能呢?咱们以一个最简单的组合逻辑与门为例来向你们说明。RTL代码以下所示:工具

 1 //--------------------------------------------------
 2 module    and_logic(                
 3     input     wire    in1    ,    
 4     input    wire    in2    ,    
 5 
 6     output    wire     out        
 7 );                                            
 8 
 9 //out:输出in1与in2相与的结果
10 assign out = in1 & in2;                                  
11 
12 endmodule                        
13 //--------------------------------------------------

       代码编写完后依然须要点击“Start Analysis & Synthesis”图标进行分析和综合。而后双击“Netlist Viewers”下的“RTL Viewer”查看RTL视图。咱们能够看到两个输入信号通过一个与门后输出,和咱们代码设计的结果是彻底一致的。
在这里插入图片描述布局

图1

       点击“Start Compilation”图标全编译进行布局布线,而后打开Chip Planner视图。
Chip Planner打开后的界面如图2所示,咱们能够看到在版图模型中有一个块蓝色区域的颜色变深,说有该区域的资源被占用,在FPGA内部硬件结构简介中咱们知道这是一个逻辑阵列块LAB,咱们将该区域放大。
在这里插入图片描述学习

图2

 

       如图3所示,放大后能够看到蓝色变深的区域中有16个小块,这16个小块就是LE,其中只有一个LE的颜色变是蓝色的,说明该处的资源被使用了,双击蓝色的LE便可观察其内部的结构。
在这里插入图片描述spa

图3

       打开LE后内部的结构如图4所示,其中蓝色显示的是真实使用到的结构,灰色的是未使用到的结构,咱们能够看到有两个输入和一个输出,与RTL代码的描述是对应的,红色框就是查找表LUT。
在这里插入图片描述设计

图4

       你们可能仍是不理解LUT是如何实现咱们的与逻辑。咱们先来看一下与逻辑的真值表,以下所示:
在这里插入图片描述code

图5

       根据真值表能够看出输入,两个输入对应的输出一共有4种状况,LUT须要作的工做就是可以根据输入的变化对应输出正确的值。咱们能够LUT预先存储全部输出的4种状况,而后判断输入,对应输出就能够了。LUT的内部结构在Chip Planner中并无表达出来,可是咱们能够推断出来,如图5所示,为与门所对应的LUT内部结构图,其中LUT中存储的是4种输出状况,输入信号in1和in2经过多路器选择哪个存储在LUT中的值输出。图中展现的是当in1和in2输入的值都为1时,咱们能够看出存储在LUT的“1”从标注的红色路径中输出到out,LUT中存储的值会在综合工具综合时进行映射。这里咱们也不难看出LUT其实所充当的角色就是存储器RAM的功能,更直白一点说LUT就是个小RAM,因此咱们也能够用LUT来构成小规模的RAM用于存储数据,LUT所构成的RAM就是咱们常说的Distribute RAM,简称为DRAM。
在这里插入图片描述 blog

图6

 
       欢迎加入FPGA技术学习交流群,本群致力于为广大FPGAer提供良好的学习交流环境,不按期提供各类本行业相关资料!QQ交流群号:450843130
 在这里插入图片描述图片

相关文章
相关标签/搜索