在绘制电路原理图时,FPGA器件的管脚非常多(少则200多个,多则上千个),手工一不小心就可能出错。Altera提供了其所有器件的Cadence原理图和PCB的封装库,可以到http://www.altera.com.cn/download/board-layout-test/pcb/pcb-cadence.html下载。
然而,官方的Cadence库也存在一些问题:我在使用Altera的EP2C8F256原理图封装时,居然倒不出网表。通过查看日志文件的“错误信息”,
Loading... e:\mydesigner\cadence\dsp_sound_prj\dsp_sound\sch\allegro/pstxnet.dat
ERROR(SPCODD-409):
Reference Designator: U7. Error at line 3422 in file e:\mydesigner\cadence\dsp_sound_prj\dsp_sound\sch\allegro/pstxnet.dat. Could not create new pin inst: GND# A1 .
Schematic Instance: @dsp_sound.root(sch_1):fpga@dsp_sound.\02fpga\(sch_1):ins939036@ep2c8.\ep2c8f256g.normal\(chips) (MODULE: 02FPGA; PART: EP2C8F256). Check the symbol for consistency of pin definition.
ERROR(SPCODD-383): Error at line 3422 in file e:\mydesigner\cadence\dsp_sound_prj\dsp_sound\sch\allegro/pstxnet.dat. Error loading the net list file
#82 Error [ALG0036] Unable to read logical netlist data.
根据错误信息提示,我找到pstxnet.dat文件的3422行:
3417 NODE_NAME U7 A16
3418 '@DSP_SOUND.ROOT(SCH_1):FPGA@DSP_SOUND.02FPGA(SCH_1):INS939036@EP2C8.EP2C8F256G.NORMAL(CHIPS)':
3419 'GND#A16':;
3420 NODE_NAME U7 A1
3421 '@DSP_SOUND.ROOT(SCH_1):FPGA@DSP_SOUND.02FPGA(SCH_1):INS939036@EP2C8.EP2C8F256G.NORMAL(CHIPS)':
3422 'GND# A1 ':;
3423 NODE_NAME U7 J9
3424 '@DSP_SOUND.ROOT(SCH_1):FPGA@DSP_SOUND.02FPGA(SCH_1):INS939036@EP2C8.EP2C8F256G.NORMAL(CHIPS)':
3425 'GND#J9':;
这是网表数据文件,和上下文对比分析下就想到了:Cadence原理图封装的管脚号中不能含有空格,就是因为3422行的Cadence网络名存在空格才无法生成网表,
3422 'GND# A1 ':;
问题找到了,于是修改了下EP2C8F256的第G个Part的管脚名就好了。
唉,官方的库也是人做出来的,总免不了也有出错的时候!回想起当初刚使用STM32的时候,STM32的库不也是各种问题吗?