OpenFPGA系列(五)FPGA -Verilog之Fabric 网表组织结构

OpenFPGA系列(五)FPGA -Verilog之Fabric 网表组织结构,第1张

文章目录 一、顶层网表二、Logic Blocks三、Routing Blocks四、基础模块
转载请注明出处!
作者:雪天鱼
OpenFPGA Shell中包括了 VPR、FPGA-Verilog、FPGA-SDC和FPGA-Bitstream。

图1 OpenFPGA Flow

这里我打算从FPGA-Verilog入手学习。
FPGA-Verilog 所生成的网表都保存在该次 Task 运行目录中,网表结构如下图所示:

图2 Fabric 网表文件组织结构

以之前跑的 demo 为例:

图3 Fabric 网表所在的顶层文件夹

这些网表文件所建模的 Fabric 如下图所示:

图4 所建模的Fabric架构
一、顶层网表 fabric_netlists.v:这个文件定义了 fpga_top.v 使用的所有的相关Verilog netlist的绝对路径。这方便仿真器和后端工具添加网表,只需要将此一个文件添加到仿真器或后端项目即可。fpga_top.v: Fabric 顶层模块fpga_defines.v:定义了一个Flag,define ENABLE_TIMING,当此变量为1时,Verilog模块中定义的延时数据都有效,仿真器收敛速度更快。

这里我将所有的网表文件都导入了Vivado,模块组织结构如下图所示:

图5 Verilog模块结构层次
二、Logic Blocks

所对应的文件夹为lb,其包含文件有:

图6 lb 文件夹

这些.v文件中包含所有用来建模CLB的模块、异构块以及 I/O 块,可参考图4,即对应 CLB、DSP Block、I/O Block 以及 Block RAM。

.v:对于 VPR 架构描述中定义的每个 ,将会生成对应的一个Verilog网表来建模其内部结构。

.v:对于 VPR 架构描述中定义的标签的子标签pb_type,将会生成对应的一个Verilog网表来建模其内部结构。

三、Routing Blocks

所对应的文件夹为routing,其包含文件有:

这个文件夹的Verilog文件用来建模开关盒SB和连接盒CB,可参考图4,即X-Connection Block、Y-Connection Block以及Switch Block。

sb__.v:对于VPR布线资源图生成器所创建的每个开关盒SB,都有对应的一个.v文件生成对其进行建模,代表此SB在 FPGA Fabric中的坐标。

cbx__.v:对于VPR布线资源图生成器所创建的每个X方向连接盒CBX,都有对应的一个.v文件生成对其进行建模,代表此CB在 FPGA Fabric中的坐标。

cby__.v:对于VPR布线资源图生成器所创建的每个Y方向连接盒CBY,都有对应的一个.v文件生成对其进行建模,代表此CB在 FPGA Fabric中的坐标。

四、基础模块

所对应的文件夹为sub_module,其包含文件有:

这个文件夹的Verilog文件用来建模逻辑块LB和路由块RB,可参考图4。

luts.v:对查找表建模wires.v:对互连线建模memories.v:对CCFF/SRAM建模muxes.v:对用于布线的多路选择器进行建模inv_buf_passgate.v:对反相器、缓冲器以及传输门进行建模local_encoder.v:对编码器和译码器进行建模user_defined_templates.v:用户可以参考此文件去建模自定义的基础模块。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/1298703.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存