1、3/2把學長給的DCT code放到Keil上模擬。將變數作記憶體位子的分配。將asm code縮短至2000 B以下。Program Size:data=49.0 xdata=128 code=1921DCT vars and Test codememory3/17將DCT的C code,透過Keil轉成 8051 assemble code,放到ModelSim上作pre-sim。透過Keil debugger支援的單步執行,觀察wave的訊號。ACALL(orig)ACALL(orig)ACALL需要兩個ins cycle去執行,但是PC卻早了一個ins cycle跳去,且隨著ins c
2、ycle的增加而改變(+2)。ACALL(new)為了讓PC能delay一個ins cycle,把更新PC的地方多加個-2。(?)ALU carry value(orig)Carry(C_out)在不對的T cycle時update。ALU carry value(after)多設了一個暫存器(C_in_D)紀錄control訊號送達ALU前的carry。(?)以上兩個問題經過修改後,ModelSim的simulation結果是正確的。Download到FPGA目前還是有問題。3/24Download to FPGA。跟Gary的TLM bus接起來。修改ACALL和ALU carry。ACA
3、LL(last time)之前為了讓PC能delay一個ins cycle,把更新PC的地方多加個-2。ACALL(now)把PC的conj訊號延後一個ins cycle。ALU carry value(last time)多設了一個暫存器(C_in_D)紀錄control訊號送達ALU前的carry。ALU carry value(now)將ALU carry改的和ALU output一樣,只有在T=5的時候才會接收,其他時間則擋住。3/31On Xilinx4/14P51 memoryP51SysCtrlezIFFIFO_INFIFO_OUTAPP_CHmemoryexampleezIFF
4、IFO_INFIFO_OUTAPP_CHmemory4/20memory的資料可以寫入並讀出來,但是總是有部分讀取的數值錯誤。是 xilinx core gen產生的memory的問題input&address options原本設定成non registered,這會造成write data時memory寫入的data不穩定之後改成 registered就解決了部份讀取數值錯誤的問題了。因此又多一個問題,address registered會造成讀取data delay一個cycleinput address後要等一個cycle才會output出對應的data。但是我的8051 core是設定成沒有那一個cycle delay的。5/12降低選擇器的複雜度,以解決訊號不穩的問題。ROMRAMxRAM?MUXHost修正DCT程式的錯誤。目前FPGA裡是塞兩個8051 core。正在和gary的bus接起來作測試。Host(PC)InterfaceSysCtrlP51(0)P51(1)mem(0)mem(1)end