|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在verilog设计中实例化VHDL单元 % k$ c6 A; y2 \8 p" `
2 C2 u3 B$ q, g+ C5 T
在verilog设计中实例化VHDL单元。9 e$ q! j, u6 a/ M
如果是实例化一个VHDL实体,首先声明一个与你要实例化的VHDL实体同名的module名字,形成一个一般的verilog实例。只有一个实例化的VHDL结构在verilog中构建,没有其他的VHDL结构在verilog中可见。当如此做时,XST使用entity和architecture对作为verilog或VHDL的边界。
H8 V* _3 O+ d+ y; [% o# [2 T5 h$ MXST在verilog设计中实例化VHDL单元时有以下限制:. e1 Q! B$ b- z" f- e! F
1.2 l6 ^5 i: q3 A. a# |1 a# u
外部端口联接必须使用。也就是说,通常的有效的端口名字必须在端口映射表中定义。6 e# O5 S9 ^% N: l/ e) x% A5 b
2.( E( X& @6 c! I% @! f4 d# k
所有的parameter必须在实例化时传输,即使他们没有变化。, T& }; F, f. a- @! Y
3.- h: S3 ?- {% f- B. M3 f9 m
所有的参数通过名字关联而非顺序,所有的参数覆盖必须用实例化而非defparams.2 e8 k. [4 ?5 j5 g$ c; [" S8 U, j
例如:以下是正确的:
: y0 q3 |/ \% r; L( Dff #(.init(2'b01)) u1 (.sel(sel),.din(din),.dout(dout));4 ^4 y" K% J. n" T* o
错误的: t7 g1 |9 f/ a4 \, m
ff u1 (.sel(sel),.din(din),.dout(dout));% K+ h5 ?" E+ j7 C
defparam u1.init = 2'b01;
: [7 x8 t, X5 l1 G |
|