VL15 优先编码器Ⅰ

两种思路

timescale 复制代码
module encoder_83(
   input      [7:0]       I   ,
   input                  EI  ,
   
   output wire [2:0]      Y   ,
   output wire            GS  ,
   output wire            EO    
);

reg [4:0] temp1 ;
always @(*) begin
    casex({EI,I}) 
        9'b0_xxxx_xxxx:begin temp1 = 5'b000_0_0;end
        9'b1_0000_0000:begin temp1 = 5'b000_0_1;end
        9'b1_1xxx_xxxx:begin temp1 = 5'b111_1_0;end
        9'b1_01xx_xxxx:begin temp1 = 5'b110_1_0;end
        9'b1_001x_xxxx:begin temp1 = 5'b101_1_0;end
        9'b1_0001_xxxx:begin temp1 = 5'b100_1_0;end
        9'b1_0000_1xxx:begin temp1 = 5'b011_1_0;end
        9'b1_0000_01xx:begin temp1 = 5'b010_1_0;end
        9'b1_0000_001x:begin temp1 = 5'b001_1_0;end
        9'b1_0000_0001:begin temp1 = 5'b000_1_0;end
    endcase
end

assign {Y,GS,EO} =temp1;
//    assign Y[0] =  EI & (I[7] | ~I[6]&I[5] | ~I[6]&~I[4]&I[3] | ~I[6]&~I[4]&~I[2]&I[1]);
//    assign Y[1] =  EI & (I[7] | I[6] | ~I[5]&~I[4]&I[3] | ~I[5]&~I[4]&I[2]);
//    assign Y[2] =  EI && (I[4] | I[5] | I[6] | I[7]) ;

//    assign GS = EI && (I[0] | I[1] | I[2] | I[3]| I[4]| I[5]| I[6]| I[7])  ;
//    assign EO =  EI && ~(I[0] | I[1] | I[2] | I[3]| I[4]| I[5]| I[6]| I[7])   ;





endmodule
timescale 复制代码
module encoder_83(
   input      [7:0]       I   ,
   input                  EI  ,
   
   output wire [2:0]      Y   ,
   output wire            GS  ,
   output wire            EO    
);

//reg [4:0] temp1 ;
//always @(*) begin
//    casex({EI,I}) 
//        9'b0_xxxx_xxxx:begin temp1 = 5'b000_0_0;end
//        9'b1_0000_0000:begin temp1 = 5'b000_0_1;end
//        9'b1_1xxx_xxxx:begin temp1 = 5'b111_1_0;end
//        9'b1_01xx_xxxx:begin temp1 = 5'b110_1_0;end
//        9'b1_001x_xxxx:begin temp1 = 5'b101_1_0;end
//        9'b1_0001_xxxx:begin temp1 = 5'b100_1_0;end
//        9'b1_0000_1xxx:begin temp1 = 5'b011_1_0;end
//        9'b1_0000_01xx:begin temp1 = 5'b010_1_0;end
//        9'b1_0000_001x:begin temp1 = 5'b001_1_0;end
//        9'b1_0000_0001:begin temp1 = 5'b000_1_0;end
//    endcase
//end

//assign {Y,GS,EO} =temp1;

    assign Y[0] =  EI & (I[7] | ~I[6]&I[5] | ~I[6]&~I[4]&I[3] | ~I[6]&~I[4]&~I[2]&I[1]);
    assign Y[1] =  EI & (I[7] | I[6] | ~I[5]&~I[4]&I[3] | ~I[5]&~I[4]&I[2]);
    assign Y[2] =  EI && (I[4] | I[5] | I[6] | I[7]) ;

    assign GS = EI && (I[0] | I[1] | I[2] | I[3]| I[4]| I[5]| I[6]| I[7])  ;
    assign EO =  EI && ~(I[0] | I[1] | I[2] | I[3]| I[4]| I[5]| I[6]| I[7])   ;





endmodule
相关推荐
硅农深芯11 小时前
六大核心芯片:MCU/SOC/DSP/FPGA/NPU/GPU 的区别与应用解析
单片机·嵌入式硬件·fpga开发
9527华安11 小时前
FPGA纯verilog实现JESD204B协议,基于AD9081数据接收,提供2套工程源码和技术支持
fpga开发·jesd204b·ad9081
FPGA技术实战12 小时前
基于XADC IP核的FPGA芯片温度读取设计
网络协议·tcp/ip·fpga开发
丸子的蓝口袋13 小时前
FPGA DONE信号震荡
fpga开发
CinzWS15 小时前
基于Cortex-M3 SoC的eFuse模块--实现与验证考量
fpga开发·架构·efuse
jumu20217 小时前
CEEMDAN - SE:神奇的信号处理组合
fpga开发
坏孩子的诺亚方舟17 小时前
FPGA系统架构设计实践6_工程实现概述
fpga开发·xilinx·实现
FPGA小c鸡18 小时前
Verilog核心语法速查:可综合写法、运算符陷阱与SV增强(附模板)
fpga开发
步达硬件18 小时前
【FPGA】Verilog HDL编辑、RTL仿真、网表生成主流软件
fpga开发
太爱学习了1 天前
XILINX SRIOIP核详解、FPGA实现及仿真全流程(Serial RapidIO Gen2 Endpoint v4.1)
fpga开发·srio·dsp