9.2.2优先编码器.txt

来自「编码器是把输每一个高、低电平的信号编写成一个对应的二进制代码」· 文本 代码 · 共 60 行

TXT
60
字号
优先编码器就是对某一个给定时刻只对优先级最高的输入信号进行编码的编码器,它的输入端口允许有多个输入信号同时有效。
LIBRARY IEEE 
USE IEEE.std_logic_1164.ALL

ENTITY pri_encoder IS
      PORT( d : IN std_logic_vector(7 DOWNTO O);
            e1 : IN std_logic;
            q : OUT std_logic_vector(2 DOWNTO 0);
            gs,e0: OUT std_logic);
END pri_encoder;

ARCHITECTURE rtl_arc OF pri_encorder IS
BEGIN
    PROCESS(e1,d)
    BEGIN
    IF("e1 = '1')THEN
       q <= "111";
       gs <= '1';
       e0 <= '1';
    ELSEIF (d = "11111111" AND e1 = '0')THEN
       q <= "111";
       gs <= '1';
       e0 <= '0';
     ELSEIF (d(7)= '0' AND e1 = '0')THEN
       q <= "000";
       gs <= '0';
       e0 <= '1';
     ELSEIF (d(6)= '0' AND e1 = '0')THEN
       q <= "001";
       gs <= '0';
       e0 <= '1';
     ELSEIF (d(5)= '0' AND e1 = '0')THEN
       q <= "010";
       gs <= '0';
       e0 <= '1';
     ELSEIF (d(4)= '0' AND e1 = '0')THEN
       q <= "011";
       gs <= '0';
       e0 <= '1';
     ELSEIF (d(3)= '0' AND e1 = '0')THEN
       q <= "100";
       gs <= '0';
       e0 <= '1';
     ELSEIF (d(2)= '0' AND e1 = '0')THEN
       q <= "101";
       gs <= '0';
       e0 <= '1';
     ELSEIF (d(1)= '0' AND e1 = '0')THEN
       q <= "110";
       gs <= '0';
       e0 <= '1';
     ELSEIF (d(0)= '0' AND e1 = '0')THEN
       q <= "111";
       gs <= '0';
       e0 <= '1';
     END IF;
    END PROCESS;
END rtl_arc;

       

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?