|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在verilog设计中实例化VHDL单元
f4 p g. d) |! l& e" f0 }) A- P% C$ w1 B7 n% }! L
在verilog设计中实例化VHDL单元。9 Q3 {% Q9 H- H. `* X
如果是实例化一个VHDL实体,首先声明一个与你要实例化的VHDL实体同名的module名字,形成一个一般的verilog实例。只有一个实例化的VHDL结构在verilog中构建,没有其他的VHDL结构在verilog中可见。当如此做时,XST使用entity和architecture对作为verilog或VHDL的边界。, V4 Y' t4 f$ N: |* d& }
XST在verilog设计中实例化VHDL单元时有以下限制:
- G; Y! v+ F j2 C- v4 K6 K1.5 v, ?- D5 q# p7 l
外部端口联接必须使用。也就是说,通常的有效的端口名字必须在端口映射表中定义。
$ R# Y4 x( q6 U0 y2.* ^3 M3 j- O- a0 n
所有的parameter必须在实例化时传输,即使他们没有变化。
* @ `* n5 G7 D- s- C, B$ i7 {2 k3. n1 \$ n: p2 Q0 \- |! t. \3 m
所有的参数通过名字关联而非顺序,所有的参数覆盖必须用实例化而非defparams.
% t( W0 _9 I/ k: J2 K' A例如:以下是正确的:
4 F8 G1 H9 `# pff #(.init(2'b01)) u1 (.sel(sel),.din(din),.dout(dout));4 g% V# z" m. t$ B7 q- r% ]( I
错误的:
3 u$ x9 u! K/ }/ B( i Hff u1 (.sel(sel),.din(din),.dout(dout)); r" _6 x$ M" H$ f( Q6 F$ b8 e5 ~7 T, V
defparam u1.init = 2'b01;
6 G& p E6 d7 p+ v! L+ Z7 W* w% T |
|