matlab必須產生定點的二進位制補碼字串,這樣才可以將資料寫入到外面的檔案中供modelsim讀取。所以這裡要利用matlab的定點設計函式fix,以及幾個轉換函式,比如說,dec2num等等。matlab中好像沒有將有符號數轉化為補碼的,在這裡我們可以利用有符號數補碼的計算方法來自行編寫一個int2sign.m
2:接下來就是將產生的定點測試向量(N位二進位制補碼,N為設計的濾波器的輸入位寬),利用matlab的檔案讀取功能存放在外部.txt檔案中。modelsim中讀取該檔案的資料,存放在儲存單元中,供模擬測試。
3:下面就會得到modelsim中的模擬結果。前面提到過,濾波器的設計輸出是M位有符號數,所以從modelsim輸出埠中得到的是M位二進位制0、1,modelsim中對內部變數的讀寫只單純的讀寫二進位制或者代表的無符號實數。所以現在再次利用matlab,將從modelsim中讀出的無符號數轉換為其實質的有符號數,轉換方法還是遵循前面一篇中第2點提到的那個補碼產生原理。
4:接下來,我們就可以對比分析了。還要注意一點就是,modelsim或者ISE中式沒有小數概念的。所以之前設計時對輸入資料我們是將其擴大了2^f倍,其中f是小數位數。對係數也是進行同樣的放大。
matlab必須產生定點的二進位制補碼字串,這樣才可以將資料寫入到外面的檔案中供modelsim讀取。所以這裡要利用matlab的定點設計函式fix,以及幾個轉換函式,比如說,dec2num等等。matlab中好像沒有將有符號數轉化為補碼的,在這裡我們可以利用有符號數補碼的計算方法來自行編寫一個int2sign.m
2:接下來就是將產生的定點測試向量(N位二進位制補碼,N為設計的濾波器的輸入位寬),利用matlab的檔案讀取功能存放在外部.txt檔案中。modelsim中讀取該檔案的資料,存放在儲存單元中,供模擬測試。
3:下面就會得到modelsim中的模擬結果。前面提到過,濾波器的設計輸出是M位有符號數,所以從modelsim輸出埠中得到的是M位二進位制0、1,modelsim中對內部變數的讀寫只單純的讀寫二進位制或者代表的無符號實數。所以現在再次利用matlab,將從modelsim中讀出的無符號數轉換為其實質的有符號數,轉換方法還是遵循前面一篇中第2點提到的那個補碼產生原理。
4:接下來,我們就可以對比分析了。還要注意一點就是,modelsim或者ISE中式沒有小數概念的。所以之前設計時對輸入資料我們是將其擴大了2^f倍,其中f是小數位數。對係數也是進行同樣的放大。