реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> регистр в бит в verilоg
dimone
сообщение May 15 2018, 09:24
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 87
Регистрация: 23-02-09
Пользователь №: 45 242



Подскажите пожалуйста ,можно ли в verilоg регистр перевести и присвоить биту, без исползования сравнений как в Си: bit=(bool)byte;

....
reg [3:0]cnt;
bit Out;
....
Out<=(bool)cnt; /?
...

Сообщение отредактировал dimone - May 15 2018, 09:25
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение May 15 2018, 09:37
Сообщение #2


В поисках себя...
****

Группа: Свой
Сообщений: 604
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Цитата(dimone @ May 15 2018, 12:24) *
Подскажите пожалуйста ,можно ли в verilоg регистр перевести и присвоить биту, без исползования сравнений как в Си: bit=(bool)byte;

....
reg [3:0]cnt;
bit Out;
....
Out<=(bool)cnt; /?
...

Ничего не понимаю !
Какой регистр ? Какой бит ? Как его вообще биту присвоить, если регистр - это набор триггеров, хранящих информацию(биты). Как несколько бит одному биту присвоить ?
Сформулируйте правильно вопрос !
Go to the top of the page
 
+Quote Post
andrew_b
сообщение May 15 2018, 10:05
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 905
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



В Си
bit=(bool)byte
bit равен 1, если byte не равен нулю.

Это обычный OR. Тогда в Верилоге
Out<=|cnt;

Наверное, можно, как и в Си,
Out<=!!cnt;
Go to the top of the page
 
+Quote Post
one_eight_seven
сообщение May 15 2018, 10:20
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 859
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664



Учитывая, что в Си нет типа bool, а даже если он туда доставляется какими-либо библиотеками, он всё равно имеет размер не менее 8 бит (1 байт)...
Out = { 7{1'b0}, (|cnt) }

P.S. только Out должен быть восьмибитным регистром или wire'ом. (типа bit в Veilog, если я правильно помню, нет вообще)

Сообщение отредактировал one_eight_seven - May 15 2018, 10:27
Go to the top of the page
 
+Quote Post
andrew_b
сообщение May 15 2018, 10:31
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 905
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(one_eight_seven @ May 15 2018, 13:20) *
Учитывая, что в Си нет типа bool, а даже если он туда доставляется какими-либо библиотеками
Таки уже есть. Появился в C99.
Цитата
он всё равно имеет размер не менее 8 бит (1 байт)...
Это да.
Go to the top of the page
 
+Quote Post
dimone
сообщение May 15 2018, 10:33
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 87
Регистрация: 23-02-09
Пользователь №: 45 242



Цитата(one_eight_seven @ May 15 2018, 13:20) *
Учитывая, что в Си нет типа bool,

вроде начиная с С99 -есть..
я как нуб догадался, что можно сделать побитовое ОR и присвоить биту, но думал,
что возможно есть подобное <stdbool.h> , раз Verilog "C"-like..

Большое спасибо за подсказки.
Go to the top of the page
 
+Quote Post
andrew_b
сообщение May 15 2018, 11:27
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 905
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(dimone @ May 15 2018, 13:33) *
раз Verilog "C"-like..
Это миф.
Go to the top of the page
 
+Quote Post
Nieve
сообщение May 16 2018, 05:57
Сообщение #8





Группа: Участник
Сообщений: 6
Регистрация: 29-04-18
Из: Москва
Пользователь №: 103 558



Verilog и "C" абсолютно разные вещи. Как максимум они визуально друг на друга похожи конструкциями типа "if else", "for" и т.д., но на этом их "сходство" заканчивается.

Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th May 2018 - 21:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.00884 секунд с 7
ELECTRONIX ©2004-2016