
许久刷牛客网的题目了,虽然很简单的一道题目,但是还是思考了一会。
问题的核心就是怎么将1个38译码器变成416译码器,其实想一下就可以知道
我们分别将16个bit分为上下8bit切分成两个83编码器
这样输出了2个3bit的Y,分别是Y_up和Y_low,那么输出只有4个bit怎么办?
画一个真值表就不难发现,最高位只有在高位优先编码有效的时候才会置1,
所以,用一个三目运算符就能够输出正确的L,即
assign L = (GS_upper & ~EO_upper)?{1'b1,Y_upper}:{1'b0,Y_lower};