Когда нужно / нужно объявлять переменную с ключевым словом range в VHDL? - PullRequest
0 голосов
/ 04 октября 2018

Я новичок в VHDL и, возможно, у меня есть базовый вопрос, но здесь он звучит так:

При объявлении переменной скажите целое число, в чем преимущество

variable count_baud  : integer range 0 to clk_freq/baud_rate - 1 := 0;

против.

variable count_baud  : integer := 0;

Есть ли смысл использовать range (только) для ограничения размера синтезируемой недвижимости в CPLD / FPGA?

1 Ответ

0 голосов
/ 04 октября 2018

Есть две очень веские причины:

  1. Отладка.Если вы знаете, что ваше целое число должно оставаться в диапазоне [min..max], сообщите об этом симулятору с надлежащим объявлением диапазона.Если в вашем коде есть ошибка, и вы пытаетесь присвоить значение вне диапазона, симулятор сообщит вам об этом с очень полезным сообщением.Хотя, если вы только что объявили integer, ошибка может произойти спустя много времени после фиктивного присвоения.

  2. Качество синтеза.По умолчанию логический синтезатор выделяет 32 бита для целого числа.В зависимости от окружения он может обнаружить, что меньше битов достаточно ... или нет.Таким образом, сообщение синтезатору о том, что представляет собой реальный диапазон, часто экономит аппаратные средства, электроэнергию и увеличивает конечную производительность (скорость), особенно если реальный диапазон может быть представлен гораздо меньше 32 бит.

...