作者starmoon0918 (T毛很強滴)
看板MATLAB
標題[問題] random的問題
時間Tue Sep 3 14:38:57 2013
現在在寫一個random的table要餵給ROM使用
但之前寫的table當bit數超過55之後,後面都呈現0
以下是我第一版本
------------------------------------------------------------------------------
n0=input('index_num:');
n1=input('bit_width:');
outwidth = n1;
Tini_file = fopen('table.v','w');
for count=1:2^(n0)
k=rand*(2^outwidth); %亂數產生
str=dec2bin(k,n1)
fprintf(Tini_file,'%s\n',str);
end
------------------------------------------------------------------------------
問題就是上述所說,所以要修改table的型態
而我想到的方式就是把所需的bit數以64為一個基準
切成兩塊以上
-------------------- ---------- ----------
| | | | | |
| | | seed 1 | | seed 2 |
| 128 bit | | | | |
| | ====> | 64 bit | + | 64 bit |
| | | | | |
| | | | | |
| | | | | |
-------------------- ---------- ----------
因此對上述程式碼修改
------------------------------------------------------------------------------
n0=input('index_num:');
n1=input('bit_width:');
outwidth = n1;
n2=n1-64;
%第一區塊以64bit為主,第二區塊先暫時用替補bit數
Tini_file = fopen('table.v','w');
if n1<64
for count=1:2^(n0)
k=rand*(2^outwidth);
%亂數產生
str=dec2bin(k,n1)
fprintf(Tini_file,'%s\n',str);
end
else
for count=1:2^(n0)
k=rand*(2^outwidth);
%亂數產生
str1=dec2bin(k,n2)
%seed1
j=rand*(2^(outwidth));
%亂數產生
str2=dec2bin(j,n2)
%seed2
fprintf(Tini_file,'%s %s\n',str1,str2);
end
end
跑出來的結果的bits數為我一開始輸入的n1數
(而且有些地方還會少1~3bit)
並沒有出現第一區塊鎖定64bit
可以請問一下是哪邊有錯誤?
--
【板主:top90233a/pp761211】 《 快 樂 打 棒 球 》 看板《BB_Online》
15275
20 4/09 luckyboy1800 □ [問題] 這種情況
你會揮棒嗎?
15276
12 4/09
kevenc □ [發卡] 剛被宿網
陰了(發畢)
15277 ~
11 4/09
malone32 □ [閒聊] 積分賽頻
道
15278
11 4/09
ajai □ [發卡] 紅中好不
好?(已發畢) ←↙↓↘→ + ㊣
15279 ~
19 4/09
kalotter □ [發卡] 下雨天好
濕...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.168.135
1F:→ H45:太小的數字沒補零? 09/03 14:52
2F:→ H45:抱歉好像不是這問題.. 09/03 14:52