Подскажите пожалуйста ,можно ли в verilоg регистр перевести и присвоить биту, без исползования сравнений как в Си: bit=(bool)byte;
.... reg [3:0]cnt; bit Out; .... Out<=(bool)cnt; /? ...
Flip-fl0p
May 15 2018, 09:37
Цитата(dimone @ May 15 2018, 12:24)
Подскажите пожалуйста ,можно ли в verilоg регистр перевести и присвоить биту, без исползования сравнений как в Си: bit=(bool)byte;
.... reg [3:0]cnt; bit Out; .... Out<=(bool)cnt; /? ...
Ничего не понимаю ! Какой регистр ? Какой бит ? Как его вообще биту присвоить, если регистр - это набор триггеров, хранящих информацию(биты). Как несколько бит одному биту присвоить ? Сформулируйте правильно вопрос !
andrew_b
May 15 2018, 10:05
В Си bit=(bool)byte bit равен 1, если byte не равен нулю.
Это обычный OR. Тогда в Верилоге Out<=|cnt;
Наверное, можно, как и в Си, Out<=!!cnt;
one_eight_seven
May 15 2018, 10:20
Учитывая, что в Си нет типа bool, а даже если он туда доставляется какими-либо библиотеками, он всё равно имеет размер не менее 8 бит (1 байт)... Out = { 7{1'b0}, (|cnt) }
P.S. только Out должен быть восьмибитным регистром или wire'ом. (типа bit в Veilog, если я правильно помню, нет вообще)
andrew_b
May 15 2018, 10:31
Цитата(one_eight_seven @ May 15 2018, 13:20)
Учитывая, что в Си нет типа bool, а даже если он туда доставляется какими-либо библиотеками
Таки уже есть. Появился в C99.
Цитата
он всё равно имеет размер не менее 8 бит (1 байт)...
Это да.
dimone
May 15 2018, 10:33
Цитата(one_eight_seven @ May 15 2018, 13:20)
Учитывая, что в Си нет типа bool,
вроде начиная с С99 -есть.. я как нуб догадался, что можно сделать побитовое ОR и присвоить биту, но думал, что возможно есть подобное <stdbool.h> , раз Verilog "C"-like..
Большое спасибо за подсказки.
andrew_b
May 15 2018, 11:27
Цитата(dimone @ May 15 2018, 13:33)
раз Verilog "C"-like..
Это миф.
Nieve
May 16 2018, 05:57
Verilog и "C" абсолютно разные вещи. Как максимум они визуально друг на друга похожи конструкциями типа "if else", "for" и т.д., но на этом их "сходство" заканчивается.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.