Добавил регистр номера сборки в LedController.
This commit is contained in:
parent
e0197a05ac
commit
4cb6771ea5
File diff suppressed because it is too large
Load Diff
@ -88,44 +88,44 @@ applicable agreement for further details.
|
||||
)
|
||||
(parameter
|
||||
"REG_ADDR_CMD_2_UPPER_BYTE"
|
||||
"44"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_CMD_2_LOWER_BYTE"
|
||||
"45"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_CMD_1_UPPER_BYTE"
|
||||
"46"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_CMD_1_LOWER_BYTE"
|
||||
"REG_ADDR_CMD_2_LOWER_BYTE"
|
||||
"47"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_DATA_2_UPPER_BYTE"
|
||||
"REG_ADDR_CMD_1_UPPER_BYTE"
|
||||
"48"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_DATA_2_LOWER_BYTE"
|
||||
"REG_ADDR_CMD_1_LOWER_BYTE"
|
||||
"49"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_DATA_1_UPPER_BYTE"
|
||||
"REG_ADDR_DATA_2_UPPER_BYTE"
|
||||
"50"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_DATA_1_LOWER_BYTE"
|
||||
"REG_ADDR_DATA_2_LOWER_BYTE"
|
||||
"51"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_DATA_1_UPPER_BYTE"
|
||||
"52"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_DATA_1_LOWER_BYTE"
|
||||
"53"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"DATA_BUS_WIDTH"
|
||||
"8"
|
||||
|
@ -5,14 +5,14 @@ use ieee.std_logic_unsigned.all;
|
||||
|
||||
entity RAM9X8_HWPBusMaster is
|
||||
generic(
|
||||
REG_ADDR_CMD_2_UPPER_BYTE : integer := 44;
|
||||
REG_ADDR_CMD_2_LOWER_BYTE : integer := 45;
|
||||
REG_ADDR_CMD_1_UPPER_BYTE : integer := 46;
|
||||
REG_ADDR_CMD_1_LOWER_BYTE : integer := 47;
|
||||
REG_ADDR_DATA_2_UPPER_BYTE : integer := 48;
|
||||
REG_ADDR_DATA_2_LOWER_BYTE : integer := 49;
|
||||
REG_ADDR_DATA_1_UPPER_BYTE : integer := 50;
|
||||
REG_ADDR_DATA_1_LOWER_BYTE : integer := 51;
|
||||
REG_ADDR_CMD_2_UPPER_BYTE : integer := 46;
|
||||
REG_ADDR_CMD_2_LOWER_BYTE : integer := 47;
|
||||
REG_ADDR_CMD_1_UPPER_BYTE : integer := 48;
|
||||
REG_ADDR_CMD_1_LOWER_BYTE : integer := 49;
|
||||
REG_ADDR_DATA_2_UPPER_BYTE : integer := 50;
|
||||
REG_ADDR_DATA_2_LOWER_BYTE : integer := 51;
|
||||
REG_ADDR_DATA_1_UPPER_BYTE : integer := 52;
|
||||
REG_ADDR_DATA_1_LOWER_BYTE : integer := 53;
|
||||
|
||||
DATA_BUS_WIDTH : integer := 8;
|
||||
ADDRESS_BUS_WIDTH : integer := 9
|
||||
|
@ -113,6 +113,16 @@ applicable agreement for further details.
|
||||
"41"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_VERSION_UPPER_BYTE"
|
||||
"42"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_VERSION_LOWER_BYTE"
|
||||
"43"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"DATA_BUS_WIDTH"
|
||||
"8"
|
||||
|
@ -9,6 +9,8 @@ entity RAM9X8_LedController is
|
||||
REG_ADDR_ACTIVE_DEVICE_LOWER_BYTE : integer := 39;
|
||||
REG_ADDR_TEST_UPPER_BYTE : integer := 40;
|
||||
REG_ADDR_TEST_LOWER_BYTE : integer := 41;
|
||||
REG_ADDR_VERSION_UPPER_BYTE : integer := 42;
|
||||
REG_ADDR_VERSION_LOWER_BYTE : integer := 43;
|
||||
|
||||
DATA_BUS_WIDTH : integer := 8;
|
||||
ADDRESS_BUS_WIDTH : integer := 9
|
||||
@ -34,6 +36,7 @@ architecture behavorial of RAM9X8_LedController is
|
||||
|
||||
signal activeDeviceBuf : std_logic_vector(15 downto 0) := (others => '0');
|
||||
signal testBuf : std_logic_vector(15 downto 0) := (others => '0');
|
||||
signal versionBuf : std_logic_vector(15 downto 0) := x"0004";
|
||||
|
||||
signal initBuf : std_logic := '0';
|
||||
signal divClkBuf : std_logic := '0';
|
||||
@ -69,6 +72,10 @@ begin
|
||||
data <= not testBuf(15 downto 8);
|
||||
when REG_ADDR_TEST_LOWER_BYTE =>
|
||||
data <= not testBuf(7 downto 0);
|
||||
when REG_ADDR_VERSION_UPPER_BYTE =>
|
||||
data <= versionBuf(15 downto 8);
|
||||
when REG_ADDR_VERSION_LOWER_BYTE =>
|
||||
data <= versionBuf(7 downto 0);
|
||||
when others =>
|
||||
data <= (others => 'Z'); -- Запретить запись на шину
|
||||
end case;
|
||||
|
@ -144,12 +144,12 @@ applicable agreement for further details.
|
||||
)
|
||||
(parameter
|
||||
"REG_ADDR_LOADER_UPPER_BYTE"
|
||||
"42"
|
||||
"44"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_LOADER_LOWER_BYTE"
|
||||
"43"
|
||||
"45"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
|
@ -5,8 +5,8 @@ use ieee.std_logic_unsigned.all;
|
||||
|
||||
entity RAM9X8_Loader is
|
||||
generic(
|
||||
REG_ADDR_LOADER_UPPER_BYTE : integer := 42;
|
||||
REG_ADDR_LOADER_LOWER_BYTE : integer := 43;
|
||||
REG_ADDR_LOADER_UPPER_BYTE : integer := 44;
|
||||
REG_ADDR_LOADER_LOWER_BYTE : integer := 45;
|
||||
|
||||
DATA_BUS_WIDTH : integer := 8;
|
||||
ADDRESS_BUS_WIDTH : integer := 9
|
||||
|
@ -81,94 +81,94 @@ applicable agreement for further details.
|
||||
)
|
||||
(parameter
|
||||
"REG_ADDR_CMD_UPPER_BYTE"
|
||||
"52"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_CMD_LOWER_BYTE"
|
||||
"53"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_WORD_8_UPPER_BYTE"
|
||||
"54"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_WORD_8_LOWER_BYTE"
|
||||
"REG_ADDR_CMD_LOWER_BYTE"
|
||||
"55"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_WORD_7_UPPER_BYTE"
|
||||
"REG_ADDR_WORD_8_UPPER_BYTE"
|
||||
"56"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_WORD_7_LOWER_BYTE"
|
||||
"REG_ADDR_WORD_8_LOWER_BYTE"
|
||||
"57"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_WORD_6_UPPER_BYTE"
|
||||
"REG_ADDR_WORD_7_UPPER_BYTE"
|
||||
"58"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_WORD_6_LOWER_BYTE"
|
||||
"REG_ADDR_WORD_7_LOWER_BYTE"
|
||||
"59"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_WORD_5_UPPER_BYTE"
|
||||
"REG_ADDR_WORD_6_UPPER_BYTE"
|
||||
"60"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_WORD_5_LOWER_BYTE"
|
||||
"REG_ADDR_WORD_6_LOWER_BYTE"
|
||||
"61"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_WORD_4_UPPER_BYTE"
|
||||
"REG_ADDR_WORD_5_UPPER_BYTE"
|
||||
"62"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_WORD_4_LOWER_BYTE"
|
||||
"REG_ADDR_WORD_5_LOWER_BYTE"
|
||||
"63"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_WORD_3_UPPER_BYTE"
|
||||
"REG_ADDR_WORD_4_UPPER_BYTE"
|
||||
"64"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_WORD_3_LOWER_BYTE"
|
||||
"REG_ADDR_WORD_4_LOWER_BYTE"
|
||||
"65"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_WORD_2_UPPER_BYTE"
|
||||
"REG_ADDR_WORD_3_UPPER_BYTE"
|
||||
"66"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_WORD_2_LOWER_BYTE"
|
||||
"REG_ADDR_WORD_3_LOWER_BYTE"
|
||||
"67"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_WORD_1_UPPER_BYTE"
|
||||
"REG_ADDR_WORD_2_UPPER_BYTE"
|
||||
"68"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_WORD_1_LOWER_BYTE"
|
||||
"REG_ADDR_WORD_2_LOWER_BYTE"
|
||||
"69"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_WORD_1_UPPER_BYTE"
|
||||
"70"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"REG_ADDR_WORD_1_LOWER_BYTE"
|
||||
"71"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"DATA_BUS_WIDTH"
|
||||
"8"
|
||||
|
@ -5,24 +5,24 @@ use ieee.std_logic_unsigned.all;
|
||||
|
||||
entity RAM9X8_OpticalBusMaster is
|
||||
generic(
|
||||
REG_ADDR_CMD_UPPER_BYTE : integer := 52;
|
||||
REG_ADDR_CMD_LOWER_BYTE : integer := 53;
|
||||
REG_ADDR_WORD_8_UPPER_BYTE : integer := 54;
|
||||
REG_ADDR_WORD_8_LOWER_BYTE : integer := 55;
|
||||
REG_ADDR_WORD_7_UPPER_BYTE : integer := 56;
|
||||
REG_ADDR_WORD_7_LOWER_BYTE : integer := 57;
|
||||
REG_ADDR_WORD_6_UPPER_BYTE : integer := 58;
|
||||
REG_ADDR_WORD_6_LOWER_BYTE : integer := 59;
|
||||
REG_ADDR_WORD_5_UPPER_BYTE : integer := 60;
|
||||
REG_ADDR_WORD_5_LOWER_BYTE : integer := 61;
|
||||
REG_ADDR_WORD_4_UPPER_BYTE : integer := 62;
|
||||
REG_ADDR_WORD_4_LOWER_BYTE : integer := 63;
|
||||
REG_ADDR_WORD_3_UPPER_BYTE : integer := 64;
|
||||
REG_ADDR_WORD_3_LOWER_BYTE : integer := 65;
|
||||
REG_ADDR_WORD_2_UPPER_BYTE : integer := 66;
|
||||
REG_ADDR_WORD_2_LOWER_BYTE : integer := 67;
|
||||
REG_ADDR_WORD_1_UPPER_BYTE : integer := 68;
|
||||
REG_ADDR_WORD_1_LOWER_BYTE : integer := 69;
|
||||
REG_ADDR_CMD_UPPER_BYTE : integer := 54;
|
||||
REG_ADDR_CMD_LOWER_BYTE : integer := 55;
|
||||
REG_ADDR_WORD_8_UPPER_BYTE : integer := 56;
|
||||
REG_ADDR_WORD_8_LOWER_BYTE : integer := 57;
|
||||
REG_ADDR_WORD_7_UPPER_BYTE : integer := 58;
|
||||
REG_ADDR_WORD_7_LOWER_BYTE : integer := 59;
|
||||
REG_ADDR_WORD_6_UPPER_BYTE : integer := 60;
|
||||
REG_ADDR_WORD_6_LOWER_BYTE : integer := 61;
|
||||
REG_ADDR_WORD_5_UPPER_BYTE : integer := 62;
|
||||
REG_ADDR_WORD_5_LOWER_BYTE : integer := 63;
|
||||
REG_ADDR_WORD_4_UPPER_BYTE : integer := 64;
|
||||
REG_ADDR_WORD_4_LOWER_BYTE : integer := 65;
|
||||
REG_ADDR_WORD_3_UPPER_BYTE : integer := 66;
|
||||
REG_ADDR_WORD_3_LOWER_BYTE : integer := 67;
|
||||
REG_ADDR_WORD_2_UPPER_BYTE : integer := 68;
|
||||
REG_ADDR_WORD_2_LOWER_BYTE : integer := 69;
|
||||
REG_ADDR_WORD_1_UPPER_BYTE : integer := 70;
|
||||
REG_ADDR_WORD_1_LOWER_BYTE : integer := 71;
|
||||
|
||||
DATA_BUS_WIDTH : integer := 8;
|
||||
ADDRESS_BUS_WIDTH : integer := 9
|
||||
@ -46,7 +46,7 @@ architecture behavorial of RAM9X8_OpticalBusMaster is
|
||||
|
||||
signal dataBuf : std_logic_vector(127 downto 0) := (others => '0');
|
||||
signal dataToSend : std_logic_vector(127 downto 0) := (others => '0');
|
||||
signal cmdBuf : std_logic_vector(15 downto 0) := (others => '0');
|
||||
signal cmdBuf : std_logic_vector(15 downto 0) := x"0004";
|
||||
|
||||
type CommunicationState_start is (Waiting, DataSending, CRCSending);
|
||||
signal CommunicationState : CommunicationState_start := Waiting ;
|
||||
@ -192,7 +192,11 @@ begin
|
||||
if start = '1' and startPrev = '0' then
|
||||
dataToSend <= dataBuf;
|
||||
dataCRC <= dataBuf;
|
||||
bitCnt := (conv_integer(cmdBuf(2 downto 0)) * 16) - 1;
|
||||
if conv_integer(cmdBuf(3 downto 0)) < 9 and conv_integer(cmdBuf(3 downto 0)) > 0 then
|
||||
bitCnt := (conv_integer(cmdBuf(3 downto 0)) * 16) - 1;
|
||||
else
|
||||
bitCnt := 63;
|
||||
end if;
|
||||
CommunicationState <= DataSending;
|
||||
resetCRC <= '0';
|
||||
end if;
|
||||
@ -254,7 +258,11 @@ begin
|
||||
begin
|
||||
if rising_edge(clk) then
|
||||
if resetCRC = '1' then
|
||||
bitCnt := (conv_integer(cmdBuf(2 downto 0)) * 16) - 1;
|
||||
if conv_integer(cmdBuf(3 downto 0)) < 9 and conv_integer(cmdBuf(3 downto 0)) > 0 then
|
||||
bitCnt := (conv_integer(cmdBuf(3 downto 0)) * 16) - 1;
|
||||
else
|
||||
bitCnt := 63;
|
||||
end if;
|
||||
CRC <= x"0";
|
||||
lacth := 0;
|
||||
readyCRC <= '0';
|
||||
|
@ -142,7 +142,7 @@ applicable agreement for further details.
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
"ARRAY_LENGTH"
|
||||
"128"
|
||||
"256"
|
||||
""
|
||||
(type "PARAMETER_SIGNED_DEC") )
|
||||
(parameter
|
||||
|
@ -14,7 +14,7 @@ entity RAM9X8_ParallelBusMaster is
|
||||
REG_ADDR_CONTROL_UPPER_BYTE : integer := 12;
|
||||
REG_ADDR_CONTROL_LOWER_BYTE : integer := 13;
|
||||
|
||||
ARRAY_LENGTH : integer := 128;
|
||||
ARRAY_LENGTH : integer := 256;
|
||||
DATA_BUS_WIDTH : integer := 8;
|
||||
ADDRESS_BUS_WIDTH : integer := 9
|
||||
);
|
||||
|
Loading…
Reference in New Issue
Block a user