2009-07-14 31 views
5

Làm thế nào để tạo số giả ngẫu nhiên trong FPGA?Làm thế nào để tạo ra số ngẫu nhiên giả trong FPGA?

+1

Đối với những người đang tìm kiếm số ngẫu nhiên trong FPGA, họ sẽ có thể dễ dàng tìm thấy câu hỏi này. Vì vậy, tôi sẽ không bỏ phiếu để đóng như một bản sao. – AlbertoPL

+0

Có lẽ những người đang tìm kiếm FPGA trong stackoverflow muốn biết về một trang web cụ thể: [Đề xuất thiết kế logic] (http://area51.stackexchange.com/proposals/20632/logic-design?referrer=YVw0qLaS2iiFAaI1gMp5oQ2) – woliveirajr

+0

oh, tốt rằng nó đã được yêu cầu ở đây và không có trong trang web Area 51 này. Nó đã bị xóa;) –

Trả lời

3

Nếu nó không phải cho việc mã hóa hoặc các ứng dụng khác với một kẻ thù thông minh (ví dụ cờ bạc) Tôi muốn sử dụng một cách tiếp cận linear feedback shift register.

Nó chỉ sử dụng độc quyền hoặc và thay đổi, vì vậy nó rất đơn giản để thực hiện trong phần cứng.

4

Có một lưu ý ứng dụng Xilinx tuyệt vời về việc tạo chuỗi số giả ngẫu nhiên hiệu quả trong một FPGA. Đó là XAPP052.

0

Như những người khác đã nói, LFSR có thể được sử dụng cho các số ngẫu nhiên giả trong một FPGA. Đây là một triển khai VHDL có độ dài tối đa 32-bit LFSR.

process(clk) 

    -- maximal length 32-bit xnor LFSR based on xilinx app note XAPP210 
    function lfsr32(x : std_logic_vector(31 downto 0)) return std_logic_vector is 
    begin 
    return x(30 downto 0) & (x(0) xnor x(1) xnor x(21) xnor x(31)); 
    end function; 

begin 
    if rising_edge(clk) then 
    if rst='1' then 
     pseudo_rand <= (others => '0'); 
    else 
     pseudo_rand <= lfsr32(psuedo_rand); 
    end if; 
    end if; 
end process; 
Các vấn đề liên quan