Wednesday, April 12, 2006





















為了改良前一次的設計

所以在當ma>MAXMA後

再加上FLUSH1、FLUSH2、FLUSH3三段程式

讓ms3=6、7、8仍能繼續運算結果



















這次程式的方法是利用
ma指定給ma1
ma1再指定給ma2
ma2再指定給ma3
最後y[ma3]儲存結果
拖過三個週期
所以結果就會儲存在正確的位置
當ma3=5、ma=8時整個程式已經結束了
所以ma3=6、7、8都沒運算
所以結果都是z(高阻抗)

Wednesday, March 29, 2006





















549 ps=001 ma= 1 x1= 7 x2= x bx=4094 ax2=4095 bxc= x 0
x x z z z z z z
649 ps=001 ma= 2 x1= 6 x2= 49 bx= 14 ax2= 1 bxc= 1 0
x x 2 z z z z z
749 ps=001 ma= 3 x1= 5 x2= 36 bx= 12 ax2= 49 bxc= 17 0
x x 2 66 z z z z
因為使用non-blocking assignment
549時只有ma、x1被定值
其他x2、bx、ax2、bxc都取到錯誤ma、x1的值來運算
且已經結果已經存取兩次錯誤的值
所以都取到未知數
649時才取到正確的ma、x1算出正確的x2、bx
但ax2、bxc還是取到錯誤的值運算
結果取到第三次誤錯的值
769時ax2、bxc才取到正確的x2、bx
結果取到正確的值(當x=7)
但是這個結果是存在當x=5時



















因為使用阻塞式( non-bloking assignment)的語法

且ASM設計時將每個值的數運算分成六個區塊

所以x1、x2、bx、ax2、bxc的值都要等一個值運算完

才會指定給變數

所以就可以看到圖中的結果

計算的式子為 y=x^2+2x+3

Wednesday, March 15, 2006

三月十五號




















這個結果是輸入a=1、b=2、c=3
算Y=X^2+2X+3
結果記錄當X=7到0的所有Y

Wednesday, March 08, 2006

三月八號的記錄




















此為14/7的結果
r1為被除數,r2、r3為商
因為程式使用non-blocking assingment
所以數值會等一下個訊號來時再指定
故r2傳給r3出來後要等一個訊號
結果如下

6970 r1= 0  r2= 2  r3= 1  pb=0  ready=0

7070 r1=4089  r2= 3  r3= 2  pb=0  ready=1