Вот исходные тексты. Основной файл system.vhd
Вид для печати
kanzler,
Адрес по переднему фронту ALE защелкиваете? Так его еще нету в этот момент..
Кроме того, в упор не вижу чем управляется младший байт шины (в смысле на вход/на выход. мож туплю:)
Столкнулся с проблемой деления двух чисел на языке vhdl, подскажите как выполнить деление двух чисел типа std_logic_vector?
1. Что скрывается за словом process и для чего указывать все используемые сигналы? Сколько это отъедает макроячеек?
2. Можно ли написать конструкцию типа if then else без process?
3. Причины ошибки типа "требуется 7 выходов, а у устройства только 6"? Подозреваю, что это ограничивает число процессов, на которые можно подать один сигнал. Как из этого выходить?Код:process (SET_FK_OUT, VIDEO_H, VIDEO_V, VGA_V)
begin
if (VIDEO_H(0) = '1') then -- если цикл записи в ОЗУ:
A(7 downto 0) <= VIDEO_H(9 downto 2); -- мл. адреса - счетчик точек VIDEO
if (SET_FK_OUT = '1') then -- если выходная частота кадров 50/48 Гц
A(16 downto 8) <= "00000000" & VIDEO_V(0); -- текущий адрес строки
else -- иначе, 60 Гц:
A(16 downto 8) <= VIDEO_V(8 downto 0);
end if;
else -- иначе, цикл чтения из ОЗУ:
...
4. Как уменьшать объем прошивки в макроячейках для серии MAX3000A?
5. Какая разница: сначала получить сигнал из нескольких с помощью логических конструкций, а потом записать по фронту в процессе или тоже самое, но в процессе ожидается фронт, а потом логические конструкции для получения сигнала?