rom_mn_interlace.vhd

来自「一个简单的交织实现程序」· VHDL 代码 · 共 72 行

VHD
72
字号
library ieee;
use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity rom_mn_interlace is
 port
   ( counter :in std_logic_vector(4 downto 0);--integer range  0 to 15; --15=m*n-1=4*4-1
   clk :in std_logic;
   --ch :in std_logic;
   interlace_addr: out std_logic_vector(4 downto 0)
   );
 end rom_mn_interlace;

architecture beha of rom_mn_interlace is
 subtype rom_word is std_logic_vector(4 downto 0);

 type rom_table is array (0 to 29) of rom_word; --15=m*n-1

constant rom: rom_table:= rom_table'(
---1
rom_word'("00000"),--0
rom_word'("00110"),--6
rom_word'("01100"),--12
rom_word'("10010"),--18
rom_word'("11000"),--24

rom_word'("11001"),--25
rom_word'("00001"),--1
rom_word'("00111"),--7
rom_word'("01101"),--13
rom_word'("10011"),--19

rom_word'("10100"),--20
rom_word'("11010"),--26
rom_word'("00010"),--2
rom_word'("01000"),--8
rom_word'("01110"),--14

rom_word'("01111") , ---15
rom_word'("10101"),  ---21
rom_word'("11011") , ---27
rom_word'("00011") , ---3 
rom_word'("01001") , ---9

rom_word'("01010") , ---10
rom_word'("10000")  ,---16
rom_word'("10110") , ---22
rom_word'("11100") , ---28
rom_word'("00100") , ---4

rom_word'("00101"), ---5
rom_word'("01011") , ---11
rom_word'("10001") , ---17
rom_word'("10111") , ---23
rom_word'("11101")  ---29
    );

begin

process(clk  )
 begin
  if (clk'event and clk='1' ) then 
    interlace_addr<=rom(conv_integer(counter));
 end if;
end process;
end beha;




⌨️ 快捷键说明

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