正在加载图片...
88wiD硬件插述语言 China-pub. coM 下载 却必须声明。外部端口在模块内不可见,但是却要在模块实例语句中使用,而内部端口因为 在模块中可见,所以必须在模块中说明。在模块实例语句中,外部端口的使用如下所示 Scram B S1 (. Addr(A1), Da ta(D1), Control(C1), Mem word (M1)): 在模块定义的端口表中,这两种概念不能混淆,即在模块定义中所有端口必须指定显式 的端口名称,或者没有一个端口带有显式的端口名称。 如果模块端口通过位置连接,则模块实例语句中不能使用外部端口名称。 内部端口名称可以是标识符,也可以是下述类型的表达式: 位选择; ·部分选择 ·位选择、部分选择和标识符的合并 例如, module Scram c(Arb[0: 2], ctrl, Mem Blk[0], Mem Blk[l]), Byte[3]) input [o input ctrl; input [8: 0] Mem Biki output [0: 3] Byte endmodule 在 Scram_C的模块定义中,端口表包括部分选择(Arb[0:2])、标识符(Cr1)、合并 ({Mem_Blko], Mem Blk1]})和位选择(Bυvte[3])。在内部端口是位选择、部分选择或合并的 情况下,没有隐式地指定外部端口名。因此,在这样的模块实例语句中,模块端口必须通过 位置关联相互连接。例如, Scram C SYA (LI[4: 6], CL, MMY[1: 0], Br)i 在这个实例语句中,端口通过位置关联相连接,因此Ll4:6连接到Arb[0:2],CL连接 到Cm,MMI]连接到 Mem blk[O,MM连接到 Mem blk[],BT连接到Bye[3 若使用端口名称关联(即当内部端口不是标识符时),必须对模块中的端口指定外部端口 名。如下面的 Scram d模块定义所示 module Scram D( Data(Arb[0: 2]), Control(Ctrl) Mem word(i Mem Blk[o, Mem Blk[111 Addr( Byte[3])) input [0: 3] Arb nput [8: 0] Mem Biki output [0: 3] Byte endmodule 在 Scram d模块实例语句中,端口既能够使用位置连接,也能够使用名称连接,但是不 能混合使用。下例的模块实例语句端口通过名称连接 Scram D S2( Data(Li[4: 6], Control(CL) Mem word(MMY[l:0,. Addr(BT)) 模块中可以只有外部端口而没有内部端口。即模块在引用中其外部端口可以悬空,不与 内部信号相连。例如:却必须声明。外部端口在模块内不可见,但是却要在模块实例语句中使用,而内部端口因为 在模块中可见,所以必须在模块中说明。在模块实例语句中,外部端口的使用如下所示: Scram_B S1 ( .A d d r(A 1) , .D a t a(D 1) , .C o n t r o l(C 1) , .M e m _ W o r d(M 1) ) ; 在模块定义的端口表中,这两种概念不能混淆,即在模块定义中所有端口必须指定显式 的端口名称,或者没有一个端口带有显式的端口名称。 如果模块端口通过位置连接,则模块实例语句中不能使用外部端口名称。 内部端口名称可以是标识符,也可以是下述类型的表达式: • 位选择; • 部分选择; • 位选择、部分选择和标识符的合并。 例如, m o d u l e S c r a m _ C (A r b[ 0 : 2 ] ,C t r l, { M e m _ B l k[ 0 ] ,M e m _ B l k[ 1 ] } ,B y t e[ 3 ] ) ; i n p u t [0:3] A r b; i n p u t C t r l; i n p u t [8:0] M e m _ B l k; o u t p u t [0:3] B y t e; . . . e n d m o d u l e 在S c r a m _ C的模块定义中,端口表包括部分选择( A r b[ 0 : 2 ])、标识符( C t r l)、合并 ({M e m _ B l k[ 0 ],M e m _ B l k[ 1 ] } )和位选择(B y t e[ 3 ])。在内部端口是位选择、部分选择或合并的 情况下,没有隐式地指定外部端口名。因此,在这样的模块实例语句中,模块端口必须通过 位置关联相互连接。例如, Scram_C SYA (L 1[ 4 : 6 ] ,C L , M M Y[ 1 : 0 ] ,B T) ; 在这个实例语句中,端口通过位置关联相连接,因此 L 1[ 4∶6 ]连接到A r b[ 0∶2 ],C L连接 到C t r l,M M Y[ 1 ]连接到M e m _ B l k[ 0 ] ,M M Y[ 0 ]连接到M e m _ B l k[ 1 ],B T连接到B y t e[ 3 ]。 若使用端口名称关联(即当内部端口不是标识符时),必须对模块中的端口指定外部端口 名。如下面的S c r a m _ D模块定义所示。 m o d u l e S c r a m _ D ( .D a t a(A r b[ 0 : 2 ] ) , .C o n t r o l(C t r l) , .M e m _ W o r d( {M e m _ B l k[ 0 ] ,M e m _ B l k[ 1 ] } ) , .A d d r(B y t e[ 3 ] ) ) ; i n p u t [0:3] A r b; i n p u t C t r l; i n p u t [8:0] M e m _ B l k; o u t p u t [0:3] B y t e; . . . e n d m o d u l e 在S c r a m _ D模块实例语句中,端口既能够使用位置连接,也能够使用名称连接,但是不 能混合使用。下例的模块实例语句端口通过名称连接。 Scram_D SZ ( .D a t a(L 1[ 4 : 6 ] , .C o n t r o l(C L) , .M e m _ W o r d(M M Y[ 1 : 0 ],.A d d r(B T) ) ; 模块中可以只有外部端口而没有内部端口。即模块在引用中其外部端口可以悬空,不与 内部信号相连。例如: 88 Verilog HDL 硬件描述语言 下载
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有