我想用VHDL中的環形振盪器來實現PUF,我想用不同的門延遲產生32個環形振盪器。我怎樣才能做到這一點? 我的代碼如下:如何在VHDL中產生隨機時間延遲
generate_ros:
for i in 0 to 31 generate
ro_1: ring_oscilator
generic map (delay => 200 ps , chain_len => 15) -- 200ps shall be random
port map (
rst_i => s_rst,
clk_o => s_inp(i)
);
end generate;
什麼是一個PUF?這是模擬還是合成? – Paebbels
Physical Unclonable Function - [PUF](http://rijndael.ece.vt.edu/puf/background.html)。如何合成一個可定義的延遲是一個練習,由讀者自行決定。這是製造過程不匹配PUF的「量化」,使其很難指定。從鏈接可以看到一個環形振盪器被推薦用於設備ID。這個想法是爲了防止製造鏈中的某個人(其他人)僞造硅產品。另請參見[改進的環形振盪器PUF:一種對FPGA友好的安全基元](http://rijndael.ece.vt.edu/puf/paper/jofc2010.pdf)。 – user1155120
感謝您的鏈接和解釋。我想先模擬它然後合成它。爲了在FPGA上模擬不同的環形振盪器,每個環形振盪器需要不同的延遲時間。如果我爲它們選擇相同的延遲,它會產生一個恆定的PUF :),這是我想避免的。 –