设计一个16-4优先编码器
法一
author : Mr.Mao
e-mail : 2458682080@qq.com
module encoder_16_4(x, y, e) ;
input wire [15:0] x ;
output reg [3:0] y ;
output reg e ;
integer i ;
integer j=0 ;
always @(*)
begin
for (i=0;i<16;i=i+1)
begin
if (x[i]==1) y <= i ;
else j = j + 1 ;
end
if (j==16) e <= 1 ;
else e <= 0 ;
end
endmodule
法二
module dec16_4x
(
input [15:0] x,
output reg[3:0] y
);
reg [15:0] i;
always @*
begin
y = 0;
i = 0;
repeat(16)
begin
if(~x[i]) y=i;
i=i+1;
end
end
endmodule