利用excel制作FPGA点位表

目录

摘要:

一、将网表文件导入excel

二、将FPGA的封装文件导入excel

三、将封装文件中的bank信息添加到网表文件中

四、添加IO电平


摘要:

使用电路绘图软件设计FPGA相关的原理图时,需要出一份FPGA点位文件,以供逻辑设计使用。

本文以mentor VX1.2为例,借助excel,说明了如何出一份FPGA点位文件。

思路是利用excel,将FPGA的封装文件,和电路图网表文件中的信息,按照管脚号进行完善合并。

所需文件:

1、电路网表文件(\PCB\LogFiles下的SchematicNetlist.txt)

2、FPGA封装文件(去官网下载,一般是txt文件)

工具:

excel

一、将网表文件导入excel

SchematicNetlist.txt中的内容格式如下:

Schematic Net Listing
-------------------------------- -------------------------------- --- --- ------ --- --- ------ ------ - -------------------- ---
Part                             Reference                        Sym Sub    Pin Eqv Sub   Pin     Pin Phantom    Net         Net
Number                           Designator                       Num Typ    Id  Cls Pak   Text    Num Flag       Name        Num
-------------------------------- -------------------------------- --- --- ------ --- --- ------ ------ - -------------------- ---
XC7K410TFFG900                   U1                                11  12     10  10  12 T22       772 0 FLASH_D6            (2-59-13)
XC7K410TFFG900                   U1                                11  12     11  11  12 T23       773 0 FLASH_D7            (2-58-13)

我们需要关注的是

Part  Number:FPGA型号

Reference Designator:FPGA的元件位号

Pin Text:FPGA管脚号

Net Name:FPGA管脚网络名

其实如果要求不高,这份文件基本就可以了,但是对于设计者而言,仍缺少输入输出方向和IO电平标准。

FPGA的IO输入输出方向需要根据网络名手动添加,而电平标准是跟IO所在bank的供电电压有关的,所以需要将封装文件中的bank信息添加进来。

下面首先将SchematicNetlist.txt文件导入到excel中。

新建一个excel文件,“数据”——“自文本”

选择SchematicNetlist.txt,导入

选择“分隔符号”

勾选“空格”

点击“完成"

使用默认区域,”确定”

转换来的文件视图如下

在其中筛选出FPGA,并将无用的信息删除,得到如下信息

网表就转换好了。接下来导入FPGA的封装文件

二、将FPGA的封装文件导入excel

同样使用excel的“数据”——“自文本”转换方式,方法与上面相同,不再赘述。

为了方便,可以将封装文件转换到同一个excel文件的Sheet2中,转换好后如下

接下来是关键的一步,需要将封装文件的数据按照管脚号进行升序排列。

因为接下来我是用lookup函数查找添加信息,而lookup函数是采用的二分法搜索,所以必须首先把被搜索内容按序排列,否则无法返回正确的搜索结果。

 排序后如下所示

三、将封装文件中的bank信息添加到网表文件中

返回网表文件(Sheet1)中,添加bank和PinName列

在bank所在的第一个空行输入函数

=LOOKUP(Sheet1!C4121,Sheet2!$A$2:$A$901,Sheet2!$D$2:$D$901)

其中:

Sheet1!C4121为所要搜索的关键字;

Sheet2!$A$2:$A$901为Sheet2(封装文件)中管脚号所在列;

Sheet2!$D$2:$D$901为bank号所在列。

这里要注意的是,需要使用绝对引用,也就是需要使用 $ 符号,否则向其他单元格填充格式时,搜索范围会随着序号的累加而越来越小,从而返回错误结果。

输入第一个函数后,用快速填充手柄向下依次填充即可

同理,也可以将封装文件中的PinName添加进来。效果如下

四、添加IO电平

复制Sheet1的该区域,将其拷贝到Sheet3中,拷贝时只拷贝数值。然后对Sheet3中的内容按照bank号进行排序

如果直接对Sheet1按照bank号进行排序,会出现公式引用错误的现象,导致bank号错乱。这里我为了简便,将其包含的公式去掉,只将数值拷贝过去,方便操作。

这个时候还是没有IO电平,如果bank数量不多,就可以手动添加。如果数量比较多,就需要设置一个自动填充方法。

数量比较多的话,使用IF语句是不太合适的,那样嵌套数量会很多,非常容易出错。

这里仍然使用lookup函数

还是在原来的excel文件里,新建一个Sheet4,在Sheet4里将规则写下。这里注意一定要把所有的bank都列全,并且要按序排列。

比如bank115~bank118,由于其是GTX,其IO电平可以不用关注,但是如果不添加的话,经过lookup函数搜索后,这几个bank对应的电源就会是CMOS1V8,会出现明显的错误。这是由于lookup二分法的搜索原理导致的。

仍然使用上述同样的办法,将IO电平添加进去。最终结果如下

到这里还需注意一点,比如虽然是同一个bank供电,但是个别管脚电平可能还不完全一致。比如同样是2.5V供电,单端IO是CMOS2V5电平,但是差分IO就是LVDS电平。所以还需要在此基础上进一步检查,修正个别IO的电平。

猜你喜欢

转载自blog.csdn.net/chenxuol/article/details/82820459