1. 程式人生 > >verilog之十人表決器

verilog之十人表決器

功能描述:這是一個十個裁判表決的電路,基本功能:每個裁判輸入1:同意;0:不同意.

按照少數服從多數的原則,輸出情況除了通過、不通過或待定等狀態。

module first(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,out);
     input a1,a2,a3,a4,a5,a6,a7,a8,a9,a10;  //十路訊號
     output reg [1:0] out;
     reg [9:0] temp = 10'b0000000000;
     integer i,cout1,cout2;
     [email protected](temp)
      begin
          temp = {a1,a2,a3,a4,a5,a6,a7,a8,a9,a10};
          i=0;
          cout1 = 0;
          cout2 = 0;
          while(i<10)
          begin
          if(temp[i]) cout1 = cout1+1;
          else cout2 = cout2+1;
          i=i+1;
          end
          if(cout1==cout2)out=2'b00;//待定
          else if(cout1>cout2)out=2'b01;通過
          else if(cout1<cout2)out=2'b10;//不通過
          else out=2'b11;//未知錯誤
      end
endmodule