Electronics 板


LINE

一般我們都說Verilog中initial是"不能合成"的。 其是所謂的"不能合成",有兩種意義,一種是"不可能合成", 另一種是"合成器不支援"。 "不支援"比起"不可能"還有周旋餘地。 "不可能"把話說死了,即使未來的工藝技術(state of the art) 再怎麼進步都不可能合成出來的意思。 事上很多HDL語法僅僅只是當代的state of the art不支援罷了。 也沒人證明出哪一個HDL語法保證不可能合成。 但有standard規定哪些語法保證可合成,例如[1]: IEEE 1364.1 Verilog register transfer level synthesis 我以前一直說initial語法不能合成。 今天我看IEEE 1364.1發現initial在某些情況下是可合成的。 例如以下這個範例[1](原始的code有點bug,我稍微修改了一下): ~~~~~~~~~~~~~~~~~~~~~~~rom_2dimarray_initial.v~~~~~~~~~~~~~~~~ module rom_2dimarray_initial ( output wire [3:0] z, input wire [2:0] a); reg [3:0] rom[7:0]; initial begin rom[0] = 4'b1011; rom[1] = 4'b0001; rom[2] = 4'b0011; rom[3] = 4'b0010; rom[4] = 4'b1110; rom[5] = 4'b0111; rom[6] = 4'b0101; rom[7] = 4'b0100; end assign z = rom[a]; endmodule ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 這在Xilinx ISE 8.2i是可以合成出來的。我跑過post-layout simulation也是正確的。 其實這code是在model一個ROM。 所以,說"當代合成器不支援某個語法",會比說"不能合成"的好。 因為"不能合成"有兩種意思。 [1] IEEE, "IEEE 1364.1 Verilog register transfer level synthesis," http://ieeexplore.ieee.org/Xplore/dynhome.jsp -- 西方三聖:http://p8.p.pixnet.net/albums/userpics/8/3/553683/1193661731.jpg
《佛說阿彌陀經》http://web.cc.ncu.edu.tw/~93501025/amtf.doc 十一面觀音咒:http://file.buda.idv.tw/music/DBZFY04.mp3 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.220.219 ※ 編輯: zxvc 來自: 140.115.220.219 (04/07 07:53)
1F:→ zxvc:其實說"大多數的合成器不能合成"也不錯,因為沒有把話說死。 04/07 07:56
2F:→ M9407120:那應該算是書本的問題巴~時代會進步 04/07 08:39
3F:→ M9407120:早期的書這樣寫並不算錯誤~現在幾乎都可以這樣合成了 04/07 08:39
4F:→ horsehead:那是因為你用FPGA的緣故才能和成出initial 04/07 09:23
5F:→ horsehead:如果今天你是在asic design flow 裡依然不行 04/07 09:24
6F:→ horsehead:你想想看你所認識的邏輯閘有那些東西可以兜出initial 04/07 09:26
7F:→ horsehead:FPGA因為他也算一顆ASIC 他有內部的RESET信號 04/07 09:26
8F:→ horsehead:他是利用一開始的RESET去初始化 04/07 09:28
9F:→ horsehead:所以並非是用邏輯閘去兜出來 04/07 09:29
10F:→ horsehead:數位任何電路都是邏輯閘變成的 想想哪個邏輯閘可以和成 04/07 09:30
11F:→ horsehead:該FUNCTION 就知道何不合理 04/07 09:31
12F:推 lightnsalt:同意樓上。在學習HDL之前應加強對邏輯閘的認識。 04/07 10:51
13F:推 pupucar:他寫的電路是單純的組合邏輯 應該沒有啥reset問題吧?! 04/07 14:26
14F:→ pupucar:抱歉 沒看到REG 當我沒說 不過要寫ROM我也不會這樣寫 04/07 14:28
15F:推 pupucar:囧 再修正一下 剛剛在ISE試過了是純組合邏輯沒錯 突然腦殘 04/07 14:38
16F:→ zxvc:h大,ROM只是純combinational circuit,不需要reset訊號。 04/07 16:10
17F:→ zxvc:我用Design Compiler 2004合成,的確有看到忽略initial的訊 04/07 16:12
18F:→ zxvc:息。合成(compile)可以過,但最後的電路不是我要的ROM。 04/07 16:13
19F:→ zxvc:initial在這種code所model的東西,並不是一個什麼初始化的 04/07 16:15
20F:→ zxvc:電路。所以ISE可以合得出來,並不是因為它可以合你說的這種 04/07 16:17
21F:→ zxvc:initial電路。而Design Compiler之所以不能合,我認為只是它 04/07 16:18
22F:→ zxvc:不完全支援IEEE 1364.1。 04/07 16:19
23F:→ zxvc:Design Compiler怎麼會笨到不能合ROM? 04/07 16:20
24F:→ zxvc:只不過要用Design Compiler合ROM要用另外一種寫法。 04/07 16:21
25F:→ zxvc:況且說我上面code可以合是IEEE 1364.1自己說可以合的 04/07 16:23
26F:→ zxvc:IEEE 1364.1何必說一個不能合的code可以合呢? 04/07 16:24
27F:→ zxvc:所以這只是Design Compiler 2004不支援IEEE 1364.1的標準。 04/07 16:24
28F:推 horsehead:這邊非常抱歉 我沒看清楚你寫的code 04/07 16:29
29F:→ horsehead:依你的設計模式和成一個ROM是OK的 04/07 16:29
30F:→ horsehead:一開使我誤以為又有人要在暫存器上給初始值了 04/07 16:30
31F:→ horsehead:所以是我誤會你了 這邊說聲抱歉 04/07 16:31
32F:→ zxvc:h大,沒關係。不過這種寫法還是少寫為妙,我目前只有ISE合得 04/07 17:48
33F:→ zxvc:出來ROM。其它都合出一些很怪的東西。 04/07 17:49
34F:→ zxvc:Quartus II 9.0合出來的電路gate-level模擬結果是錯的。 04/07 17:50
35F:→ zxvc:Design Compiler合出z訊號全是0。 04/07 17:53
36F:→ zxvc:Cadence RTL Compiler也是忽略initial敘述。 04/07 17:54
37F:推 proach:大部分的FPGA開電後,先把資料從SRAM/Flash搬移到cell內, 04/07 18:39
38F:→ proach:所以可以指定每個bit的initial value 04/07 18:40
39F:→ ksmrt0123:雖然initail合成rom看來只能在ise用, 我也不會這樣用, 04/07 20:20
40F:→ ksmrt0123:但我大推這篇文章, 因為對tool有深入瞭解是成為好的 04/07 20:22
41F:→ ksmrt0123:designer的必要條件 04/07 20:22
42F:推 ksmrt0123:說個故事 某家design house的某顆chip, 用了不少由 04/07 20:37
43F:→ ksmrt0123:memory compiler產生的sram blocks, 後來才發現 04/07 20:37
44F:→ ksmrt0123:ower ring width是可以設定的 若設成跟競爭對手一樣寬, 04/07 20:37
45F:→ ksmrt0123:die cost可減少好幾角NTD... 那顆chip是低價大量 04/07 20:37
46F:→ ksmrt0123:的產品, 每顆差幾角, 一個月至少差好幾十萬 04/07 20:37
47F:→ ksmrt0123:整個1-2年的life cycle就差好幾百萬了 04/07 20:38
48F:→ ksmrt0123:因只是沒人仔細去study memory compiler的設定... 04/07 20:38
49F:→ ksmrt0123:power ring width... 發現時已量產一段時間了... 04/07 20:39
50F:→ zxvc:p大,ISE合出來的真的只是一個combinational的ROM。SRAM是 04/07 20:53
51F:→ zxvc:sequantial circuit。 04/07 20:53
52F:→ zxvc:這是ISE合出上面code的RTL schematic: 04/07 20:54
53F:→ zxvc:http://0rz.com/74Cf 04/07 20:55
54F:→ sneak: 如果今天你是在asic https://noxiv.com 11/11 15:03
55F:→ sneak: https://noxiv.com 01/04 21:54







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:WOW 或 站內搜尋

TOP