作者查詢 / zxvc
作者 zxvc 在 PTT [ Electronics ] 看板的留言(推文), 共1044則
限定看板:Electronics
看板排序:
全部WindowsPhone6208Electronics1044tennis_life513Windows493C_and_CPP234MobileComm206Linux205Tennis197MuscleBeach190MATLAB156Gossiping143nb-shopping136NCU_Talk87AVEncode83Buddhism80Boy-Girl74C_Sharp72LinuxDev59MAC54Headphone42EZsoft40comm_and_RF35Storage_Zone35Mix_Match33PC_Shopping28Sony-style28Python26dog25Key_Mou_Pad22PLT20AntiVirus19Soft_Job19XBOX18Network15Folklore13Tech_Job12Web_Design11Notebook10ask9CSSE9PhD9Federer8RegExp8creditcard7LaTeX7LCD7Android5CD-R5Programming5R_Language5Ajax4cat4mobilesales4PCman4ASM3Database3ECClab3iOS3WinNT3Buddha2ChineseMed2CLHS-53-132Cloud2Fortran2hardware2hypermall2soul2Statistics2Anti-ramp1Deutsch1FJU_PSY0941Golf1graduate1java1love-vegetal1NCUFingrad071NCUT1NSYSU_EE95-11Office1PCSH91_3051<< 收起看板(80)
3F→: 謝謝各位的意見,多學了幾招。11/03 21:56
6F→: 謝謝,我的焊槍的確是30W XD11/04 22:16
2F→: 有,包括Win 10 Home也有。但Win 10 32-bit不支援。08/14 21:18
13F推: 要寫Verilog,個人建議還是要懂一些邏輯設計的東西。除非你11/28 21:32
14F→: 是乖寶寶,人家叫你該怎麼寫你就怎麼寫,不會試圖用創新的寫11/28 21:34
15F→: 法(有可能會導致無法合成)。11/28 21:34
16F推: 選擇保守/創新都有好有壞,自行取捨看看。11/28 21:39
18F推: "(數位)邏輯設計"跟"設計邏輯"不太相同,後者才有"目的"的意12/02 23:37
19F→: 思。前者比如教如何用卡諾圖來化簡邏輯,這在數位IC設計中屬12/02 23:39
20F→: 於"邏輯層 (logic level)"的設計。但Verilog不是只能作邏輯12/02 23:40
21F→: 層(相當於gate-level)設計,往下能作transistor level設計,12/02 23:41
22F→: 往上能作register transfter level與behavioral level設計。12/02 23:43
23F→: 在高階的RT跟behavioral levels設計,我們通常不會去用卡諾12/02 23:45
24F→: 圖化簡,事實上logic synthesizer很聰明、會自動幫你化簡。12/02 23:47
25F→: 所以某些邏設課的東西,如卡諾圖,不懂一樣可以寫Verilog。12/02 23:49
26F→: 應該是有可能只學RT或Behavioral levels,不學logic level設12/02 23:50
27F→: 計,就能寫Verilog。只是這種作風滿大膽的,傳統的數位IC設12/02 23:53
28F→: 計流程,多是喜歡各種levels的設計都學過一遍較保險。12/02 23:55
29F→: 不單是數位IC設計有這種"抽象"層的分層,程式語言也有啊。12/02 23:57
30F→: 最底層是機器碼、再來組合語言、高階語言(C)。12/03 00:02
31F→: 有些人可能根本不會寫組語、更不會寫機器碼,但可能會寫C。12/03 00:03
32F推: 講了這麼多,原po如果沒興趣探究這些的是是非非,保守的作法12/03 00:09
33F→: 還是去學邏設吧。12/03 00:09
30F推:Q1:合成40 ns,跑post-synthesis sim要60 ns,差太多了。建01/17 10:57
31F→:議原po去trace發生timing violation的那條路徑的波型是不是有01/17 10:59
32F→:什麼奇怪的地方,例如有很大的delay。01/17 11:01
33F→:trace的方法就是把那條路徑的各節點波型show出來看。01/17 11:03
34F推:Q2: assign是因為有些APR tools不支援(ICC?)。ICC用DDC格式就01/17 11:06
35F→:不用管assign的問題金。01/17 11:07
36F→: ^多打01/17 11:08
2F→:FPGA可說是4D IC XD10/06 17:18
6F推:begin...end是sequential block是一行一行執行的,這是09/22 07:50
7F→:Verilog像C的地方。Verilog中所謂的"同時"是指"模擬時間"上的09/22 07:53
8F→:同時。但真實時間上,若你跑模擬的CPU、simulator不支援多執09/22 07:55
9F→:行緒,那麼兩個模擬上同時的指令,真實時間上是不同時執行的09/22 07:56
10F→:所以請分清"模擬時間"與"真實時間"的差異。09/22 07:59
11F推:我再講的實際一點的例子,例如你在看模擬波形,某個模擬時間09/22 08:03
12F→:點上有兩個訊號"同時"變化,但這兩個變化實際上是CPU在不同時09/22 08:04
13F→:間(真實時間)算出來的,只是對"模擬"而言我們把它算為同一09/22 08:06
14F→:(模擬)時間。09/22 08:06
15F推:模擬都是假的(雖然有程度的分別),只有真正做出的那顆IC才是09/22 08:18
16F→:真實時間的同時運行。09/22 08:19
1F推:set_max_delay/set_min_delay是constraints。STA會報出違反09/11 06:28
2F→:constraints的路徑。09/11 06:29
4F→:h大,所以不要用gate-level的"同時進行"去看待always+08/15 07:56
5F→:sequential block這種behavioral-level描述方式。08/15 07:58
6F→:sequential block裡的敘述是一行一行執行的。合成器在合它的08/15 08:03
7F→:時候是不會管在一次此block的執行中,訊號o被assign幾次、只08/15 08:07
8F→:會管此block每次結束後最終的值來決定它合成的邏輯閘。08/15 08:09
9F→:就如前面l大所提到的,Verilog是個可用不同抽象(abstraction)08/15 08:13
10F→:層(level)描述的語言,不是只有gate-level。用不同level的方08/15 08:14
11F→:式去解讀另一level,有時是不太洽當的、甚至完全無法解釋。08/15 08:17
17F→:我舉這範例只是想明顯的指出不該用gate-level的角度去解釋08/15 12:06
18F→:always+sequential block的modelling方式。08/15 12:07
19F→:我之所以說sequential block像C是因為它是一行一行執行的。08/15 12:14
20F→:l大,你那句話我個人持保留態度...個人是覺得滿大膽的說法。08/15 12:23
21F→:至於我說不要用gate-level看待"一些"behavioral-level,這篇08/15 12:25
22F→:就給了一個例子。08/15 12:25
27F→:不知道c大在說誰好笑,這只是個方便講解的特殊例子。有人真08/22 21:58
28F→:的就理解錯誤。08/22 21:59
29F→:電路合成也不會有multi driven,不信去合合看,哪家合出08/22 22:01
30F→:multi driven請告訴我,謝謝。08/22 22:01
31F→:再來把上述blocking assignment,全改成nonblocking08/22 22:03
32F→:assignment,仍然會合出一個"s為1選b, 0選a"多工器。08/22 22:04
33F→:合不出來請告訴我用哪家合成器,謝謝。08/22 22:04
34F→:這種sequential block執行一次,同一變數被assign兩次有個實08/22 22:16
35F→:用的例子,就是給預設值防止合出latch。08/22 22:16
36F→:補充:不管nonblocking/blocking assignments,在always+08/22 22:19
37F→:sequential block中,每次迭代都會有較後面的assignment複寫08/22 22:22
38F→:前面assignments的情形。08/22 22:23
39F→:blocking是比較立即的、nonblocking是在迭代結束後。08/22 22:25
40F→:所以若要以"同時執行"的字眼形容blocking assignment,有時是08/22 22:26
41F→:行不太通的。08/22 22:26
42F→:抱歉,打錯了,上上樓應該是要說"...形容nonblocking..."。08/22 22:28
43F→:講了這樣多,再提一下重點,我認為要能理解較高階、方便的HDL08/22 22:41
44F→:甚至能掌控它,必需對它要有正確的理解。用似是而非的理解只08/22 22:43
45F→:能解釋一部分,但有些好用、實用的語法,就不見得能夠解釋。08/22 22:44
46F→:另外我承認我上面有個"迭代結束"是個"似是而非"的方便說法,08/22 22:47
47F→:它不能解釋所有情況。正確來講要用SystemVerilog的scheduling08/22 22:48
48F→:的nonblocking assignment (NBA) region來解釋。08/22 22:49
11F推:我覺得Verilog寫的像C不是一種錯,重點是如果要設計的是硬體08/13 22:43
12F→:要寫得能合成出電路。08/13 22:44
13F→:Verilog中一個很像C的東西是sequential block(begin ... end)08/13 22:45
14F→:,它硬要用gate-level的方式去解釋它反而不好懂。08/13 22:46
15F→:sequential block是個使用非常頻繁的東西,是可合成的。所以08/13 22:49
16F→:怎麼可以說用它寫電路是一種錯呢?!08/13 22:49
17F推:又如SystemC它本質是C++"程式語言",但它老早就有合成器可以08/13 22:53
18F→:合成數位電路,順便提一下Xilinx最近出的ISE/Vivado 14.208/13 22:54
19F→:開始支援SystemC/SystemVerilog合成!所以寫的像程式語言不完08/13 22:56
20F→:全是不可合成的。08/13 22:56
21F推:補充一點,我指的"可合成(synthesizable)"是針對特定的語法,08/13 23:02
22F→:不是任何語法。sequential block也是有些會無法合成的。08/13 23:03
25F推:合成出來跟想像不同應該是學習的問題。如果學通了,不太怕有08/14 18:54
26F→:無法掌控的問題。08/14 18:56
5F推:有沒有錯誤訊息?我印像中可以合成啊。04/25 04:34
8F推:剛才試過了,input/output都加signed可以compile。DC版本為04/28 12:11
9F→:2010.03。04/28 12:12
13F推:幫你測過上述code,沒有問題。不知是你的DC哪設定不對。04/28 16:06