(1)IF_THEN语句
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY MUX41A IS
PORT (A,B,C,D,S0,S1,S2,S3 : IN STD_LOGIC;
Y : OUT STD_LOGIC);
END ENTITY MUX41A;
ARCHITECTURE BHV OF MUX41A IS
BEGIN
PROCESS(S0,S1,S2,S3,A,B,C,D)
BEGIN
IF S0=’0’ AND NOT(S1=’0’ OR S2=’0’ OR S3=’0’) THEN Y<=A;
ELSIF S1=’0’ AND NOT(S0=’0’ OR S2=’0’ OR S3=’0’) THEN Y<=B;
ELSIF S2=’0’ AND NOT(S0=’0’ OR S1=’0’ OR S3=’0’) THEN Y<=C;
ELSIF S3=’0’ AND NOT(S0=’0’ OR S1=’0’ OR S2=’0’) THEN Y<=D;
END NULL;
END IF;
END PROCESS;
END BHV;
(2)WHEN_ELSE语句
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY MUX41A IS
PORT (A,B,C,D,S0,S1,S2,S3 : IN STD_LOGIC;
Y : OUT STD_LOGIC);
END ENTITY MUX41A;
ARCHITECTURE BHV OF MUX41A IS
BEGIN
PROCESS(S0,S1,S2,S3,A,B,C,D)
BEGIN
Y<=A WHEN S0=’0’ AND NOT(S1=’0’ OR S2=’0’ OR S3=’0’) ELSE
B WHEN S1=’0’ AND NOT(S0=’0’ OR S2=’0’ OR S3=’0’) ELSE
C WHEN S2=’0’ AND NOT(S0=’0’ OR S1=’0’ OR S3=’0’) ELSE
D WHEN S3=’0’ AND NOT(S0=’0’ OR S1=’0’ OR S2=’0’) ELSE
NULL ;
END PROCESS;
END BHV;
(3)CASE 语句
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY MUX41A IS
PORT (A,B,C,D,S0,S1,S2,S3 : IN STD_LOGIC;
Y : OUT STD_LOGIC);
END ENTITY MUX41A;
ARCHITECTURE BHV OF MUX41A IS
SIGNAL S : STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
S <= S3 & S2 & S1 & S0;
PROCESS(S3,S2,S1,S0)
BEGIN
CASE (S) IS
WHEN “1110” => Y<=A;
WHEN “1101” => Y<=B;
WHEN “1011” => Y<=C;
WHEN “0111” => Y<=D;
WHEN OTHERS => NULL;
END CASE;
END PROCESS;
END BHV;
(4)WITH_SELECT语句
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY MUX41A IS
PORT (A,B,C,D,S0,S1,S2,S3 : IN STD_LOGIC;
Y : OUT STD_LOGIC);
END ENTITY MUX41A;
ARCHITECTURE BHV OF MUX41A IS
SIGNAL S : STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
S <= S3 & S2 & S1 & S0;
PROCESS(S3,S2,S1,S0)
BEGIN
WITH S SELECT
Y<=A WHEN “1110”,
B WHEN “1101”,
C WHEN “1011”,
D WHEN “0111” ;
END PROCESS;
END BHV;
3-4
(1)半减器
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY h_suber IS
PORT ( x, y : IN STD_LOGIC;
diff, s_out : OUT STD_LOGIC);
END ENTITY h_suber;
ARCHITECTURE fh1 OF h_suber IS
BEGIN
s_out <= (NOT x ) AND y;
diff <= x XOR y;
END ARCHITECTURE fh1;
(2)全减器
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY f_suber IS
PORT ( X,Y,sub_in : IN STD_LOGIC;
diff,s_out : OUT STD_LOGIC);
END ENTITY f_suber;
ARCHITECTURE fd1 OF f_suber IS
COMPONENT h_suber
PORT (x ,y : IN STD_LOGIC; s_out ,diff : OUT STD_LOGIC);
END COMPONENT;
SIGNAL net1, net2, net3: STD_LOGIC;
BEGIN
u1 : h_suber PORT MAP(x=>X, y=>Y, diff=>net1, s_out=>net2);
u2 : h_suber PORT MAP(x=>net1, y=>sub_in, diff=>diffr, s_out=>net3);
sub_out <= net2 OR net3;
END fd1;
打赏帖 | |
---|---|
【Zephyr】使用Zephyr外设初始化过程解析被打赏30分 | |
【S32K146】S32DS watchdog 配置使用被打赏20分 | |
【Zephyr】使用 IAR 调试 Zephyr 镜像被打赏20分 | |
赚取电动螺丝刀+电源电路理论知识分享1被打赏5分 | |
我想要一部加热台+分享常见运算放大器电路的应用被打赏5分 | |
【Zephyr】MCXN947 Zephyr 开发入门适配shell被打赏20分 | |
我想要一部加热台+常见的MOS管驱动电路被打赏5分 | |
【我要开发板】6.联合MATLAB记录数据被打赏50分 | |
【换取手持数字示波器】MicrochipMPLABHarmony框架下串口调试printf输出记录被打赏29分 | |
【瑞萨RA2E1开发板】:使用ADC功能实现位移传感器采集方案被打赏20分 |