lkg47 0 24 июля, 2017 Опубликовано 24 июля, 2017 (изменено) · Жалоба Здравствуйте! подскажите пожалуйста: каким образом правильно сказать квартусу о том, что у меня не будет превышения значения параметра после суммирования? systemverilog parameter m = 640; parameter WIDTH = $clog2(m); parameter a = WIDTH'(192); parameter b = WIDTH'(320); parameter c = WIDTH'(a + b ); Изменено 24 июля, 2017 пользователем L47 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 25 июля, 2017 Опубликовано 25 июля, 2017 · Жалоба parameter a - при таком объявлении, параметр а будет 32 битным parameter [WIDTH - 1 : 0] a; - вот так должно полегчать, вроде как... ну и в общем случае сумма будет WIDTH + 1 бит. поэтому возможно параметр С надо расширить на 1 бит. А потом, если вы уверены что превышения разрядности быть не может, при использовании из него можно брать WIDTH младших бит, или объявить еще 1 параметр в который перенести WIDTH младших бит Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lkg47 0 25 июля, 2017 Опубликовано 25 июля, 2017 (изменено) · Жалоба А потом, если вы уверены что превышения разрядности быть не может, при использовании из него можно брать WIDTH младших бит, или объявить еще 1 параметр в который перенести WIDTH младших бит получается вот так, но слишком громоздко: parameter m = 640; parameter WIDTH = $clog2(m); parameter a = WIDTH'(192); parameter b = WIDTH'(320); parameter c_sub = (WIDTH + 1)'(a + b); parameter c = c_sub[WIDTH - 1:0]; Изменено 25 июля, 2017 пользователем L47 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться