1、优先编码器一、设计任务:描述一个优先编码器。该电路有 8 个输入端 d(8 位) ,3 个输出端 y(3 位)。二、算法设计:用 if 语句描述电路,利用真值表辅助,编写出程序。三、端口图: 四、真值表真值表d7 d6 d5 d4 d3 d2 d1 d0 y2 y1 y00 x x x x x x x 0 0 01 0 x x x x x x 0 0 11 1 0 x x x x x 0 1 01 1 1 0 x x x x 0 1 11 1 1 1 0 x x 1 0 01 1 1 1 1 0 x x 1 0 11 1 1 1 1 1 0 x 1 1 01 1 1 1 1 1 1 0 1 1
2、 1五、实验源程序 encoder.vhdlibrary ieee; use ieee.std_logic_1164.all;entity encoder is port(d:in std_logic_vector(0 to 7);y:out std_logic_vector(2 downto 0);end ;architecture a of encoder is begin processbeginif d(7)=0 then y=“000“; elsif d(6)=0 then y=“001“; elsif d(5)=0 then y=“010“; elsif d(4)=0 then y=“011“; elsif d(3)=0 then y=“100“; elsif d(2)=0 then y=“101“; elsif d(1)=0 then y=“110“; elsif d(0)=0 then y=“111“; end if;end process;end;-由优先编码器的真值表可知,输入信号 d7 的优先权最高,只要 d7=0,无论其他为何值,输出都由 d7 决定。-vhdl 语言可用 if 语句描述优先权特性,在 if 语句中最先描述 d7 这个优先编码条件。优先级别越低,在语句中描述的顺序越靠后。六、仿真图