| ws's profileBad TimingPhotosBlogLists | Help |
Bad Timingso fix it |
||||
|
April 22 iclab 6從lab3之後都是 FSM,太晚進入狀況真的有點糟。 這次的題目是在某個 8 bit port讀入 ASCII表示的羅馬數字,同時讀取 op code。在輸入資料結束時開始計時20個 cycle之內要把運算結果用 ASCII表示的羅馬數字表示出來。像是 VII 的平方是 IVIX,MXXIV的平方根是XXXII。輸入的值和輸出的值都限制在1~3999之內。每個cycle限時5ns。看面積比輸贏。 只用單純的想法做下去的話,在input的地方設計一個FSM,一邊讀一邊算出輸入的真實值是多少;之後再經過運算後,把結果分成4位數。再用個FSM把這4位數連續的輸出。 這次遇到幾個問題: design compiler在 datapath長過 cycle time constraint太多的時候會自爆 fatal error 再來就是這種有很多表的電路,如果不是用程式產生verilog,很容易因為手殘打錯字,像是把VIII打成VII之類的。 最後就是iclab名物:潛規則。有些東西助教不講,同學不提,完全沒有人問,但大家卻似乎都做的出來,看來我也該努力了解他們用的語言才是。畢竟如果之後去EDA公司的話總還是要聽的懂的。 最後再來一張該死的 fatal error,紀念一下這個拖住我20小時的非錯誤訊息。 March 30 firefox 3.0.8 is a lemon如果說 firefox 3.0.5是讓我從 firefox跳IE的時間點的話,在IE8推出之後的firefox 更新版 3.0.8可以說是 firefox團隊說服我不要再用firefox的最佳証據。3.0.5一天也才 crash 3次而已,3.0.8可以讓我連 gmail都開不出來。難怪會有人說等 firefox 4.x.x出現在看情況,不知道有沒有人能和那些寫firefox的傢伙說一下,extension再多,一直crash的瀏覽器就是不能用的瀏覽器啊。 March 16 ic lab 2I'm on a BOAT ( Bad Organized ambiguous TA'smouthandhisstrangeslide)
我決定用中文把題目講一次。給你6個數字,A,B,C,D,X1,X2。A,B,C,D是5 bit整數;X1,X2是6bit,但他的值要除以32 (也就是說,如果 X1= 1,它表示的其實是1/32)。現在要計算出某個式子的值,題目要求是要使用一個13bit整數來表示結果(同樣的,值也要除以32),在某個時間要求以及誤差要求之下,平均誤差平方*面積越小的拿到越高分。所有的數字都是用2's compliment表示負值。 只要 再來就是要注意小數點在哪裡,其實扣掉我一開始以為要手工打造IEEE 754 compitable FPU的3天的話,這東西做的還滿快的。
--無關解法--
如果再給我一次機會,我要拜託助教就算作業用中文出也好,題目還是清楚一點比較能節省大家的時間。 如果不知道什麼叫小數的話可以問同學,也可以上網查。小數點不能跑的東西就不會叫floating number,floating number是floating point number的懶人寫法,如果真的很堅持不讓小數點動來動去,還有一種字叫fixed point number。如果要說小數的話用binary fraction大家就算要上網查一下這是什麼字也好過被奇怪的floating number誤導。到底有誰看到 這樣的描述 不會疑惑的呢?當然不仔細看-1~(1-2**-5)是我慧根不夠,不過我真的沒在課本上看過有人寫 (6,5) floating number的。 March 10 IC Lab 1搞不好會是12次作業中最輕鬆的一次。寫寫gate level verilog就結束了。 待查証:
-- 前人的文章,不過他那一年好像是作shifter * 只支援subset |
|||
|
|