[問題] verilog for loop?
問題:
由於需要access大量的資料,需要使用 for loop
for loop 使用 synchronous reset 寫法可以 synthesis
而使用 asynchronous reset 寫法無法 synthesis
如何改寫 asynchronous reset的寫法讓他可以合成(必須使用asynchronous flip-flop)
input [63:0] data_in [8191:0];
reg[63:0]data[8191:0];
Synchronous reset:
always_ff@(posedge clk)
for(i=0;i<8192;i=i+1)
if(!rst_n)
data[i] <= 0;
else if(en)
data[i] <= data_in;
Asynchronous reset:
always_ff@(posedge clk or negedge rst_n)
for(i=0;i<8192;i=i+1)
if(!rst_n)
data[i] <= 0;
else if(en)
data[i] <= data_in[i];
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.160.196.206
※ 文章網址: http://www.ptt.cc/bbs/Electronics/M.1404744412.A.D83.html
※ 編輯: bw51 (118.160.196.206), 07/07/2014 22:49:22
→
07/08 13:22, , 1F
07/08 13:22, 1F
→
07/08 13:22, , 2F
07/08 13:22, 2F
推
07/08 15:26, , 3F
07/08 15:26, 3F
→
07/08 17:25, , 4F
07/08 17:25, 4F
→
07/08 17:27, , 5F
07/08 17:27, 5F
推
07/08 17:37, , 6F
07/08 17:37, 6F
你的意思是指?
Asynchronous reset:
always_ff@(posedge clk or negedge rst_n)
if(!rst_n)
for(i=0;i<8192;i=i+1)
begin
data[i] <= 0;
end
else if(en)
for(i=0;i<8192;i=i+1)
begin
data[i] <= data_in[i];
end
推
07/08 17:45, , 7F
07/08 17:45, 7F
我知道你的意思,我把data_in換成array了
※ 編輯: bw51 (118.160.196.206), 07/08/2014 20:12:03
推
07/08 21:18, , 8F
07/08 21:18, 8F
推
07/09 00:32, , 9F
07/09 00:32, 9F
推
07/10 11:00, , 10F
07/10 11:00, 10F
推
07/12 11:59, , 11F
07/12 11:59, 11F
推
12/24 22:30, , 12F
12/24 22:30, 12F
→
12/24 22:30, , 13F
12/24 22:30, 13F
→
12/24 22:31, , 14F
12/24 22:31, 14F
→
12/24 22:32, , 15F
12/24 22:32, 15F