python编写脚本方法

FPGA/ASIC技术

192人已加入

描述

对于具有484个引脚的芯片,如果手动一个一个设置引脚,必然是一场噩梦。网上有使用Capture进行自动导入的帖子,不过没有找到AD方面的帖子。本文使用python,编写脚本,自动分配引脚。一切重复单调的工作,都交给python吧。
 

元件库

1、打开已有的原理图库文件,或者新建。
2、添加->命名。
3、工具->新部件。
4、放置->矩形。

FPGA芯片pkg文件

这个文件包含了对应型号FPGA芯片的引脚说明。ug475 
在第2章中,找到pkg文件链接,保存到本地。比如我需要的是xc7a100tfgg484pkg.txt 
新建一个xls表格文件,将txt导入。(数据->自文本)

python工具

使用python的模拟鼠标键盘输入插件,编写几行代码,就可以实现。关于python如何模拟鼠标键盘输入功能,可自行百度解决。
def createPin(sum):
x = 900
y = 114
delta = 8
mouse_click(500, 300)
key_input('pp')
for i in range(0,sum):
mouse_click(x, y+i*delta)
mouse_rclick(500, 300)

这段代码的作用是在矩形框上新建引脚,想想自己手动是怎么建的,这个代码就是怎么写的。
def setPin(str):
str = str.replace(' ',' ')
str_split = str.split(' ')
mouse_dclick(100, 567)
key_input(str_split[1].lower())
win32api.keybd_event(VK_CODE['tab'],0,0,0)
win32api.keybd_event(VK_CODE['tab'],0,win32con.KEYEVENTF_KEYUP,0)
time.sleep(0.1)
key_input(str_split[0].lower())
win32api.keybd_event(VK_CODE['enter'],0,0,0)
win32api.keybd_event(VK_CODE['enter'],0,win32con.KEYEVENTF_KEYUP,0)
time.sleep(0.1)

def setPins():
file_object = open("data.txt",'r')
for str in file_object:
setPin(str.strip(' '))

这段代码的作用是设置每个pin的属性,从data.txt文件中读取每一行,每一行形如“H8 VCCINT“。第一个是引脚位置编号,第二个是引脚名称。
if __name__ == "__main__":
#make sure input mathod is English
createPin(50)

#make CapsLK is Clicked
#setPins()

这是main函数,先执行createPin(50),自动创建50个引脚,可能需要调整矩形的位置。然后注释createPin(50),执行setPins(),自动设置每个引脚的属性。
注意,由于引脚很多,一般原理图是分BANK,所以,每次需要把xls的Pin和Pin Name两列数据,分BANK复制到data.txt中。第一次,复制BANK14的引脚数据,第二次,复制BANK15的引脚数据。其实可以直接用python读取xls文件读取引脚数据,后面在完善吧。

还需要做的事情

做完原理图,还需要做封装,可以使用向导,制作起来还是很方便的。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分