首页
学习
活动
专区
圈层
工具
发布
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文章详情

都是pin,有什么区别

打开任何阶段的DCP,选中一个cell,按F4,都会显示其Schematic视图。在这个视图中,可以清楚地看到每个cell的pin。小到一个触发器、查找表,大到用户的RTL模块甚至整个顶层设计,都有相应的pin。这里,我们重点了解一下pin的特征,借助这些特征可以帮助我们高效地搜到到目标pin。

Pin的REF_PIN_NAME属性

类似于每个Cell都有REF_NAME,每个Pin都有REF_PIN_NAME。例如,设计描述的触发器映射为SLICE中的FF(这里为FDPE),其时钟管脚的REF_PIN_NAME是C,使能管脚的REF_PIN_NAME是CE,输入数据管脚的REF_PIN_NAME是D,复位管脚的REF_PIN_NAME是PRE,输出数据管脚的REF_PIN_NAME是Q。

可以看到,这里触发器的REF_PIN_NAME是固定不变的,例如,无论RTL代码中触发器的时钟如何命名,其REF_PIN_NAME都是C。此外,REF_PIN_NAME也是唯一的,也就是说同属于同一个cell的不同pin,其REF_PIN_NAME是不同的,据此可找到目标pin,如下图所示,这里要找到目标cell的时钟管脚。

Pin的DIRECTION属性

Pin的另一个重要属性是DIRECTION。这个不难理解,其实就是表征pin是输入管脚还是输出管脚。据此,可以只获得输入管脚或者输出管脚。如下图所示,通过DIRECTION值为IN可得到所有的输入管脚;通过DRIECTION值为OUT可得到所有的输出管脚。

Pin的IS_X属性

这里IS_X是对IS_CLOCK、IS_CLEAR、IS_ENABLE、IS_PRESET、IS_RESET和IS_SET的统称,分别表示是否为时钟管脚、异步复位管脚、同步使能管脚、异步置位管脚和同步置位管脚。这类属性其TYPE为Bool,其值非0即1。例如,对于时钟管脚,其IS_CLOCK的值为1,IS_CLEAR的值为0。利用此属性也可以过滤出目标pin。例如,借助IS_CLOCK搜索到目标时钟管脚,如下图所示。

Pin的IS_LEAF属性

这个属性非常重要。借助下面的电路图,我们解释一下什么是leaf pin。图中pin 1是cell rst_gen_i0的pin,pin 2是cell reset_bridge_clk_rx_i0的pin。pin 1和pin 2通过net相连,但两者均不是底层单元的pin。其对应的底层单元的pin是图中触发器的PRE管脚。用IS_LEAF属性可判定该pin是不是leaf pin。

get_pins中的-leaf选项

在使用get_pins时,有个选项-leaf,其目的是只获取leaf pin。结合上图,假如已获得连接pin 1和pin 2的net。通过该net获取与该net相连的输入管脚。如果添加选项-leaf,则获得最底层的leaf pin。对比添加-leaf选项和不添加-leaf选项的输出值,观察两者的差异,体会-leaf选项的含义。

如果pin是多位的,选中这个pin,在property窗口的Magnify目录下,会显示该pin的具体组成与连接关系,如下图所示。

如果需要同时获取这些pin,可使用通配符“*”,具体命令如下图所示。

Pin还有其他重要的属性,例如IS_CONNECTED,借助该属性可确定pin是否悬空。Pin的这些属性可以在其property窗口中查看。

下一篇
举报
领券