📄 multigenhd_horz_logo.vhd
字号:
--------------------------------------------------------------------------------
-- Copyright (c) 2004 Xilinx, Inc.
-- All Rights Reserved
--------------------------------------------------------------------------------
-- ____ ____
-- / /\/ /
-- /___/ \ / Vendor: Xilinx
-- \ \ \/ Author: John F. Snow, Advanced Product Division, Xilinx, Inc.
-- \ \ Filename: $RCSfile: multigenHD_horz_logo.vhd,rcs $
-- / / Date Last Modified: $Date: 2004-12-09 15:00:20-07 $
-- /___/ /\ Date Created: May 25, 2004
-- \ \ / \
-- \___\/\___\
--
--
-- Revision History:
-- $Log: multigenHD_horz_logo.vhd,rcs $
-- Revision 1.1 2004-12-09 15:00:20-07 jsnow
-- Cosmetic changes only.
--
-- Revision 1.0 2004-08-26 15:03:31-06 jsnow
-- Translated from Verilog.
--
--------------------------------------------------------------------------------
--
-- XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS"
-- AS A COURTESY TO YOU, SOLELY FOR USE IN DEVELOPING PROGRAMS AND
-- SOLUTIONS FOR XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE,
-- OR INFORMATION AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE,
-- APPLICATION OR STANDARD, XILINX IS MAKING NO REPRESENTATION
-- THAT THIS IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT,
-- AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE
-- FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY
-- WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE
-- IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR
-- REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF
-- INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-- FOR A PARTICULAR PURPOSE.
--
--------------------------------------------------------------------------------
-- This module contains the horizontal sequencer for the HD video pattern
-- generator. A block RAM is used as a finite state machine to sequence through
-- the various horizontal regions of the video patterns. The module outputs a
-- horizontal region code indicating which horizontal region of the video
-- pattern is currently active.
--
-- This is a slightly modified version of the multigenHD_horz module from
-- XAPP682. The only difference is that this module outputs the entire
-- horizontal counter value as a port.
-------------------------------------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
use ieee.numeric_std.all;
use work.hdsdi_pkg.all;
use work.multigenHD_pkg.all;
library unisim;
use unisim.vcomponents.all;
entity multigenHD_horz_logo is
port (
clk: in std_logic; -- video clock
rst: in std_logic; -- async reset
ce: in std_logic; -- clock enable
std: in std_logic_vector(2 downto 0); -- video standard select
pattern: in std_logic_vector(1 downto 0); -- selects pattern type (colorbars or checkfield)
user_opt: in std_logic_vector(1 downto 0); -- selects colorbars options
first_line: in std_logic; -- asserted during first active video line
f: in std_logic; -- odd/even field indicator
v_inc: out std_logic; -- increment vertical counter
trs: out std_logic; -- asserted during 4 words of TRS
xyz: out std_logic; -- asserted during XYZ word of TRS
h: out std_logic; -- horizontal blanking interval indicator
h_region: out hrgn_type; -- horizontal region code
h_counter_lsb: out std_logic; -- LSB of horizontal counter
h_counter: out hd_hpos_type -- horizontal counter
);
end multigenHD_horz_logo;
architecture synth of multigenHD_horz_logo is
-------------------------------------------------------------------------------
-- Signal definitions
--
signal hrom_addr : std_logic_vector(8 downto 0); -- HROM address
signal hrom_out : std_logic_vector(31 downto 0); -- HROM output
signal h_counter_int : hd_hpos_type; -- horizontal counter
signal h_next_evnt : std_logic_vector(H_EVNT_MSB downto 0); -- next horizontal event
signal h_evnt_match : std_logic; -- output of horizontal event comparator
signal hrom_en : std_logic; -- EN input to horizontal ROM
signal h_region_rom : hrgn_type; -- current horizontal region
signal h_next_region : hrgn_type; -- next horizontal region
signal h_clr : std_logic; -- clears the horizontal counter
signal usropt_rgn : std_logic; -- horz region where h_region is affected by user_opt inputs
signal ceqpol_rgn : std_logic; -- horz region where h_region is affected by ceq polarity
signal eav2_rgn : std_logic; -- last two words of EAV
signal sav2_rgn : std_logic; -- last two words of SAV
signal GND : std_logic := '0';
signal VCC : std_logic := '1';
signal GND4 : std_logic_vector(3 downto 0) := "0000";
signal GND32 : std_logic_vector(31 downto 0) := (others => '0');
attribute INIT : string;
attribute SRVAL : string;
attribute WRITE_MODE : string;
attribute INITP_00 : string;
attribute INITP_01 : string;
attribute INITP_02 : string;
attribute INITP_03 : string;
attribute INITP_04 : string;
attribute INITP_05 : string;
attribute INITP_06 : string;
attribute INITP_07 : string;
attribute INIT_00 : string;
attribute INIT_01 : string;
attribute INIT_02 : string;
attribute INIT_03 : string;
attribute INIT_04 : string;
attribute INIT_05 : string;
attribute INIT_06 : string;
attribute INIT_07 : string;
attribute INIT_08 : string;
attribute INIT_09 : string;
attribute INIT_0A : string;
attribute INIT_0B : string;
attribute INIT_0C : string;
attribute INIT_0D : string;
attribute INIT_0E : string;
attribute INIT_0F : string;
attribute INIT_10 : string;
attribute INIT_11 : string;
attribute INIT_12 : string;
attribute INIT_13 : string;
attribute INIT_14 : string;
attribute INIT_15 : string;
attribute INIT_16 : string;
attribute INIT_17 : string;
attribute INIT_18 : string;
attribute INIT_19 : string;
attribute INIT_1A : string;
attribute INIT_1B : string;
attribute INIT_1C : string;
attribute INIT_1D : string;
attribute INIT_1E : string;
attribute INIT_1F : string;
attribute INIT_20 : string;
attribute INIT_21 : string;
attribute INIT_22 : string;
attribute INIT_23 : string;
attribute INIT_24 : string;
attribute INIT_25 : string;
attribute INIT_26 : string;
attribute INIT_27 : string;
attribute INIT_28 : string;
attribute INIT_29 : string;
attribute INIT_2A : string;
attribute INIT_2B : string;
attribute INIT_2C : string;
attribute INIT_2D : string;
attribute INIT_2E : string;
attribute INIT_2F : string;
attribute INIT_30 : string;
attribute INIT_31 : string;
attribute INIT_32 : string;
attribute INIT_33 : string;
attribute INIT_34 : string;
attribute INIT_35 : string;
attribute INIT_36 : string;
attribute INIT_37 : string;
attribute INIT_38 : string;
attribute INIT_39 : string;
attribute INIT_3A : string;
attribute INIT_3B : string;
attribute INIT_3C : string;
attribute INIT_3D : string;
attribute INIT_3E : string;
attribute INIT_3F : string;
-- XST synthesis initialization code HROM
-- Created by multigenHD_romgen.v
-- Video format mapping:
-- 000 = SMPTE 295M - 1080i 25Hz (1250 lines/frame)
-- 001 = SMPTE 274M - 1080sF 24Hz & 23.98Hz
-- 002 = SMPTE 274M - 1080i 30Hz & 29.97 Hz
-- 003 = SMPTE 274M - 1080i 25Hz
-- 004 = SMPTE 274M - 1080p 30Hz & 29.97Hz
-- 005 = SMPTE 274M - 1080p 25Hz
-- 006 = SMPTE 274M - 1080p 24Hz & 23.98Hz
-- 007 = SMPTE 296M - 720p 60Hz & 59.94Hz
attribute INIT of HROM : label is "00060FFFF";
attribute SRVAL of HROM : label is "00060FFFF";
attribute WRITE_MODE of HROM : label is "READ_FIRST";
attribute INITP_00 of HROM : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INITP_01 of HROM : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INITP_02 of HROM : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INITP_03 of HROM : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INITP_04 of HROM : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INITP_05 of HROM : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INITP_06 of HROM : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INITP_07 of HROM : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INIT_00 of HROM : label is "000746880006424700053BE600043585000328A40002222302011BC200000EE1";
attribute INIT_01 of HROM : label is "004F77F0000E77CF000D68EE000C5C0D000B57CC000A536B00094F2A00084AC9";
attribute INIT_02 of HROM : label is "00170010011678720115785611B4946001939454011294330991783501907811";
attribute INIT_03 of HROM : label is "015F0012001E0010001D0010001C0010001B0010001A00100019001000180010";
attribute INIT_04 of HROM : label is "0007001000060010000500100004001000030010000200100001001000000010";
attribute INIT_05 of HROM : label is "004F77F0000E0010000D0010000C0010000B0010000A00100009001000080010";
attribute INIT_06 of HROM : label is "00170010011678720115785611B4947D01939454011294330991783501907811";
attribute INIT_07 of HROM : label is "015F0012001E0010041D003C001C77CF001B0010001A00100019001000180010";
attribute INIT_08 of HROM : label is "000746880006424700053BE600043585000328A40002222302011BC200000EE1";
attribute INIT_09 of HROM : label is "004F77F0000E77CF000D68EE000C5C0D000B57CC000A536B00094F2A00084AC9";
attribute INIT_0A of HROM : label is "00170010011678720115785611B4ABC00193ABB40112AB930991783501907811";
attribute INIT_0B of HROM : label is "015F0012001E0010001D0010001C0010001B0010001A00100019001000180010";
attribute INIT_0C of HROM : label is "0007001000060010000500100004001000030010000200100001001000000010";
attribute INIT_0D of HROM : label is "004F77F0000E0010000D0010000C0010000B0010000A00100009001000080010";
attribute INIT_0E of HROM : label is "00170010011678720115785611B4ABDD0193ABB40112AB930991783501907811";
attribute INIT_0F of HROM : label is "015F0012001E0010041D003C001C77CF001B0010001A00100019001000180010";
attribute INIT_10 of HROM : label is "000746880006424700053BE600043585000328A40002222302011BC200000EE1";
attribute INIT_11 of HROM : label is "004F77F0000E77CF000D68EE000C5C0D000B57CC000A536B00094F2A00084AC9";
attribute INIT_12 of HROM : label is "00170010011678720115785611B4896001938954011289330991783501907811";
attribute INIT_13 of HROM : label is "015F0012001E0010001D0010001C0010001B0010001A00100019001000180010";
attribute INIT_14 of HROM : label is "0007001000060010000500100004001000030010000200100001001000000010";
attribute INIT_15 of HROM : label is "004F77F0000E0010000D0010000C0010000B0010000A00100009001000080010";
attribute INIT_16 of HROM : label is "00170010011678720115785611B4897D01938954011289330991783501907811";
attribute INIT_17 of HROM : label is "015F0012001E0010041D003C001C77CF001B0010001A00100019001000180010";
attribute INIT_18 of HROM : label is "000746880006424700053BE600043585000328A40002222302011BC200000EE1";
attribute INIT_19 of HROM : label is "004F77F0000E77CF000D68EE000C5C0D000B57CC000A536B00094F2A00084AC9";
attribute INIT_1A of HROM : label is "00170010011678720115785611B4A4E00193A4D40112A4B30991783501907811";
attribute INIT_1B of HROM : label is "015F0012001E0010001D0010001C0010001B0010001A00100019001000180010";
attribute INIT_1C of HROM : label is "0007001000060010000500100004001000030010000200100001001000000010";
attribute INIT_1D of HROM : label is "004F77F0000E0010000D0010000C0010000B0010000A00100009001000080010";
attribute INIT_1E of HROM : label is "00170010011678720115785611B4A4FD0193A4D40112A4B30991783501907811";
attribute INIT_1F of HROM : label is "015F0012001E0010041D003C001C77CF001B0010001A00100019001000180010";
attribute INIT_20 of HROM : label is "000746880006424700053BE600043585000328A40002222302011BC200000EE1";
attribute INIT_21 of HROM : label is "004F77F0000E77CF000D68EE000C5C0D000B57CC000A536B00094F2A00084AC9";
attribute INIT_22 of HROM : label is "00170010011678720115785611B4896001938954011289330991783501907811";
attribute INIT_23 of HROM : label is "015F0012001E0010001D0010001C0010001B0010001A00100019001000180010";
attribute INIT_24 of HROM : label is "0007001000060010000500100004001000030010000200100001001000000010";
attribute INIT_25 of HROM : label is "004F77F0000E0010000D0010000C0010000B0010000A00100009001000080010";
attribute INIT_26 of HROM : label is "00170010011678720115785611B4897D01938954011289330991783501907811";
attribute INIT_27 of HROM : label is "015F0012001E0010041D003C001C77CF001B0010001A00100019001000180010";
attribute INIT_28 of HROM : label is "000746880006424700053BE600043585000328A40002222302011BC200000EE1";
attribute INIT_29 of HROM : label is "004F77F0000E77CF000D68EE000C5C0D000B57CC000A536B00094F2A00084AC9";
attribute INIT_2A of HROM : label is "00170010011678720115785611B4A4E00193A4D40112A4B30991783501907811";
attribute INIT_2B of HROM : label is "015F0012001E0010001D0010001C0010001B0010001A00100019001000180010";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -