Перейти к содержанию
    

непонятная запись и диаграмма к ней

Добрый вечер!

Имеется такая запись:

 

count=count+2'b1; (прописан только один (!) бит)

 

Диаграмма рисуется такая:

post-77128-1397062938_thumb.png

 

Как это нужно понимать? Если знаете, пожалуйста, объясните

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По идее это просто 2-х битная константа, значение которой = 1. Эта же константа в 2-х битном представлении выглядеть должна как = 01 (наверное в таком виде компилятор ее автоматически преобразует к 2-х битному значению).

Изменено пользователем coolbassnik

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как это нужно понимать? Если знаете, пожалуйста, объясните

 

А чего непонятного в записи? Вы всегда ведущие нули пишете, добивая до указанной разрядности? Это лишнее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

мне, например, не понятно почему считает так странно

0 - 1 - 0 -3 - 0 - 1...

 

что-то вы нам не все показали, что с коунтом происходит...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эту диаграмму нарисовал Signal Tap, встроенный в квартус. Как оказалось, он может вносить глюк в проект. Его удалось побороть, добавив в список сигналов клок исследуемой схемы. Спасибо за ответы!

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скорей всего это не глюк, а просто вы не инициализировали переменную counter

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эту диаграмму нарисовал Signal Tap, встроенный в квартус. Как оказалось, он может вносить глюк в проект.

Никакого глюка тут нет, Signal Tap так и должен работать, просто частота дискретизации должна быть как минимум вдвое большечем частоты счётчика или равна, что вы и сделали далее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смотря какой счетчик вам нужен?

Запись такого вида

count=count+2'b1;

Verilog интерпретирует как

count=count+2'b11;

либо

count=count+2'd3;

т.е. счетчик + 3

если нужен счетчик + 1 то надо писать

count=count+1'b1;

либо так

count=count+2'b01;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

и с чего вдруг

2 битовую единицу верилог стал интерпретировать как тройку?

 

чтобы получить 2'b11 надо писать {2{1'b1}} но ни как не 2'b1, потому что последние как и 15'b1 - есть единица, заданной разрядности, с заданным количеством нулей до.

 

если 2'b11 == 2'b1, зачем делать разную запись?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

и с чего вдруг

2 битовую единицу верилог стал интерпретировать как тройку?

 

чтобы получить 2'b11 надо писать {2{1'b1}} но ни как не 2'b1, потому что последние как и 15'b1 - есть единица, заданной разрядности, с заданным количеством нулей до.

 

если 2'b11 == 2'b1, зачем делать разную запись?

Да вы правы. На симуляции показывает именно 1.

 

Был не прав :(

 

Но я отталкивался от того что прочитал.

Файлы в приложении.

Verilog_HDL.pdf

post-41680-1397366596_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но я отталкивался от того что прочитал.

Файлы в приложении.

А это ошибка...

правда верилог делает дополнение единицами слева до полной разрядности, но только для "знаковых" - signed ...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но я отталкивался от того что прочитал.

 

Мда.... Не читайте по утрам советских газет © :)

Есть стандарт, читайте только его, причем в оригинале, без переводов. Там все (ну почти все) подробно расписано, что можно, что нельзя, и что из чего получится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

правда верилог делает дополнение единицами слева до полной разрядности, но только для "знаковых" - signed ...

 

что совершенно понятно, так как

-1 == 1 для 1 битного числа

-1 == 11 для 2 битного числа

и так далее...

то есть увеличивая битность знаковго числа, дополнять его надо значением старшего доступного разряда

01 -> 000....01

11 -> 111....11

что сохранит значение знакового числа, но беззнаковое должно добиваться нулями, при удлинении вектора не должно меняться значение....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...