买芯片网
XILINX(AMD),ALTERA(INTEL),LATTICE
聚焦三大FPGA芯片品牌,强大的现货交付能力
Xilinx,Altera,Lattice
买芯片网代理Altera(英特尔)、Lattice(莱迪思)、Xilinx(赛灵思 AMD)
首页 >> Xilinx新闻 >> 关于高阻态和OOC(out of context)综合方式
关于高阻态和OOC(out of context)综合方式

Xilinx Vivado工具支持仅将系统设计的一部分进行综合,即OOC(out of context)综合方式。OOC综合方式的流程就是将设计的某个模块单独完成综合操作,这会带来如下可能性:

买芯片网专注整合全球优质赛灵思代理商现货资源,是国内领先的Altera(英特尔)、Lattice(莱迪思)、Xilinx(赛灵思 AMD)芯片采购服务平台,买芯片网轻松满足您的芯片采购需求.

通过综合实现这个模块的快速迭代,不用综合系统的其余部分整个设计的迭代也更快了

利于系统其余部分的快速迭代,如果某部分确定稳定不变了,可以对这个模块进行OOC综合操作,保留这个综合版本,这样就可以方便迭代其余部分

某个模块的改变只需要再对此模块进行综合即可,节省的时间用于模块功能设计

OOC综合方式非常适合IP核的设计,我们可以将自己的IP核采用OOC方式进行综合然后使用综合后的输出结果

这意味着当我们使用IP核时我们不需要在进行IP核的综合操作,就可以完善系统设计

然而如果设计中存在三态(高阻态),OOC综合操作就会受到影响

FPGA仅支持I/O输出端口的高阻态,在器件内部是不允许的

如果你使用OOC综合方式,Vivado工具并不知道某个具体的信号是连接I/O输出还是在器件内部进行连接

最后,综合工具会将这个高阻信号转换为某个逻辑值,而不是最为高阻态进行综合

举个例子,下面的代码就会带来不好的影响:
assign my_signal = enable?din1:1’bz;

通过OOC方式综合后,my_signal信号值就不会是高阻值Z了

Vivado综合有两个选择:
1. 综合操作完全符合HDL代码
(当这个模块单元与其余部分有连接时,如果这个信号会最为I/O输出,那么就不会有什么影响)
2. 不保留三态

Vivado工具会选择第2项,原因是有可能出现任何问题之前最好让用户知道

这种OOC使用模式比较受到IP开发者的欢迎,但是如果IP集成到大型系统中出现问题就比较麻烦了,因此应该避免第1项

这同时也会给我们带来如下问题:
如果my_signal信号只连接到外部输出I/O呢?
举个例子,所有可用的情况下my_signal都连接到I/O接口,我想让它驱动一个三态
我也希望能够使用OOC方式对这部分模块进行综合——同时保留三态

满足上述需求的方式就是在RTL中实例化一个三态缓存(buffer)

具体如下所示:
OBUF u1(.l(din1), .T(n_enable), .O(my_signal));

这样就能够保证即使采用OOC综合方式,my_signal也会保持三态值

同时,如果该模块与其他部分有连接,那么这个连接也是不可用的(例如my_signal信号与“内部”模块有连接),综合过程会报错

 

Xilinx中国海量优质的信息资源、行业资讯、最新开发方案等资讯信息平台。

Xilinx芯片今日搜索排行榜(2024年5月17日)
XC3042A-7PQ100C
嵌入式 - FPGA(现场可编程门阵列)
产品封装:100-BQFP
XC7A50T-2CSG325I
嵌入式 - FPGA(现场可编程门阵列)
产品封装:324-LFBGA,CSPBGA
XC6SLX100T-4FGG900C
嵌入式 - FPGA(现场可编程门阵列)
产品封装:900-BBGA
XCS40XL-4BG256C
嵌入式 - FPGA(现场可编程门阵列)
产品封装:256-BBGA
XC7Z030-1FB484I
嵌入式 - 片上系统(SoC)
产品封装:484-BBGA,FCBGA
XC4010E-4PC84I
嵌入式 - FPGA(现场可编程门阵列)
产品封装:84-LCC(J 形引线)
XC6VLX75T-1FF784C
嵌入式 - FPGA(现场可编程门阵列)
产品封装:784-BBGA,FCBGA
XC6SLX150-2FGG676I
嵌入式 - FPGA(现场可编程门阵列)
产品封装:676-BGA
Xilinx产品及其应用
Xilinx公司新闻
买芯片网轻松满足您的芯片采购需求
买芯片网,独家代理渠道,专注三大品牌:XILINX(赛灵思 AMD)ALTERA(英特尔 INTEL)LATTICE(莱迪思)