VHDL编写8-3线优先编码器
先简单介绍一下什么是"8-3线优先编码器": 8-3线优先编码器由9个输入端和五个输出端组成,允许同时在几个输入端输入信号。当有多个输入信号传入时,只对其中优先权最高的一个输入信号进行编码(输出的二进制代码以反码形式表示) 如图所示: 因此,我们可以进行实体定义: 定义八个输入端(由权低到权高):a,b,c,d,e,f,g,h 定义一个选通输入端(0时才正常工作):st 定义三个输出端:out0,out1,out2 定义一个扩展端:yex 定义一个无编码指示器:ys
下面我给出两种语句来实现它: 1.IF…ELSE语句
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY homework3 IS
PORT(a,b,c,d,e,f,g,h:IN BIT; --定义八个输入端(由权低到权高):a,b,c,d,e,f,g,h
st:IN BIT; --定义一个选通输入端(0时才正常工作):st
out0,out1,out2:OUT BIT; --定义三个输出端:out0,out1,out2
yex:OUT BIT; --定义一个扩展端:yex
ys:OUT BIT); --定义一个无编码指示器:ys
END homework3;
ARCHITECTURE yejiayu OF homework3 IS
SIGNAL tmp_in:BIT_VECTOR(7 DOWNTO 0); --信号数组
SIGNAL tmp_out:BIT_VECTOR(4 DOWNTO 0);
BEGIN
tmp_in |