不同厂商的综合工具所支持的可综合子集可能有所不同。本文所说的是ISE的综合工具XST
在Verilog中综合时XST综合工具支持的结构有:
1、线网类型wire、tri、supply1、supply0等
2、寄存器类型reg、integer、time等
3、连续赋值
4、门原型和模块例化
5、always模块、用户定义的task和function
6、input、output和inout端口
7、所有的运算符,其中 / 和 % 运算符只适合于能得到整数结果的常量
8、行为语句,如if else case casex casez for repeat while forever begin end fork join
9、过程赋值语句,包括阻塞与非阻塞
10、编译器指令,如define ifdef else endif include undef
11、其他:在本地“begin end” 模块中,赋值语句的左端和右端可以对向量进行可变参数的索引。
XST不支持的Verilog结构
1、线网类型:trireg wor trior wand triand tri0 tri1 strenth
2、寄存器类型 real
3、单向和双向开关、pull-up pull-down
4、行为语句deassign wait
5、命令的事件(Event)和事件触发
6、UDP和specify模块
7、force、release和层次化的Net名称(仅用于仿真)
XST忽略的Verilog结构
1、delay delay控制、驱动强度
2、标量化、向量化(scalared、vectored)
3、initial模块
4、除了define ifdef else endif include undef之外的编译指令
5、对系统task和系统function的调用(仅用于仿真)