Мне нужно написать в VHDL программу, которая инициализирует регистры датчиков с помощью i2c. Моя проблема заключается в том, чтобы написать эффективную программу, которая не растрачивает все пространство FPGA. Количество регистров, которые мне нужны для хранения, - это 400 регистров, состоящих из 8-битного адреса и 8-битных данных.Как правильно хранить регистры в FPGA
Программа я пишу:
entity i2cReg is
port (
RegSel : in std_logic;
Address : out std_logic_vector (15 downto 0);
Data : out std_logic_vector (7 downto 0);
RegStop : out std_logic;
ModuleEN : in std_logic
);
end i2cReg;
architecture i2cReg_archi of i2cReg is
signal counter :integer := 0;
begin
process(RegSel, ModuleEN)
begin
if ModuleEN = '0' then
Address <= x"10";
Data <= x"10";
RegStop <= '0';
counter <= 0;
elsif rising_edge(RegSel) then
counter <= counter + 1;
case counter is
when 0 =>
Address <= x"10";
Data <= x"10";
when 1 =>
Address <= x"10";
Data <= x"10";
when 2 =>
Address <= x"10";
Data <= x"10";
when 3 =>
Address <= x"10";
Data <= x"10";
when 4 =>
Address <= x"10";
Data <= x"10";
when 5 =>
Address <= x"10";
Data <= x"10";
when 400 =>
RegStop <= '1';
when others =>
end case;
end if;
end process;
end i2cReg_archi;
Существует способ, чтобы оптимизировать этот код? Или вы советуете мне использовать внешний eeprom?
Если FPGA - это тип с примитивом BlockRam, то да, есть способ оптимизировать этот код. –
FPGA имеют тысячи регистров, поэтому использование 400 не является числом ... НО вы правы, чтобы попросить более дешевое решение. Большинство FPGA имеют встроенные оперативные запоминающие устройства в несколько килобайт. Некоторые другие ПЛИС могут использовать там LUT в качестве ОЗУ, которые хороши для хранения данных <1 КБайт. Каков ваш целевой архитектурник? – Paebbels
Я видел, как вы сказали, некоторые FPGA имеют встроенную оперативную память. Но мне нужно хранить эти данные в устройстве и не записывать ОЗУ при включении устройства. Возможно ли использовать это пространство памяти в качестве постоянного хранилища и записать его при программировании устройства? – Yaro