|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在verilog设计中实例化VHDL单元 . n3 q- O$ S5 O* Q5 T% j2 s
6 D# s+ K: `7 m7 M在verilog设计中实例化VHDL单元。
1 R3 M* M) m0 h; J如果是实例化一个VHDL实体,首先声明一个与你要实例化的VHDL实体同名的module名字,形成一个一般的verilog实例。只有一个实例化的VHDL结构在verilog中构建,没有其他的VHDL结构在verilog中可见。当如此做时,XST使用entity和architecture对作为verilog或VHDL的边界。
( O' F4 B; j7 C. ?# i& m" yXST在verilog设计中实例化VHDL单元时有以下限制:! I) |2 b+ W) l' J+ @& |( E
1.) x, D% ]9 ~. j2 J4 J
外部端口联接必须使用。也就是说,通常的有效的端口名字必须在端口映射表中定义。
% O0 W; W0 I! i+ q2.
$ C3 A- O. ?; ]/ |) X C' f所有的parameter必须在实例化时传输,即使他们没有变化。& `0 c4 L& j1 @$ ^! Y4 \
3.
5 F* h4 i) `1 u; O所有的参数通过名字关联而非顺序,所有的参数覆盖必须用实例化而非defparams.
3 V, Y) u N/ }8 U) D例如:以下是正确的:
/ W& W/ e8 `( f2 off #(.init(2'b01)) u1 (.sel(sel),.din(din),.dout(dout));( U1 |" i. O9 ]& Z' C: N% V- j
错误的:6 x, U+ Q' |- O
ff u1 (.sel(sel),.din(din),.dout(dout));& N5 a" w+ B9 \/ w3 a2 p+ V
defparam u1.init = 2'b01;' }; _/ a2 N+ |
|
|