[問題] random的問題
現在在寫一個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
→
09/03 14:52, , 1F
09/03 14:52, 1F
→
09/03 14:52, , 2F
09/03 14:52, 2F
討論串 (同標題文章)