gray code encode and decode(上)
摘要:今天就不說太硬的概念。說一些比較實際的做法。binary to gray code的verilog做法。gray code是許多人遇過,而且很多人都會做,這裏有一個小小做法,簡單,而且不複雜,可以提供大家參考。module bin2gray( bini,grayo);input [4:0] bini;output [4:0]grayo;assign grayo = bin ^ {1'b0, bin[4:1]};endmodule以下是3-bit binary 和gray code的對照。000 000001 001010 011011 010100 110101 111110 1...
阅读全文
posted @
2014-02-24 10:08
Orchid123
阅读(267)
推荐(0)
如何規劃power management的流程
摘要:以前設計過power management的FSM。想把它總結出來,但是,每個chip的情形都不相同,要總結出它所有的規則是因難的。但我想把自己的經驗提供出來給大家參考,請大家多多指教!如果有任何更好的方法或是觀念,歡迎留言給我,讓我也能學習到更好的方法。我的想法裏,認為power management有一個大的觀念可以去思考,在此提出來。不見得每個都適用,主要還是要看你自己的系統真實的情形 。Fist-In-Last-Out(FILO),最先關的,最後醒。為什麼要這麼說,以下舉幾個例子來說明。1.降頻節省power :如果你想降頻節省某一塊的power,你會怎麼做?1).降低頻率.2). p
阅读全文
posted @
2014-02-17 10:21
Orchid123
阅读(181)
推荐(0)
關於跨clock domain處理的觀念
摘要:做為一個數位設計的工程師,最常遇到的情形就是訊號需要跨clock domain的處理。能使用的解決方法有很多,每個需要處理的情況也不儘相同,所以我並不就實作方法著眼,只想談談處理它的概念。為什麼要處理跨clock domain的訊號?使用來自其它clock domain的訊號時,容易會遇到metastable的情形,而致使產生錯誤結果。為了避免錯誤的發生,此時就需要同步來自其他clock domain的訊號。但是要怎麼做,才能做好同步處理?如果可以謹記下面的觀念,相信您一定就可以做出自已的同步訊號處理。1. 遵守two-flip-flop的方法。處理metastable的最基本的步驟就是用本身
阅读全文
posted @
2014-02-10 18:13
Orchid123
阅读(501)
推荐(0)
好的coding習慣
摘要:做為一個數位IC設計初學者,好的coding習慣是很重要的。它能讓你的程式被別人讀懂,而且程式的穩定度也比較高。那什麼是好的coding習慣。1. 只使用positive edge (negative edge) clock來做為取樣的時間點(sampling data time). 在coding時,堅持只使用clock的一邊(edge)來做為你取樣的時間點(sampling data time)。這樣子可以增加程式的易讀外,也能讓你的程式行為(behavior)單純,在synthesis時比較好處理。且在做ATPG時,也比較容易處理。只用單一邊做為你的時間點,它的穩定度比較高。這就像是你在
阅读全文
posted @
2014-02-10 18:04
Orchid123
阅读(225)
推荐(0)
好的設計習慣 II
摘要:剛來乍到的工程師,常常會寫一些很炫的技巧,來實現他的硬體設計。我覺得很好,也可以讓我多學學不同的技巧,也是不錯。但是,常常在我問過一些問題後,我就不知道該怎麼說他了。在這兒想分享一些觀念,希望能有所幫助。1.技巧很重要,但是如果你不知道在synthesis階段時,應該要寫什麼樣子的constrain來synthesize你的程式時,建議不要使用,因為你會讓你的整合工程師頭很大。2. balance clock tree的觀念很重要,請不要告訴你的整合工程師說,你的clock tree就是要no balance,timing才會是對的。數位工程師所有的想法都是在balance tree底下設計。
阅读全文
posted @
2014-02-10 18:03
Orchid123
阅读(192)
推荐(0)
好的設計習慣 I
摘要:在學校時,老師常說「在寫程式前,請先畫好你的流程圖、方塊圖、波形圖,然後才開始動手寫程式。」我不知道有多少人有這樣子做。不過這真的是好的習慣。我常常遇到剛來的工程師跑來找我說「學長,幫我看看我的程式怎麼了,為什麼出來的不是我想要的結果?」然後他點開他的程式讓我看,我心裏想,這誰會看得懂?在此建議,做為一個初學者,要習慣畫流程圖、方塊圖、波形圖。當你在畫這些圖時,你的腦袋裏面也同時在依循這些圖在思考、推論,幫助你去思考自己的邏輯的盲點。程式並不是人類的語言,是電腦的語言。人類最直觀的語言就是圖畫。如果你把流程圖、方塊圖、波形圖都畫好,當你想跟別人討論時,別人才能從圖畫中快速了解你的想法,這樣子才
阅读全文
posted @
2014-02-10 17:58
Orchid123
阅读(134)
推荐(0)