[an error occurred while processing this directive]
|
if d(0)'event and ( d(0) = '0' or d(0) = '1') then counter4 <= 0; end if;
опуская за ненадобностью ( d(0) = '0' or d(0) = '1')
получаем
if d(0)'event then counter4 <= 0; end if;
т.е. в counter4 записывается 0 по положительному или по
отрицаетльному фронту d(0).
Source-level cимулятор даже не поморщится, увидев такое,
однако при синтезе... Хм, попробуйте сами реализовать такую штуку...
умозрительно....
Далее...
if d(0)'event and ( d(0) = '0' or d(0) = '1') then counter4 <= 0; end if;
if clk'event and clk = '0' then counter4 <= counter4 + 1; end if;
в counter4 можно осуществить запись перепадам двух разных сигналов..
d(0) и clk.
Для синтеза в Xilinx такое не годится...
дальше я, честно говоря, не смотрел...
Я не хочу никого оскорбить, но здесь я полностью солидарен с дядей Федей. Пишите на верилоге. Он дает меньше возможностей для таких вот ошибок.
E-mail: info@telesys.ru