📄 fc_ctrl.vhd
字号:
--
-- Definition of a dual port ROM for KCPSM2 or KCPSM3 program defined by fc_ctrl.psm
-- and assmbled using KCPSM2 or KCPSM3 assembler.
--
-- Standard IEEE libraries
--
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
--
-- The Unisim Library is used to define Xilinx primitives. It is also used during
-- simulation. The source can be viewed at %XILINX%\vhdl\src\unisims\unisim_VCOMP.vhd
--
library unisim;
use unisim.vcomponents.all;
--
--
entity fc_ctrl is
Port ( address : in std_logic_vector(9 downto 0);
instruction : out std_logic_vector(17 downto 0);
proc_reset : out std_logic;
clk : in std_logic);
end fc_ctrl;
--
architecture low_level_definition of fc_ctrl is
--
-- Declare signals internal to this module
--
signal jaddr : std_logic_vector(10 downto 0);
signal jparity : std_logic_vector(0 downto 0);
signal jdata : std_logic_vector(7 downto 0);
signal doa : std_logic_vector(7 downto 0);
signal dopa : std_logic_vector(0 downto 0);
signal tdo1 : std_logic;
signal tdo2 : std_logic;
signal update : std_logic;
signal shift : std_logic;
signal reset : std_logic;
signal tdi : std_logic;
signal sel1 : std_logic;
signal drck1 : std_logic;
signal drck1_buf : std_logic;
signal sel2 : std_logic;
signal drck2 : std_logic;
signal capture : std_logic;
signal tap5 : std_logic;
signal tap11 : std_logic;
signal tap17 : std_logic;
--
-- Attributes to define ROM contents during implementation synthesis.
-- The information is repeated in the generic map for functional simulation
--
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;
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;
--
-- Attributes to define ROM contents during implementation synthesis.
--
attribute INIT_00 of ram_1024_x_18 : label is "052B00E60213052100D30213051001B501B501B500C002130510C001000001FD";
attribute INIT_01 of ram_1024_x_18 : label is "0000013F541AC001E180C108010000FF020E01B501B501B501B501B500F50213";
attribute INIT_02 of ram_1024_x_18 : label is "0F00010054314F014024015D542CAF0F4F004F8002130521C0015C20C101F010";
attribute INIT_03 of ram_1024_x_18 : label is "014E4024015D503F4F0840410F020130543B4F0440410F01011454364F024041";
attribute INIT_04 of ram_1024_x_18 : label is "0E200FFF4024004E0619021305100094C0016503640263016200C000CF080F03";
attribute INIT_05 of ram_1024_x_18 : label is "052040610E4D01D3052E505F4FFF008C00886517008C00886518008C00886519";
attribute INIT_06 of ram_1024_x_18 : label is "01D3052E50724FFF50724E4D008C00886514008C00886515008C0088651601D3";
attribute INIT_07 of ram_1024_x_18 : label is "15E001D3052001D385306511008C00886512008C0088651301D3052040740E4B";
attribute INIT_08 of ram_1024_x_18 : label is "01D3853050914FFFA0000F00B0004500A00001D3052001D3057A01D3054801D3";
attribute INIT_09 of ram_1024_x_18 : label is "1D501C401B301A20A0005496CE018F01F1F0009C0F110E0AA00001D30520A000";
attribute INIT_0A of ram_1024_x_18 : label is "40B5020758B0FD90FC80FB70DA60001D06000700080009A00500040003000200";
attribute INIT_0B of ram_1024_x_18 : label is "A00011A054A9C001060807080808090E0500040003000206BD90BC80BB709A60";
attribute INIT_0C of ram_1024_x_18 : label is "01D3057A01D3056101D3056C01D3054201D3056F01D3056301D3056901D30550";
attribute INIT_0D of ram_1024_x_18 : label is "056E01D3056501D3057501D3057101D3056501D3057201D30546A00001D30565";
attribute INIT_0E of ram_1024_x_18 : label is "01D3057401D3056E01D3057501D3056F01D30543A00001D3057901D3056301D3";
attribute INIT_0F of ram_1024_x_18 : label is "A00001D3053001D3053001D3052E01D3053101D30576A00001D3057201D30565";
attribute INIT_10 of ram_1024_x_18 : label is "01D3057501D3057001D3056E01D3056901D3052001D3054101D3054D01D30553";
attribute INIT_11 of ram_1024_x_18 : label is "01D3052001D3057A01D3054801D3054D01D3053001D3053541570F0601D30574";
attribute INIT_12 of ram_1024_x_18 : label is "41570F0201D3056C01D3056101D3057401D3057301D3057901D3057201D30543";
attribute INIT_13 of ram_1024_x_18 : label is "01D3056901D3056301D3057301D3054F01D3052001D3054D01D3054301D30544";
attribute INIT_14 of ram_1024_x_18 : label is "01D30552A00001D3052001D3057201D3056F01D3057401D3056101D301D3056C";
attribute INIT_15 of ram_1024_x_18 : label is "0552021305104157CF0101D30520B0004F00413601D3056701D3056E01D30569";
attribute INIT_16 of ram_1024_x_18 : label is "052001D3054D01D3054301D3054401D3052001D3056701D3056E01D3056901D3";
attribute INIT_17 of ram_1024_x_18 : label is "052001D3054101D3054D01D3055301D3052001D3054D01D3053001D3053501D3";
attribute INIT_18 of ram_1024_x_18 : label is "053201D3055701D3055301D3052001D3053301D3055701D3055301D305200213";
attribute INIT_19 of ram_1024_x_18 : label is "053001D3055701D3055301D3052001D3053101D3055701D3055301D3052001D3";
attribute INIT_1A of ram_1024_x_18 : label is "A00055ACC20101A60219A00055A7C10101A20128A00055A3C001000BA00001D3";
attribute INIT_1B of ram_1024_x_18 : label is "A000C404E40101A2C404E401A00055B6C40101B00432A00055B1C30101AB0314";
attribute INIT_1C of ram_1024_x_18 : label is "01A601C00406040604060407145001A201C0C408A4F01450A00001BAC404A4F8";
attribute INIT_1D of ram_1024_x_18 : label is "01BAC4040406040604070407145001A201BAC404C40CA4F01450A000C40404F0";
attribute INIT_1E of ram_1024_x_18 : label is "01A2C404E40101A2C404E401450901A2C404E401C404040EA000C40404F001A6";
attribute INIT_1F of ram_1024_x_18 : label is "01C0043001B0A00001A6C4040404D500000E000E000E000EA5F0C404E4014009";
attribute INIT_20 of ram_1024_x_18 : label is "01C4050101C4050C01C4050601C4052801A601C0042001A601C001AB01C001B0";
attribute INIT_21 of ram_1024_x_18 : label is "E232E131E030A00001C4C5C0A50FA00001C4C580A50F52192510A00001AB01AB";
attribute INIT_22 of ram_1024_x_18 : label is "523C40046004EF3FEE3EED3DEC3CEB3BEA3AE939E838E737E636E535E434E333";
attribute INIT_23 of ram_1024_x_18 : label is "00F05248201040804256C0020000C002000242380001523720104080E0048001";
attribute INIT_24 of ram_1024_x_18 : label is "C00200024F704E604D504C40C001000F4250C00200014F304E204D104C00C001";
attribute INIT_25 of ram_1024_x_18 : label is "66366737683869396A3A6B3B6C3C6D3D6E3E6F3FEF03EE02ED01EC00C0020000";
attribute INIT_26 of ram_1024_x_18 : label is "0000000000000000000000000000000000008001603061316232633364346535";
attribute INIT_27 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INIT_28 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INIT_29 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INIT_2A of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INIT_2B of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INIT_2C of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INIT_2D of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INIT_2E of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INIT_2F of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INIT_30 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INIT_31 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INIT_32 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INIT_33 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INIT_34 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INIT_35 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INIT_36 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INIT_37 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INIT_38 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INIT_39 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INIT_3A of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INIT_3B of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INIT_3C of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INIT_3D of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INIT_3E of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INIT_3F of ram_1024_x_18 : label is "421D000000000000000000000000000000000000000000000000000000000000";
attribute INITP_00 of ram_1024_x_18 : label is "334F3CCCCDDF3CF33337CF3C0F33C038FF73DCF73DFC4CF60D20FFFF3CF3FF23";
attribute INITP_01 of ram_1024_x_18 : label is "B33332CCCCCCCB333333332CCCCCCCCC8DAAAA55ED54000000B5B0B2DD89B333";
attribute INITP_02 of ram_1024_x_18 : label is "333333333333333333727CCCCB33333CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC";
attribute INITP_03 of ram_1024_x_18 : label is "CEE0AA20E38388A3EAA3E028FAA3C0B8A38B72DCB72DCB4B3333333333333333";
attribute INITP_04 of ram_1024_x_18 : label is "000000000000300000000AA88008E00234E23349D2AAAAAAAAC2C36FCCCCF3FF";
attribute INITP_05 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INITP_06 of ram_1024_x_18 : label is "0000000000000000000000000000000000000000000000000000000000000000";
attribute INITP_07 of ram_1024_x_18 : label is "C000000000000000000000000000000000000000000000000000000000000000";
--
begin
--
--Instantiate the Xilinx primitive for a block RAM
ram_1024_x_18: RAMB16_S9_S18
--synthesis translate_off
--INIT values repeated to define contents for functional simulation
generic map (INIT_00 => X"052B00E60213052100D30213051001B501B501B500C002130510C001000001FD",
INIT_01 => X"0000013F541AC001E180C108010000FF020E01B501B501B501B501B500F50213",
INIT_02 => X"0F00010054314F014024015D542CAF0F4F004F8002130521C0015C20C101F010",
INIT_03 => X"014E4024015D503F4F0840410F020130543B4F0440410F01011454364F024041",
INIT_04 => X"0E200FFF4024004E0619021305100094C0016503640263016200C000CF080F03",
INIT_05 => X"052040610E4D01D3052E505F4FFF008C00886517008C00886518008C00886519",
INIT_06 => X"01D3052E50724FFF50724E4D008C00886514008C00886515008C0088651601D3",
INIT_07 => X"15E001D3052001D385306511008C00886512008C0088651301D3052040740E4B",
INIT_08 => X"01D3853050914FFFA0000F00B0004500A00001D3052001D3057A01D3054801D3",
INIT_09 => X"1D501C401B301A20A0005496CE018F01F1F0009C0F110E0AA00001D30520A000",
INIT_0A => X"40B5020758B0FD90FC80FB70DA60001D06000700080009A00500040003000200",
INIT_0B => X"A00011A054A9C001060807080808090E0500040003000206BD90BC80BB709A60",
INIT_0C => X"01D3057A01D3056101D3056C01D3054201D3056F01D3056301D3056901D30550",
INIT_0D => X"056E01D3056501D3057501D3057101D3056501D3057201D30546A00001D30565",
INIT_0E => X"01D3057401D3056E01D3057501D3056F01D30543A00001D3057901D3056301D3",
INIT_0F => X"A00001D3053001D3053001D3052E01D3053101D30576A00001D3057201D30565",
INIT_10 => X"01D3057501D3057001D3056E01D3056901D3052001D3054101D3054D01D30553",
INIT_11 => X"01D3052001D3057A01D3054801D3054D01D3053001D3053541570F0601D30574",
INIT_12 => X"41570F0201D3056C01D3056101D3057401D3057301D3057901D3057201D30543",
INIT_13 => X"01D3056901D3056301D3057301D3054F01D3052001D3054D01D3054301D30544",
INIT_14 => X"01D30552A00001D3052001D3057201D3056F01D3057401D3056101D301D3056C",
INIT_15 => X"0552021305104157CF0101D30520B0004F00413601D3056701D3056E01D30569",
INIT_16 => X"052001D3054D01D3054301D3054401D3052001D3056701D3056E01D3056901D3",
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -