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

📄 pic_rom.vhd

📁 一个PIC单片机内核的VHDL实现
💻 VHD
字号:
-- This is a sample program for the PIC.  Note that the output of the-- program "hex2vhdl" doesn't contain these comments.-- Addr Opcode  Mnemonic---- 0000 0C25    movlw  0x25-- 0001 0028    movwf  R8-- 0002 0c72    movlw  0x72-- 0003 01c8    addwf  R8,w-- 0004 01e8    addwf  R8-- 0005 01e8    addwf  R8-- 0006 0248    comf   R8,w-- 0007 00e8    decf   R8-- 0008 02a8    incf   R8-- 0009 0108    iorwf  R8,w-- 000a 01a8    xorwf  R8-- 000b 0148    andwf  R8,w-- 000c 0368    rlf    R8-- 000d 0368    rlf    R8-- 000e 0368    rlf    R8-- 000f 0328    rrf    R8-- 0010 0328    rrf    R8-- 0011 0328    rrf    R8-- 0012 03a8    swapf  R8-- 0013 00a8    subwf  R8-- 0014 0088    subwf  R8,w-- 0015 0040    clrw-- 0016 0068    clrf   R8-- 0017 03e8    incfsz R8-- 0018 02e8    decfsz R8-- 0019 0a19    goto   0x19-- 001a 02e8    decfsz R8-- 001b 03e8    incsz  R8-- 001c 0a1c    goto   0x1c-- 001d 0508    bsf    R8,0-- 001e 0548    bsf    R8,2-- 001f 0588    bsf    R8,4-- 0020 05c8    bsf    R8,6-- 0021 0448    bcf    R8,2-- 0022 04c8    bcf    R8,6-- 0023 0608    btfsc  R8,0-- 0024 0628    btfsc  R8,2-- 0025 0a25    goto   0x25-- 0026 0728    btfss  R8,1-- 0027 0708    btfss  R8,0-- 0028 0a28    goto   0x28-- 0029 0dff    iorlw  0xff-- 002a 0ef0    andlw  0xf0-- 002b 0ff0    xorlw  0xf0-- 002c 0c08    movlw  0x08-- 002d 0024    movwf  R4-- 002e 0200    movf   R0,w---- 01ff 0a00    goto   0x00library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_arith.all;entity PIC_ROM is  port (	 Addr    : in   std_logic_vector(8 downto 0);	 Data    : out  std_logic_vector(11 downto 0));end PIC_ROM;architecture first of PIC_ROM isbegin  Data <=         "110000100101" When to_integer(Addr) = 00000 Else        "000000101000" When to_integer(Addr) = 00001 Else        "110001110010" When to_integer(Addr) = 00002 Else        "000111001000" When to_integer(Addr) = 00003 Else        "000111101000" When to_integer(Addr) = 00004 Else        "000111101000" When to_integer(Addr) = 00005 Else        "001001001000" When to_integer(Addr) = 00006 Else        "000011101000" When to_integer(Addr) = 00007 Else        "001010101000" When to_integer(Addr) = 00008 Else        "000100001000" When to_integer(Addr) = 00009 Else        "000110101000" When to_integer(Addr) = 00010 Else        "000101001000" When to_integer(Addr) = 00011 Else        "001101101000" When to_integer(Addr) = 00012 Else        "001101101000" When to_integer(Addr) = 00013 Else        "001101101000" When to_integer(Addr) = 00014 Else        "001100101000" When to_integer(Addr) = 00015 Else        "001100101000" When to_integer(Addr) = 00016 Else        "001100101000" When to_integer(Addr) = 00017 Else        "001110101000" When to_integer(Addr) = 00018 Else        "000010101000" When to_integer(Addr) = 00019 Else        "000010001000" When to_integer(Addr) = 00020 Else        "000001000000" When to_integer(Addr) = 00021 Else        "000001101000" When to_integer(Addr) = 00022 Else        "001111101000" When to_integer(Addr) = 00023 Else        "001011101000" When to_integer(Addr) = 00024 Else        "101000011001" When to_integer(Addr) = 00025 Else        "001011101000" When to_integer(Addr) = 00026 Else        "001111101000" When to_integer(Addr) = 00027 Else        "101000011100" When to_integer(Addr) = 00028 Else        "010100001000" When to_integer(Addr) = 00029 Else        "010101001000" When to_integer(Addr) = 00030 Else        "010110001000" When to_integer(Addr) = 00031 Else        "010111001000" When to_integer(Addr) = 00032 Else        "010001001000" When to_integer(Addr) = 00033 Else        "010011001000" When to_integer(Addr) = 00034 Else        "011000001000" When to_integer(Addr) = 00035 Else        "011000101000" When to_integer(Addr) = 00036 Else        "101000100101" When to_integer(Addr) = 00037 Else        "011100101000" When to_integer(Addr) = 00038 Else        "011100001000" When to_integer(Addr) = 00039 Else        "101000101000" When to_integer(Addr) = 00040 Else        "110111111111" When to_integer(Addr) = 00041 Else        "111011110000" When to_integer(Addr) = 00042 Else        "111111110000" When to_integer(Addr) = 00043 Else        "110000001000" When to_integer(Addr) = 00044 Else        "000000100100" When to_integer(Addr) = 00045 Else        "001000000000" When to_integer(Addr) = 00046 Else        "101000000000" When to_integer(Addr) = 00511 Else        "000000000000";end first;

⌨️ 快捷键说明

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