原创 StateCAD——简介和使用心得

2007-10-27 10:43 10208 9 14 分类: FPGA/CPLD

    什么是StateCAD?StateCAD是Xilinx ISE中集成的一款FSM状态图输入和验证工具。StateCAD原本是Visual Software Solutions公司的主打产品,1994年底发布了2.0版本,那时还不支持Verilog HDL。Xilinx最初(2000.8)通过EDA ALLiance STARter项目在Foundation ISE版本和WebPACK ISE版本(这可就免费下载啦)中集成了该工具,当时的版本是5.03。随后(2000.11.02),Visual Software Solutions公司被Xilinx收购,其主要产品StateCAD和HDL Bencher被集成到了ISE开发环境中。 riple


    StateCAD采用图形化的输入方式,从最直观的状态转移图开始,支持直接生成AHDL、VHDL和Verilog HDL的代码,还支持测试平台的生成和状态转移覆盖率的测试。早期的StateCAD还支持C代码的生成,现在已经不支持了。 riple


    StateCAD由两个工具组成:StateCAD用于状态图输入和代码生成,StateBench用于测试。 riple


    网上介绍使用StateCAD的文章很多,在这里我就不介绍最基本的操作了。 riple


    我在两年前开始使用StateCAD,最初纯粹是为了偷懒。两年下来,采用StateCAD设计了几十个FSM,对这款工具的各项功能也有了清晰的认识。随着使用经验的不断积累,我对于在工程开发中如何规范、高效地使用StateCAD设计FSM,有了一定的心得: riple


    1. 不要使用wizard,手工绘制和编辑配置选项即可完成所有功能。只建议初学者使用wizard。 riple


    2. 不要使用复杂的输出逻辑,只在状态图中设计简单的输出逻辑,复杂的输出逻辑可以通过在自动生成的代码之外采用wrapper的方式手工添加到设计中。 riple


    3. 不要试图采用StateCAD生成整个设计,只把它用于设计的核心控制部分,数据通路的代码手工编写和维护。 riple


    4. 设计中如果需要多个FSM,不要试图在同一幅图中设计多个状态机,可以建立多个绘图文件,每幅图设计一个状态机。 riple


    5. 设计中如果需要多个FSM,给每个状态指定一个唯一的状态名,避免不同的状态机中的状态重名,最好是通过前缀或后缀的方式加以区分。 riple


    6. StateCAD是一款“老”工具,不支持鼠标滚轮,不支持长的变量名,所以不适合设计过于复杂的FSM,可以考虑从算法上把复杂FSM拆分为多个简单的小FSM分别加以实现。 riple


    7. 把.dia绘图文件作为设计源文件添加到代码版本维护工具中。 riple


    8. 熟练使用StateCAD需要弄明白Options下的Configuration配置选项栏和各种选项的组合效果。Options下的Machine Attribute和Variable也需要加以注意。 riple


    9. StateBench的功能很强大,但是操作很复杂,而且可重用性差,不适于在项目开发中使用。 riple


 


    背景资料:  riple


IEEE Expert 1994 December上的一篇短讯: riple


点击看大图


Visual Software adds test-bench generator to StateCAD riple


Visual Software Solutions releases HDL Bencher for automatic VHDL & Verilog test bench generation riple


Xilinx Now Shipping StateCAD and HDL Bencher from VSS riple


XILINX INCORPORATES NEXT-GENERATION TECHNOLOGY INTO FREE WEBPACK SOFTWARE riple


Xilinx buys software tool firm to accelerate FPGA-based designs riple


Xilinx Acquires Visual Software Solutions; Technology Will Improve Time-to-Market for Multimillion Gate Virtex-II FPGA Designs riple


 

文章评论5条评论)

登录后参与讨论

ash_riple_768180695 2008-10-10 15:07

statecad自带的例子就很好。

用户39698 2008-10-9 17:00

给我感觉stateCAD很难学, 主要没有合适的学习资料。 一般书上只是告诉你如何操作,但没有告诉你具体用法。 比如,我想添加一个简单的转移条件和输出,设计一个序列检测器都不知道怎么作。博主有没有比较好的学习材料?

用户39698 2008-10-9 16:22

最近正在潜心研究FPGA,状态机刚刚入门。stateCAD,希望多交流

ash_riple_768180695 2008-3-18 13:35

我的邮箱:ash_riple@hotmail.com

ash_riple_768180695 2008-3-18 13:29

感谢孟玉朋友留下了这么多的心得体会。希望能和你建立联系,经常交流。此外,StateCAD是一个很好的工具,我也建立了一套规范来保证它的可重用性和可维护性。这个工具帮了我工作中的不少忙,前前后后共用它设计了50多个FSM。数了一下最近的一个项目中用到的FSM,32个!多亏了这个工具,手工编写不知道要出多少错呢!
相关推荐阅读
ash_riple_768180695 2015-12-18 11:06
学习示例程序:FPGA快速系统原型设计--敏捷实践
        学习与开发板配套的示例程序,是敏捷实践的起点。示例程序是厂商针对开发板上提供的硬件资源和接口量身定做的工程,可以展示其FPGA芯片的功能和性能特点。从示例程序入手最大的好处就是:示...
ash_riple_768180695 2015-11-03 16:46
开发板选取:FPGA快速系统原型设计--敏捷实践
    既然是“实践”,就不能只谈编码和仿真,必须要上板运行、调试。这个虚拟项目的目标是实现一块兼容Intel82574L以太网控制器的千兆网卡,需要运行在一块具备PCIe接口和10/100/10...
ash_riple_768180695 2015-10-22 12:41
开篇:FPGA快速系统原型设计--敏捷实践
    虽然借用了 “系统原型开发”的标题,本系列文章将围绕FPGA IP级别的开发这个主题展开,如果可能的话,将扩展至FPGA System级别的开发。     先上一篇PPT:RSPwFP...
ash_riple_768180695 2013-08-26 10:21
学习SystemVerilog(二)——学习它的理由
    学习SystemVerilog的理由也很多,我在阅读SystemVerilog for Design 和 SystemVerilog for Verification两本书前言的过程中,总...
ash_riple_768180695 2013-08-26 10:19
学习SystemVerilog(一)——不学习它的理由
    想要学习SystemVerilog已经很久了。曾经尝试通过Accellera网站上给出的LRM学习,怎奈内容众多,找不出入手点和重点,只能望而却步。虽然手头有三本SystemVerilog...
ash_riple_768180695 2011-06-26 23:20
Hardware-Assisted IEEE1588 Implementation Analysis
06/18/11 11:00:05 PM         最近一段时间在研究IEEE1588-2008精确时间同步协议(PTP)。该协议可以在软件中实现,如果需要提高时间同步...
我要评论
5
9
关闭 站长推荐上一条 /2 下一条