Я выполняю задание, в котором мне приходится кодировать части одноциклового процессора ARM, такие как ALU, блок управления и т. Д. Все остальные модули, входные данные уже даны мне, все, что мне нужно сделать, это написатькод verilog для пустых модулей, переданных мне.
Мне удалось закодировать модули, и симуляция синхронизации в квартусе кажется правильной, поскольку ПК работает в том порядке, в котором он предназначен.Однако, когда я пытаюсь реализовать его на ПЛИС (циклон IV), выходы HEX на плате (которые должны быть ПК, уже назначенными до того, как они были мне даны) не будут сдвигаться от 0.
Я не имею ни малейшего представления о том, почему код работает в моделировании синхронизации, а не в аппаратном обеспечении, потому что, насколько я знаю, моделирование синхронизации учитывает задержку распространения.Я посмотрел в предоставленном мне файле, который не подлежит изменению, и средство просмотра RTL, и я обнаружил, что clk, который мне дают, это тот, который сделан из модификации CLOCK_27.
Время тактового цикла, показанное в симуляции синхронизации, составляет 50 нс, и в этом случае все работает хорошо.Тем не менее, я впервые коснулся FPGA для этого проекта, и я не совсем уверен, что такое CLOCK_27 и отличается ли он в симуляции синхронизации и в аппаратном обеспечении.
Если время тактового циклаРазница является причиной проблемы, я считаю, что я должен сократить задержку распространения моего проекта.Если это не так, я теперь понятия не имею.