什么是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
ash_riple_768180695 2008-10-10 15:07
用户39698 2008-10-9 17:00
用户39698 2008-10-9 16:22
ash_riple_768180695 2008-3-18 13:35
ash_riple_768180695 2008-3-18 13:29