作者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