0

これが私の問題です。システム構成によっては、不明な数の入力 (すべて 3 ビット幅) があります。最大値の入力を出力として選択するデコーダを設計したいと考えています。ここでは組み込みの Ruby を使用して、構成を RTL に渡すことができるようにしています。これが私のデザインです:

コード:

module decoder
(
<%  (1...NUM_INPUT).each do |i| -%>
     input      [2:0]  freq_<%=i%>,  
<% end -%>
     output    [2:0]  decoded_freq        
)
<%  (1...NUM_INPUT-1).each do |i| -%>
     wire      [2:0]  x<%=i%>,
<% end -%>

  integer i;
//decode logic below
  assign x1 = (freq_1 > freq_2)? freq_1:freq_2;  //compare the first two inputs and select the bigger one
  for (i=1; i<NUM_INPUT-1;i++)                   //for-loop to do the rest
       x<%=i+1%> = (x<%=i%> > freq_<%=i+2%>)? x<%=i%>:freq_<%=i+2%>;
  assign decoded_freq = x<%=NUM_INPUT-1%>;
endmodule

これは機能しますか?ここでの for ループについてはよくわかりません。私が望むようにうまくいくでしょうか?それを行う他の方法はありますか?

4

1 に答える 1