⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qiangda.vhd

📁 全加器,有半加器和或门组成.元件例化语句.
💻 VHD
字号:
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY qiangda IS
PORT( CLK,START,CLR_1,CLR_2 : IN BIT;
ADD10,ADD20,ADD30 : IN BIT;
        SEL : IN STD_LOGIC_VECTOR(1 DOWNTO 0);
       LED : OUT INTEGER RANGE 1 TO 2;
       mark_1 : OUT INTEGER RANGE 0 TO 255;
       mark_2 : OUT INTEGER RANGE 0 TO 255);
END qiangda;
ARCHITECTURE rtl OF qiangda IS
BEGIN
PROCESS (START,CLK,ADD10,ADD20,ADD30,CLR_1,CLR_2)
    VARIABLE cnt_1 : INTEGER:=0;
    VARIABLE cnt_2 : INTEGER:=0;
BEGIN
    IF (clk'EVENT AND clk = '1') THEN
            IF (START='1') THEN
CASE SEL IS
WHEN "01"=>
IF (CLR_1='1') THEN cnt_1 :=0;
     ELSIF (ADD10 = '1') THEN cnt_1 := cnt_1 + 10; 
        ELSIF (ADD20 = '1') THEN cnt_1 := cnt_1 + 20;
          ELSIF (ADD30 = '1') THEN cnt_1 := cnt_1 + 30;
        END IF;
            mark_1 <= cnt_1;

WHEN "10"=>
    IF (CLR_2='1') THEN cnt_2 :=0;
      ELSIF (ADD10 = '1') THEN cnt_2 := cnt_2 + 10; 
        ELSIF (ADD20 = '1') THEN cnt_2 := cnt_2 + 20;
         ELSIF (ADD30 = '1') THEN cnt_2 := cnt_2 + 30;
        END IF;
            mark_2 <= cnt_2;

WHEN OTHERS=>
             mark_1 <= cnt_1;
             mark_2 <= cnt_2;

            END CASE;
            END IF;
    END IF;
    END PROCESS;

    PROCESS (SEL,START)
    BEGIN
       IF (START='1') THEN
          IF (SEL="01" THEN LED<=1;
          ELSIF (SEL="10" THEN LED<=2;
          END IF;
       ELSE
              LED<=0;
       END IF;
    END PROCESS;

END rtl;

⌨️ 快捷键说明

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