1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
//
// Copyright 2011 Ettus Research LLC
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
module priority_enc
(input [31:0] in,
output reg [31:0] out);
always @*
casex(in)
32'b1xxx_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx : out <= 31;
32'b01xx_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx : out <= 30;
32'b001x_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx : out <= 29;
32'b0001_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx : out <= 28;
32'b0000_1xxx_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx : out <= 27;
32'b0000_01xx_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx : out <= 26;
32'b0000_001x_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx : out <= 25;
32'b0000_0001_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx : out <= 24;
32'b0000_0000_1xxx_xxxx_xxxx_xxxx_xxxx_xxxx : out <= 23;
32'b0000_0000_01xx_xxxx_xxxx_xxxx_xxxx_xxxx : out <= 22;
32'b0000_0000_001x_xxxx_xxxx_xxxx_xxxx_xxxx : out <= 21;
32'b0000_0000_0001_xxxx_xxxx_xxxx_xxxx_xxxx : out <= 20;
32'b0000_0000_0000_1xxx_xxxx_xxxx_xxxx_xxxx : out <= 19;
32'b0000_0000_0000_01xx_xxxx_xxxx_xxxx_xxxx : out <= 18;
32'b0000_0000_0000_001x_xxxx_xxxx_xxxx_xxxx : out <= 17;
32'b0000_0000_0000_0001_xxxx_xxxx_xxxx_xxxx : out <= 16;
32'b0000_0000_0000_0000_1xxx_xxxx_xxxx_xxxx : out <= 15;
32'b0000_0000_0000_0000_01xx_xxxx_xxxx_xxxx : out <= 14;
32'b0000_0000_0000_0000_001x_xxxx_xxxx_xxxx : out <= 13;
32'b0000_0000_0000_0000_0001_xxxx_xxxx_xxxx : out <= 12;
32'b0000_0000_0000_0000_0000_1xxx_xxxx_xxxx : out <= 11;
32'b0000_0000_0000_0000_0000_01xx_xxxx_xxxx : out <= 10;
32'b0000_0000_0000_0000_0000_001x_xxxx_xxxx : out <= 9;
32'b0000_0000_0000_0000_0000_0001_xxxx_xxxx : out <= 8;
32'b0000_0000_0000_0000_0000_0000_1xxx_xxxx : out <= 7;
32'b0000_0000_0000_0000_0000_0000_01xx_xxxx : out <= 6;
32'b0000_0000_0000_0000_0000_0000_001x_xxxx : out <= 5;
32'b0000_0000_0000_0000_0000_0000_0001_xxxx : out <= 4;
32'b0000_0000_0000_0000_0000_0000_0000_1xxx : out <= 3;
32'b0000_0000_0000_0000_0000_0000_0000_01xx : out <= 2;
32'b0000_0000_0000_0000_0000_0000_0000_001x : out <= 1;
32'b0000_0000_0000_0000_0000_0000_0000_0001 : out <= 0;
32'b0000_0000_0000_0000_0000_0000_0000_0000 : out <= 32'hFFFF_FFFF;
default : out <= 32'hFFFF_FFFF;
endcase // casex (in)
endmodule // priority_enc
|