星期四, 1月 31, 2008

家用無線連結技術統一路迢迢

這篇講到了無線連結的規範到目前尚未統一, 不過讓我比較注意的是, 文中所提的, 32Gbyte的高容量SD卡, 這個東東跟現在的DVD 光碟片比較, 馬上讓我聯想到早期我們在使用 1.25吋的磁碟片備份東西.

軟碟只有1.25M/1.44M, 而當時我們有80M HDD 就很大了, 而現在光碟 4.7G , 我們在用的硬碟320G..... 一樣差不多80倍, 光碟以經取代了軟碟的位置. 而SD 這個東東也是很怪, 現在 8G 只要500塊, 光碟要是容量還停留在4.7G , 恐怕遲早會跟FDD一樣被淘汰成只剩下備份功能了.

已經快要不熟悉byte, K , M 這些單位了, 取而代之的 G , T 漸漸冒出頭了, 未來有甚麼東西真的須要用到那麼大呢? .. windows 31 到 Vista ..用來用去就只是Office .....到了Vista 還是Office....
電腦是進步了....可是人腦還在Office ..硬體進步了, 軟體也進步了( 吃的更大, 用的更兇 ) , 不過功能還是差不多, 只不過是美觀一些.

星期四, 1月 17, 2008

Verilog 初級導航

這是module標準寫法, 基本上我也只用到這些功能.

module booth32_v3
( i64_product, o1_ready, i32_multiplier, i32_multiplicand, i1_start, i1_clk); ......
........
endmodule
  • booth32_v3 是這個module名稱, 共有 i64_product, ...... i1_cl 這些變數.
  • input[32:0] xxx 指 xxx 隻腳, 且定義為input,output 相同.
  • reg, wire 是定義它只是一條線, 還是一個reg.( 只有reg可以在always 裡在等號左邊)
  • begin, end 相當於 c的 {、 }。
  • always @( posedge i1_clk ) 這個嘛... while( i1_clk == 正緣觸發 )
  • 注意, 有時有些東西未定義 ModelSim 會幫你自動定義, 請養成良好習慣,不然會Debug 到死.
  • 對了漏了 assign abc = a & b; 這東東也是重要, 相當於 abc = a& b , 但隨時會生效, 不是run到那 一行才生效喔(所以跟C的不同, 這些東東亂放的話, BUG追死你!!.
  • 8.其它的看應該就懂了.
這是module標準寫法, 基本上我也只用到這些功能.
module booth32_v3( i64_product, o1_ready, i32_multiplier, i32_multiplicand, i1_start, i1_clk); ...........

...........

endmodule
1।booth32_v3 是這個module名稱, 共有 i64_product, ...... i1_cl 這些變數.2.input[32:0] xxx 指 xxx 隻腳, 且定義為input,output 相同.3.reg, wire 是定義它只是一條線, 還是一個reg.( 只有reg可以在always 裡在等號左邊)4.begin, end 相當於 c的 {、 }。5.always @( posedge i1_clk ) 這個嘛... while( i1_clk == 正緣觸發 )


6.注意, 有時有些東西未定義 ModelSim 會幫你自動定義, 請養成良好習慣,不然會Debug 到死.7.對了漏了 assign abc = a & b; 這東東也是重要, 相當於 abc = a& b , 但隨時會生效, 不是run到那 一行才生效喔(所以跟C的不同, 這些東東亂放的話, BUG追死你!!.8.其它的看應該就懂了.

星期三, 1月 16, 2008

計組 Verilog 心得

趁著記憶猶新, 簡單記錄一下, 這學期在計組所學的東西,拼了幾個晚上,這門課同學的分數都掌握在我的手上,壓力真大呀。

1. 花了大約一週的時間, 學習簡單的verilog 語法, 寫出簡單的原件, Multiplier , Booth , Divider MUX, ALU , 每個大約十幾行而已。

2. 花了大概三四天把 MIPS-Lite, 十幾道的指令, 用之前那週的東西稍做修改, 然後寫成5 階Pipeline 組起來,經自行驗證,beq、jump、 Hazard 等問題都解決了。

從不會Verilog 到, 寫出一個含有1x道指令的 5階 pipeline mips CPU , 花了兩週而已,由此可見,verilog 入門不難( 當然入門是不需要考慮 精簡的問題、Performance的問題 )。 然而從學習的過程來看則不然,老師上課並沒有教導Verilog,以致於須要自己先去研究Verilog寫法,雖然它很簡單( 大概看10分鐘就可以開始寫了 ),不過同學卻很頭大。

也許是背景的問題( 我本身有C語言約7年經驗,到目前還是專攻C,在Embedded Linux system上,而且是電子科二專,邏輯的課很早就上過了,也許造成了入門門崁的差異性。) 然而,這門課的考試,我卻很頭大,期末可能只有30分,考的都是我寫的程式,-.- 怎麼會這樣呢??..Code都寫完了,考試時腦袋一片空白,三十幾歲記憶力嚴重退化@@, 深思了一下 "龜究" 幾個原因來推托一下。


1. 老了。( 老了本來記性就不好,考不好是應該的。) 那些考出來的圖, 寫Code 的時候不知到看了幾百遍了,課本都翻爛了,考試時還是一片空白。


2. 寫Code的方式有問題,寫 C 跟寫Verilog,同樣是寫Code, 不過這兩個語言基本上有非常大的差異性。 寫 C這類的語言,很多時候是在腦海裡直接有個想法,然後動動手Key 一下就出來了。 Verilog 不能這樣攪,不知道我還太菜還是怎樣,這有許多時序的問題,而很多地方卻又沒有順序的問題,常導致許多的錯誤。


3. 我們在用的ModelSim 5.7d 版很爛, Compiler非常的濫(難到現在在業界還用5.7?), 有問題的Code 有時不會抓出來。


4. 寫verilog 不是問題,而問題發生在老師所上的課,那些流程圖、方塊圖,那些才是重點,為甚麼呢? 基本上掌握那些圖,把腦袋關起來寫Code 都會動,所以要學的是圖而不是Code( 從我一星期就能寫出 pipeline CPU 發現) 真的都是[按圖施工,保證成功],不過當做到beq, jump, 等Function 時開始就頭痛了,教科書竟然沒有教!!!,這是才是苦命的開始,照著寫C的做法心裡先想好,開始coding、 compile、Run、 !!BUG!! ---> re-coding 、re-compile。


攪了幾天才回頭想到那句名言:[按圖施工,保證成功],亂攪真的很傷腦。 下學期有新的ARM 課程還要教怎樣把IP兜在一起、System Verilog, 看看有沒機會跟公司凹一下,下午來去上課。

羅設 Verilog 心得

趁著記憶猶新, 簡單記錄一下, 這學期在計組所學的東西,拼了幾個晚上,這門課同學的分數都掌握在我的手上,壓力真大呀。

1. 花了大約一週的時間, 學習簡單的verilog 語法, 寫出簡單的原件, Multiplier , Booth , Divider MUX, ALU , 每個大約十幾行而已。
2. 花了大概三四天把 MIPS-Lite, 十幾道的指令, 用之前那週的東西稍做修改, 然後寫成5 階Pipeline 組起來,經自行驗證,beq、jump、 Hazard 等問題都解決了。

從不會Verilog 到, 寫出一個含有1x道指令的 5階 pipeline mips CPU , 花了兩週而已,由此可見,verilog 入門不難( 當然入門是不需要考慮 精簡的問題、Performance的問題 )。

然而從學習的過程來看則不然,老師上課並沒有教導Verilog,以致於須要自己先去研究Verilog寫法,雖然它很簡單( 大概看10分鐘就可以開始寫了 ),不過同學卻很頭大。也許是背景的問題( 我本身有C語言約7年經驗,到目前還是專攻C,在Embedded Linux system上,而且是電子科二專,邏輯的課很早就上過了,也許造成了入門門崁的差異性。)

然而,這門課的考試,我卻很頭大,期末可能只有30分,考的都是我寫的程式,-.- 怎麼會這樣呢??..Code都寫完了,考試時腦袋一片空白,三十幾歲記憶力嚴重退化@@, 深思了一下 "龜究" 幾個原因來推托一下。


1. 老了。( 老了本來記性就不好,考不好是應該的。) 那些考出來的圖, 寫Code 的時候不知到看了幾百遍了,課本都翻爛了,考試時還是一片空白。


2. 寫Code的方式有問題,寫 C 跟寫Verilog,同樣是寫Code, 不過這兩個語言基本上有非常大的差異性。 寫 C這類的語言,很多時候是在腦海裡直接有個想法,然後動動手Key 一下就出來了。
Verilog 不能這樣攪,不知道我還太菜還是怎樣,這有許多時序的問題,而很多地方卻又沒有順序的問題,常導致許多的錯誤。


3. 我們在用的ModelSim 5.7d 版很爛, Compiler非常的濫(難到現在在業界還用5.7?), 有問題的Code 有時不會抓出來。


4. 寫verilog 不是問題,而問題發生在老師所上的課,那些流程圖、方塊圖,那些才是重點,為甚麼呢? 基本上掌握那些圖,把腦袋關起來寫Code 都會動,所以要學的是圖而不是Code( 從我一星期就能寫出 pipeline CPU 發現) 真的都是[按圖施工,保證成功],不過當做到beq, jump, 等Function 時開始就頭痛了,教科書竟然沒有教!!!,這是才是苦命的開始,照著寫C的做法心裡先想好,開始coding、 compile、Run、 !!BUG!! ---> re-coding 、re-compile。


攪了幾天才回頭想到那句名言:[按圖施工,保證成功],亂攪真的很傷腦。

下學期有新的ARM 課程還要教怎樣把IP兜在一起、System Verilog, 看看有沒機會跟公司凹一下,下午來去上課。

星期三, 1月 02, 2008

臺灣就是這樣

2008元旦, 碰!!碰!!...5分鐘內燒掉上億, 一個營養午餐50塊, 可以供應約5500個小朋友吃整年
臺灣人就這樣...一群垃圾站在那邊爽了5分鐘,爽完了還不忘記把垃圾丟地上,順便讓清潔人員也賺一筆。
便利商店也賺一筆、小販也賺一筆,誰賺都無所謂,誰花的也無所謂,不過怎麼有人常常喊經濟不景氣? M 型化社會? 營養午餐沒經費? 元旦放炮時,各縣市倒是比誰的炮比較大勒。