📄 rom16.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 + -