仿真器并非万能之神

2009-12-18 17:10:02来源: 互联网 关键字:仿真器  合成


      现在已经到了关键时刻。我们已经确定了电路板的设计原型,现正送回实验室进行测试。由于后期规格更改,以及在布线后信号完整性分析过程中发现的问题,这个项目比原计划滞后了两周。这对我而言并非坏事,因为说实话我需要这两周时间,以便将仿真用的测试台准备得停停当当。

      此项目采用 VHDL 编码,而且我采取了一种循规蹈矩的方案——保持层级结构,所有黑盒子 (Black-box)、原语和宏指令都采用全局声明(以便完成的设计具有更高的可移植性并且可以符合 IEEE 标准),而且主要是一种 RTL 类型的方案。当然,我的部分设计具有行为属性,要不然就是我完全忽略了 HDL 的主要优势 ––– 应用行为抽象的能力。

      因此我多费了点事,不过现在我可以开始启动仿真工作了。仿真进行了数毫秒,我对结果相当满意。我可以通过 Wave 编辑器测量占空比与周期得到了我希望的结果,复位逻辑按照我所预测的时钟周期数出现,时钟合成器运行正确无误。而且I/O 信号显示出我所希望的 1、0 以及三态。值得一提的是,我很清楚地记得我在几千行代码中,已经谨慎地避免了异步过程和时钟域交叉,最重要的是解决信号 (Resolved signal)。我想起学科导师曾经略带讽刺地说‘PCB 与芯片设计师才用三态’。

      开始时的信心百倍让我想冒点险,我决定将设计综合在一起。幸运的是,我使用的工具允许我轻松尝试多种不同综合引擎,因此我开始从其中一个内置引擎入手。因为项目中采用了几种复杂的行为状态机,需要花点时间进行优化,不过完成时出现了少数几个次要警告。到目前为止一切顺利。

      我的信心更足了一点,接着继续点击“创建 (Build)”按钮,接下来工作流程的“映射 (Map)”、“转换 (Translate)”、“布局布线 (Place and Route)”以及“位文件生成 (Bit File Generation)”,这些操作全部通过与芯片厂商工具的命令行接口在后台执行。映射设计进行了大约一分半就停止了,显示出一条有关 IBUFT 与 OBUFT 的难懂信息。唉……!我知道自己的好日子到头了,真是大梦初醒啊!

      我接下来通常会耸耸肩膀,然后切换到 FPGA 厂商的综合器,看看其优化器能否产生可以顺利布局与布线的结果。因此,点击几下鼠标之后我开始重新运行 “综合(Synthesis)”与“创建(Build)”。这次我注意到综合多少比以前快了一点。我心中燃起希望,因为厂商的引擎在进行较少程度的优化,而且将产生尽管更庞大、但更精确的实施方案。然后在映射过程中在同一地方嘎然而止,同样出现了让人费解的错误消息,然后是一条警告:
 
ERROR:NgdBuild:924 - bidirect pad net \'DATA_IO<15>\' is driving non-buffer
   primitives:
     pin I1 on block U_dspboard_fpga/fb_epb_intf_inst/n12g with type AND2B1
WARNING:NgdBuild:465 - bidirect pad net \'DATA_IO<15>\' has no legal load.

      我开始嘟嘟囔囔,旁边的同事眯起眼睛,像老鹰山姆那样斜眼着我。庆幸的是,我能够从消息屏幕中的错误消息中找到出现错误的代码行。双击与两个串联的缓冲区有关的第一个错误消息后我找到了以下代码片段:

DATA_IO  <= DATA_IN when CNTL_IN(4) = \'0\' -- write to Ext. Device
                    else (others => \'Z\');
DATA_OUT <= DATA_IO; -- data from core to CF (5000_0050)

      我最初的想法是“啊哈,我弄出了一个三态端口与多路复用器,多么好的想法呀?”。聪明而又经验丰富的读者一眼就能看清这个问题,但是这种错误会让 FPGA 新手难倒好几天,让人寝食难安,心力憔悴。我盯着这三行代码看了半分钟,意识到应该随便找张纸画出我最初的意图:

   

      现在我认识到,我之前认为综合引擎会明白我并不想在器件中加入高阻抗信号。实际上,当我再次查看错误与警告消息之后才清楚它就是这么干的:

 

      如果您是一名出色的 FPGA 设计人员并且确实阅读了数据手册与程序库指南,那么您立刻就会明白这是不可能的事情。我所知道的任何 FPGA 布线资源都不会允许这种连接。

[1] [2]

关键字:仿真器  合成

编辑:于丽娜 引用地址:http://www.eeworld.com.cn/FPGA/2009/1218/article_864.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:Actel扩展Core8051处理器以扩大支持范围
下一篇:追新逐热还是脚踏实地?跟上技术发展的步伐

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利
推荐阅读
全部
仿真器
合成

小广播

独家专题更多

TI车载信息娱乐系统的音视频解决方案
TI车载信息娱乐系统的音视频解决方案
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源
迎接创新的黄金时代 无创想,不奇迹
迎接创新的黄金时代 无创想,不奇迹
​TE工程师帮助将不可能变成可能,通过技术突破,使世界更加清洁、安全和美好。
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来

夏宇闻老师专栏

你问我答FPGA设计

北京航空航天大学教授,国内最早从事复杂数字逻辑和嵌入式系统设计的专家。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2017 EEWORLD.com.cn, Inc. All rights reserved