首页
学习
活动
专区
圈层
工具
发布
50 篇文章
1
资源利用率报告中的LUT和LUTRAM有什么区别
2
xilinx verilog语法技巧(三)--RAM的初始化
3
为什么推荐使用XPM?
4
Block RAM的基本结构
5
为什么要用XPM_MEMORY
6
Vivado中用于时钟操作的几个Tcl命令
7
影响FPGA时序的进位链(Carry Chain), 你用对了么??
8
动态时钟相位
9
动态时钟频率
10
如何缩短Vivado运行时间
11
你的FPGA设计有这些缺陷吗
12
report_utilization远比你想象的强大
13
vivado如何快速找到schematic中的object
14
FPGA中的CLOCK REGION和SLR是什么含义
15
FPGA中的BEL, SITE, TILE是什么含义
16
如何快速查找目标cell
17
都是pin,有什么区别
18
都是net,有什么区别
19
一张图看懂cell, pin, net, port
20
如何快速找到组合逻辑生成的时钟
21
【Vivado那些事】Vivado下头文件使用注意事项
22
Pblock可以这么画
23
关于Pblock的8个必知问题
24
常用的跟Pblock相关的Tcl命令
25
【Vivado】那些事儿-汇总篇
26
【Vivado那些事】Xilinx FPGA普通IO能不能直接接入PLL作为时钟输入
27
Storage Elements
28
D触发器都有哪几种类型?对应什么样的代码?
29
Xilinx 7系列FPGA逻辑单元理解
30
Vivado下查看芯片资源
31
对RAM初始化怎么做
32
干货:Vivado 直接修改RAM初始化文件,避免重新综合、实现的方法
33
借助Elaborated Design优化RTL代码
34
一张图理解什么是好的设计层次
35
9个关于SSI芯片的必知问题
36
Vivado 2018.3 report_qor_suggestions怎么用
37
Vivado 2019.1新特性(5):更新的report_qor_suggestions
38
Xilinx的高质量时钟输出ODDR原语【随路时钟】【全局时钟网络】【ZC706输出时钟】【ZYNQ】
39
FPGA中BEL Site Tile FSR SLR分别指什么?
40
跟I/O相关的几个命令
41
Vivado Non-Project模式
42
FPGA中降低时钟skew的几种方法
43
FPGA时序优化之Reduce MUXF Mapping
44
什么是Forwarded Clock?
45
几个常见问题
46
如何让同一层次的模块在布局时更紧凑一些
47
什么情况下要用OOC综合方式
48
Vivado 2019.1新特性(2):report_ram_utilization
49
URAM和BRAM有什么区别
50
write_first/read_first/no_change什么区别
清单首页FPGA文章详情

关于Pblock的8个必知问题

1. 一个Pblock为什么会显示内外两个矩形?

外层矩形,对应图中的粗紫色矩形,是Pblock的边界,显示了该Pblock所覆盖的FPGA面积。内层矩形,对应图中的细橙色矩形,表明了分配给该Pblock的资源与整个FPGA资源的比率。因此,我们只能调整外层矩形的大小来改变Pblock所占用的FPGA资源。

2. 如何用不同颜色显示嵌套的Pblock?

对于嵌套的Pblock,可以用不同的颜色显示。具体方法是:依次点击Tools -> Settings -> Colors -> Device,如下图所示。最多可修改三层嵌套的Pblock的颜色。

例如,将第二层Pblock用绿色显示,点击Apply之后,效果如下图所示。

3. 如何修改Pblock所包含的FPGA资源类型?

选中一个Pblock,在Pblock Property窗口的General子卡中会显示该Pblock的资源类型与范围,如下图所示。通过勾选其中的资源类型,可改变该Pblock是否包含这类资源。

例如,不勾选DSP48,一旦选中该Pblock,包含在该Pblock中的资源会以灰色显示,而未被包含的资源,也就是这里的DSP48则仍然是常规亮度。如下图所示,左侧为包含DSP48的Pblock,右侧为不包含DSP48的Pblock。

4. 能否让工具自动设置Pblock的位置和大小?

在Vivado中,如果已经创建了Pblock,依次选择Tools -> Floorplanning -> Place Pblocks,会弹出如下图所示对话框。这个界面显示了需要自动设置的Pblock,点击OK,工具就会自动调整Pblock的大小和位置。

5. 如何分析Pblock的资源利用率?

实际上,Pblock的资源利用率与整个工程的资源利用率分析方法是一致的,都可以用命令report_failfast来实现,只是一些选项设置不同而已。对于Pblock,可采用如下图所示方式。

生成报告如图所示,显示了Pblock资源利用率的指导值和实际值,Status为Review的需要格外关注。

6. 如何使得Pblock内部资源仅供Pblock对应的模块使用?

如果模块A分配给pblock_A,那么A只能使用pblock_A内部资源,但这并不能保证其他模块使用pblock_A内部资源。为了使得pblock_A中资源仅供模块A使用,可以设置属性EXCLUDE_PLACEMENT为true来达到此目的。但需注意,Pblock框住的只是逻辑资源而非布线资源,所以即使使用了该属性,其他模块也是可以使用该Pblock内的布线资源的。

7. 如何保证Pblock内部逻辑仅仅使用Pblock内部的布线资源?

默认情形下,一旦给某一模块分配了Pblock,就保证了该模块只能使用Pblock内部的FPGA逻辑资源,但并不能保证该模块只使用该Pblock内部的布线资源。换言之,Pblock框住的只是逻辑资源,不包括布线资源。这样,相应的模块还是有可能使用Pblock外部的布线资源。为了增强设计的复用性,尤其在层次化设计中,应保证模块只使用Pblock内部的布线资源,这可通过属性CONTAIN_ROUTING实现。具体方式如下:

8. 在只有布局或布线后的DCP的情况下,如何获取Pblock的范围?

每个Pblock都有一个属性GRID_RANGES,查询该属性即可获得Pblock的具体范围,同时也可获知其位置信息。具体方法如下图所示。可以看到,这里的GRID_RANGES的值与命令resize_pblock的设置相对应。

下一篇
举报
领券