[問題] random的問題

看板MATLAB作者 (T毛很強滴)時間12年前 (2013/09/03 14:39), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串1/3 (看更多)
現在在寫一個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
文章代碼(AID): #1I9OG8vK (MATLAB)
文章代碼(AID): #1I9OG8vK (MATLAB)