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

📄 rom16.vhd

📁 在软件MAX+plus II环境中
💻 VHD
字号:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY ROM16 IS
PORT(
       OROM:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
       ADDR:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
       CS_I: IN STD_LOGIC
);

END ROM16;
ARCHITECTURE A OF ROM16 IS
BEGIN
OROM<="10010000" WHEN ADDR= "00000000"AND CS_I='0' ELSE   --         MOV  R0 10
      "00001010" WHEN ADDR= "00000001"AND CS_I='0' ELSE   --            
      "10010001" WHEN ADDR= "00000010"AND CS_I='0' ELSE   --         MOV  R1 0
      "00000000" WHEN ADDR= "00000011"AND CS_I='0' ELSE   --            
      "10000010" WHEN ADDR= "00000100"AND CS_I='0' ELSE   --   L1:IN1  R2 
      "00011001" WHEN ADDR= "00000101"AND CS_I='0' ELSE   --         MOVSTR R2 [R1] 
      "11010001" WHEN ADDR= "00000110"AND CS_I='0' ELSE   --         INC  R1 
      "10100100" WHEN ADDR= "00000111"AND CS_I='0' ELSE   --         CMP R1 R0 
      "10110000" WHEN ADDR= "00001000"AND CS_I='0' ELSE   --         JB   L1
      "00000100" WHEN ADDR= "00001001"AND CS_I='0' ELSE   --            4
      "10010000" WHEN ADDR= "00001010"AND CS_I='0' ELSE   --         MOV  R0 9
      "00001001" WHEN ADDR= "00001011"AND CS_I='0' ELSE   --            
      "10010001" WHEN ADDR= "00001100"AND CS_I='0' ELSE   --         MOV  R1 0
      "00000000" WHEN ADDR= "00001101"AND CS_I='0' ELSE   --            
      "00100110" WHEN ADDR= "00001110"AND CS_I='0' ELSE   --   L2:MOVLD [R1] R2 
      "11010001" WHEN ADDR= "00001111"AND CS_I='0' ELSE   --         INC  R1 
      "10100001" WHEN ADDR= "00010000"AND CS_I='0' ELSE   --         CMP R0 R1 
      "10110000" WHEN ADDR= "00010001"AND CS_I='0' ELSE   --         JB   L4
      "00011111" WHEN ADDR= "00010010"AND CS_I='0' ELSE   --            31
      "00100111" WHEN ADDR= "00010011"AND CS_I='0' ELSE   --         MOVLD [R1] R3 
      "10101110" WHEN ADDR= "00010100"AND CS_I='0' ELSE   --         CMP R3 R2 
      "10110000" WHEN ADDR= "00010101"AND CS_I='0' ELSE   --         JB   L3
      "00011001" WHEN ADDR= "00010110"AND CS_I='0' ELSE   --            25
      "11100000" WHEN ADDR= "00010111"AND CS_I='0' ELSE   --         JMP   L2
      "00001110" WHEN ADDR= "00011000"AND CS_I='0' ELSE   --            14
      "00011001" WHEN ADDR= "00011001"AND CS_I='0' ELSE   --   L3:MOVSTR R2 [R1] 
      "00110001" WHEN ADDR= "00011010"AND CS_I='0' ELSE   --         DEC  R1 
      "00011101" WHEN ADDR= "00011011"AND CS_I='0' ELSE   --         MOVSTR R3 [R1] 
      "11010001" WHEN ADDR= "00011100"AND CS_I='0' ELSE   --         INC  R1 
      "11100000" WHEN ADDR= "00011101"AND CS_I='0' ELSE   --         JMP   L2
      "00001110" WHEN ADDR= "00011110"AND CS_I='0' ELSE   --            14
      "00110000" WHEN ADDR= "00011111"AND CS_I='0' ELSE   --   L4:DEC  R0 
      "10010001" WHEN ADDR= "00100000"AND CS_I='0' ELSE   --         MOV  R1 0
      "00000000" WHEN ADDR= "00100001"AND CS_I='0' ELSE   --            
      "10100100" WHEN ADDR= "00100010"AND CS_I='0' ELSE   --         CMP R1 R0 
      "10110000" WHEN ADDR= "00100011"AND CS_I='0' ELSE   --         JB   L2
      "00001110" WHEN ADDR= "00100100"AND CS_I='0' ELSE   --            14
      "10010000" WHEN ADDR= "00100101"AND CS_I='0' ELSE   --         MOV  R0 10
      "00001010" WHEN ADDR= "00100110"AND CS_I='0' ELSE   --            
      "10010001" WHEN ADDR= "00100111"AND CS_I='0' ELSE   --         MOV  R1 0
      "00000000" WHEN ADDR= "00101000"AND CS_I='0' ELSE   --            
      "00100110" WHEN ADDR= "00101001"AND CS_I='0' ELSE   --   L5:MOVLD [R1] R2 
      "11010001" WHEN ADDR= "00101010"AND CS_I='0' ELSE   --         INC  R1 
      "11111000" WHEN ADDR= "00101011"AND CS_I='0' ELSE   --         OUT1 R2  
      "10100100" WHEN ADDR= "00101100"AND CS_I='0' ELSE   --         CMP R1 R0 
      "10110000" WHEN ADDR= "00101101"AND CS_I='0' ELSE   --   L6:JB   L5
      "00101001" WHEN ADDR= "00101110"AND CS_I='0' ELSE   --            41
      "11111000" WHEN ADDR= "00101111"AND CS_I='0' ELSE   --         OUT1 R2  
      "11100000" WHEN ADDR= "00110000"AND CS_I='0' ELSE   --         JMP   L6
      "00101101" WHEN ADDR= "00110001"AND CS_I='0' ELSE   --            45
      "00000000";
END A;

⌨️ 快捷键说明

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