特权同学

Virtual Pin

0
阅读(2109)

记得 之前有网友提出过在Quartus II编译完成后的Flow Summary里出现的Virtual Pin,如图1所示。那它到底是怎么回事呢?

图1 Flow Summary

Virtual Pin即虚拟管脚。在实际应用中,通常对于一个大的设计工程,Team Leader会将整个 工程划分几个模块分别交给数位工程师完成。而对于一个固定的工程,它所使用的总的I/O数量是预先 按需求定义好的,也就是说最终要使用的FPGA器件的I/O数 量是一定要满足要求的。但是,在划分的几个模块中,它们之间也许不仅有需要分配给实际I/O的信 号,更多的是与内部其他模块间相互通信的信号。这些信号在独立的模块中,独立的设计编译中,他们总的IO数 量很可能超出所选用FPGA器件的I/O数 量,因此导致编译报错。另外,有时我们也会对一些IP核做测试,而这个测试只是简单的把这个IP核的所有接口都引出来,有时我们所需要使用的器件的I/O数 量不够用,也会导致编译报错。怎么办?

Quartus II的Virtual Pin就能解决这些问题。想必说到这里,大伙也明白了这个Virtual Pin做什么用了。对,它就是要把工程里定义的I/O不 作为需要连接到器件I/O上的I/O。

那么这个功能如 何使用呢?很简单,图1中Flow Summary里 对应的工程现在使用了可用104个I/O的55个,我们添加100个名为test_pin的output I/O,直接编译肯定 报错。在Quartus II的Tcl Console中 输入以下tcl命令:

set_instance_assignment –name VIRTUAL_PIN ON –to test_pin

然后重新编译, 得到如图2所示的Flow Summary。 使用了100个virtual pins。 正是前面所添加的test_pin。

图2 添加virtual pins后的Flow Summary

如果需要取消这 个virtual pins设置,那么输入tcl命 令:

set_instance_assignment –name VIRTUAL_PIN OFF –to test_pin

这个语法是固定 的,对于不同的需要设置virtual pins的管脚,只要替代前面的test_pin名字即可。

Baidu
map