Самое важное, что нужно делать при проектировании FPGA, - это подумать об аппаратном обеспечении.
FPGA состоит из ряда аппаратных блоков с предопределенным набором входов и выходов - код, который вы пишете, должен иметь возможность сопоставлять эти блоки. Таким образом, даже если вы пишете синтаксически корректный код, это не значит, что он действительно может отображать на оборудовании под рукой.
Что ваш код пытается сделать это:
IF ((DS0='1' OR DS1='1')and rising_edge(DS0) and rising_edge(DS1) AND DTACK='1' AND BERR='1') THEN
(...)
Если DS0
и DS1
в настоящее время имеют нарастающий фронт (это означает, что они также как '1'
, делая первую часть с (DS='1' OR DS1='1')
избыточностью), и если DTACK
и BERR
оба - 1
, затем сделайте что-нибудь.
Для этого требуется входной блок, который принимает два тактовых входа (так как у вас есть два сигнала, которые вы хотите проверить для нарастающих фронтов одновременно), и такой блок не существует в какой-либо FPGA, с которой я столкнулся, - а также, как близко друг к другу, такие два события синхронизации должны рассматриваться как «одновременные»? Это не имеет смысла, если вы не укажете его в течение некоторого интервала, например, с помощью реального тактового сигнала реального времени (в смысле тактового сигнала, идущего на тактовый вход триггера), к образцу DS0
и DS1
, как показано в Morten Zilmers.
В общем, вы бы хотели использовать один выделенный в своем дизайне тактовый сигнал (а затем использовать часы для тех частей, которые должны работать медленнее), или реализовать синхронизацию между часами, если вам нужно имеют разные части вашего дизайна, работающие с разными часами.
В зависимости от среды среды IDE, которую вы используете, у вас может быть доступ к некоторым языковым шаблонам для проектирования различных блоков, которые могут помочь вам правильно описать доступные аппаратные блоки. В Xilinx ISE вы можете найти их в разделе «Редактирование»> «Языковые шаблоны», а затем, например, посмотрите на VHDL> «Конструкции синтеза»> «Примеры кодирования»> «Flip Flops».
Я., я thnk U г вправо – Vaishali