TA的每日心情 | 开心 2025-10-13 15:26 |
|---|
签到天数: 37 天 [LV.5]常住居民I
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
一下是对一个模块的例化:4 f7 R. h- V [
m1 #(`UART_FIFO_REC_WIDTH) m1_inst(
# o0 H+ r |6 Y n8 P* E.clk( clk ), ( Q+ D5 d6 ]6 H1 `2 D. r5 a" L2 O
..........
! Z; s6 i; `9 m1 |# [) y);, c. r( P' ?1 N2 ?% A6 k: W
4 n3 G2 g0 ^. b0 k! g% n
该模块中定义的第一个参数是 parameter fifo_width = `UART_FIFO_WIDTH;
' Y* c) Y4 h8 l* W8 i5 V
; O4 I/ ?1 I9 R" ]; [3 k8 T在另一个专门的文件里定义了:
' ]6 J7 v' W' ]/ p2 r`define UART_FIFO_WIDTH 8# b" m- ]$ y4 Z3 V8 M
`define UART_FIFO_REC_WIDTH 11
/ }: g. M& i6 g1 Q' e
0 }) ?5 C, f x! r一开始我以为#(`UART_FIFO_REC_WIDTH)的意思是延时那么多,方便仿真。。。后来觉得不对,不是延时,因为又不是在做赋值。。。3 E0 n1 i1 \- D& Z4 D7 h8 ~1 h) I+ ^
* w! D. j( m* s, {9 {! `0 `编译后看RTL图发现,该模块UART_FIFO_WIDTH的值全部替换成了UART_FIFO_REC_WIDTH的值,到这里我大概明白这里的用意了。觉得很奇怪,以前从没遇到过。。。 |
|