作者appendixisu (不知道我是誰)
看板Electronics
標題[問題] Verilog coding style by tri-state
時間Mon Dec 19 16:40:02 2011
我今天想要用tri-state去取代MUX 來節省面積
原來的作法是
wire [79:0]IMG_D = (DATA_SEL == 5'h0)? IMG_DATE[79:0] :
(DATA_SEL == 5'h1)? IMG_DATE[87:8] :
(DATA_SEL == 5'h2)? IMG_DATE[95:16] :
(DATA_SEL == 5'h3)? IMG_DATE[103:24] :
(DATA_SEL == 5'h4)? IMG_DATE[111:32] :
(DATA_SEL == 5'h5)? IMG_DATE[119:40] :
(DATA_SEL == 5'h6)? IMG_DATE[127:48] :
(DATA_SEL == 5'h7)? IMG_DATE[135:56] :
(DATA_SEL == 5'h8)? IMG_DATE[143:64] :
(DATA_SEL == 5'h9)? IMG_DATE[151:72] :
(DATA_SEL == 5'ha)? IMG_DATE[159:80] :
(DATA_SEL == 5'hb)? IMG_DATE[167:88] :
IMG_DATE[175:96] ;
可是面積很大很大!!
所以想要用tri-state去取代
想法是這樣
assign IMG_D[0] = (DATA_SEL == 5'h0)? IMG_DATE[0] : 1'bz ;
assign IMG_D[0] = (DATA_SEL == 5'h1)? IMG_DATE[8] : 1'bz ;
....以下略
不過這應該是不合法的verilog語法(誤植-這語法是合法的)
所以想要請問要怎麼寫才可以合成出tri-state的out都short再一起的
電路呢!!~
目前我能想到的只有用gate level的寫法去把元件的線接在一起
所以想要請教各位大大 有沒有其他寫法 或是想法! 先謝過各位!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.37.177
→ bakerly:這樣寫是合法的啊...也會合出tri-buffer 12/19 21:28
→ appendixisu:我有發現了!!~~是合法的XD 12/20 08:54
※ 編輯: appendixisu 來自: 106.1.225.242 (12/20 08:55)