matlab小技巧與verilog小技巧

2021-08-31 00:03:16 字數 1848 閱讀 3066

注釋**:選中**,ctrl+r

取消注釋:選中**,ctrl+t

採用中括號,可以將兩組資料進行拼接,

由於採用dec2bin是不能轉換負數的,這一點要注意了,那麼就需要表示負數的補碼形式,補碼形式很簡單,就是判斷某個數是否小於0,小於0的數就加上2的n次方,這樣既可轉換為無符號的十進位制,再將其十進位製用dec2bin轉換為二進位制,就是負數的補碼。

以下給出常用的**:

fid=fopen('d:\quartus_project\liruifeng_tem\do_pro\cp2\cp_2_4_matlab_alt_mixnco\sin.txt','w');

%注意在開啟檔案之前首先要建立好目錄路徑

for k=1:length(q_s)

b_s=dec2bin(q_s(k)+(q_s(k)<0)*2^n,n); %q_s小於0就為1,大於0就為0

%k;for j=1:n

if b_s(j)=='1'

tb=1;

else

tb=0;

endfprintf(fid,'%d',tb);

endfprintf(fid,'\r\n');

endfprintf(fid,';');

fclose(fid);

//將混頻濾波後的的1.25mhz單頻訊號dout寫入外部txt檔案中(out.txt)

integer file_out;

initial

begin

file_out=$fopen("out.txt");

//檔案必須放到simulation\modelsim的資料夾中

if(!file_out)

begin

$display("could not open file!");

$finish;

endendwire clk_write;

wire signed[19:0] dout_s; //將混頻後的資料,轉換為有符號數

assign dout_s=dout;

assign clk_write=clk&(rst); //產生寫入的時鐘訊號,復位狀態時候不寫入資料

always @ (posedge clk_write)

$fdisplay(file_out,"%d",dout_s); //將混頻後輸出的有符號的資料,寫入file_out代表的out.txt檔案中

//從外部txt檔案中讀入資料作為測試激勵

reg [9:0] stimulus[1:data_num]; //用於儲存從文字中讀取的資料,全部存放於陣列stimulus中

integer address=0;

initial

begin

$readmemb("sin.txt",stimulus);//檔案必須放到simulation\modelsim的資料夾中

repeat(data_num)

begin

address=address+1;

din=stimulus[address];

#clk_period;

endend

Matlab常用小技巧

matlab常用小技巧 1.m 檔案如果是函式,儲存的檔名最好與函式名一致,這點都很清楚。不過容易疏忽的是,m檔名的命名盡量不要是簡單的英文單詞,最好是由大小寫英文 數字 下劃線等組成。原因是簡單的單詞命名容易與 matlab 內部函式名同名,結果會出現一些莫名其妙的錯誤。例如,寫個 m檔案,命名為...

Matlab常用小技巧

m檔案如果是函式,儲存的檔名最好與函式名一致,這點都很清楚。不過容易疏忽的是,m檔名的命名盡量不要是簡單的英文單詞,最好是由大小寫英文 數字 下劃線等組成。原因是簡單的單詞命名容易與matlab內部函式名同名,結果會出現一些莫名其妙的錯誤。例如,寫個m檔案,命名為spy,執行時就彈出乙個怪怪的fig...

Matlab常用技巧

m檔案如果是函式,儲存的檔名最好與函式名一致,這點都很清楚。不過容易疏忽的是,m檔名的命名盡量不要是簡單的英文單詞,最好是由大小寫英文 數字 下劃線等組成。原因是簡單的單詞命名容易與matlab內部函式名同名,結果會出現一些莫名其妙的錯誤。例如,寫個m檔案,命名為spy,執行時就彈出乙個怪怪的fig...