МАРСОХОД

Open Source Hardware Project

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА: Вопросы по языку Verilog

Вопросы по языку Verilog 7 года 4 мес. назад #458

  • Dr.Mike
  • Dr.Mike аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 5
  • Спасибо получено: 4
Недавно начал изучать программирование и столкнулся с проблемами.
Не могу придумать как описать генератор тактовых сигналов на определенную частоту, в почти пустом проекте этим занимается мегофункция ALTUMF_NONE.
Подскажите как выйти из данной ситуации, очень не хочется делать из verilog символ и соединять в графическом редакторе с мегофункцией.
Спасибо сказали: Mastar24

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Вопросы по языку Verilog 7 года 4 мес. назад #459

Если нужен только генератор, можно использовать функцию "altufm_osc" .

altufm_osc gen(.oscena(1'b1),.osc(clk));
Спасибо сказали: Mastar24

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Вопросы по языку Verilog 7 года 4 мес. назад #460

  • Dr.Mike
  • Dr.Mike аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 5
  • Спасибо получено: 4
спс, а как тут задать нужную частоту?
в ALTUMF_NONE есть параметр ERASE_TIME = 500000000
Спасибо сказали: Mastar24

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Вопросы по языку Verilog 7 года 4 мес. назад #461

Частоту внутреннего генератора ( ALTUFM_) изменить нельзя. Она вырабатывается от внутренним RC-генератором и
ее значение может зависеть от многих параметров - экземпляра чипа , температуры и т.д. На нашей практике
разброс частот был от 4.8 до 5.1Мгц.
Спасибо сказали: Mastar24

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Вопросы по языку Verilog 7 года 3 мес. назад #471

  • Dr.Mike
  • Dr.Mike аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 5
  • Спасибо получено: 4
Помогите с вопросом про inout, как работать с input и output понятно, а с двунаправленным не очень.
Попытался снять с него сигнал и передать на выход, и пытался просто выдать через него сигнал (clk), результат один - ничего, он никак не отреагировал.
Спасибо сказали: Mastar24

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Вопросы по языку Verilog 7 года 3 мес. назад #472

Сигнал нужно описывать как "inout", а для перевода в высокоомное состояние можно указывать значение "z".
Пример:

module max2(key,dp);
input wire [1:0] key;
inout wire dp;
assign dp=(key[0])?key[1]:1'bz;
endmodule
Спасибо сказали: Mastar24

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Вопросы по языку Verilog 7 года 3 мес. назад #478

на Verilog можно записывать:

reg [n:0] a; // где n будет входной переменной?
Спасибо сказали: Mastar24

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Вопросы по языку Verilog 7 года 3 мес. назад #480

  • nckm
  • nckm аватар
  • Не в сети
  • Администрация форума
  • Администрация форума
  • Сообщений: 88
  • Спасибо получено: 23

dundich пишет: на Verilog можно записывать:

reg [n:0] a; // где n будет входной переменной?

нет, так не получится, во время синтеза схемы уже нужно точно знать, сколько там бит у регистра.
Однако n может быть параметром (parameter), определяемым до компиляции.
Спасибо сказали: Mastar24

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Вопросы по языку Verilog 7 года 3 мес. назад #481

Подскажите, такая задача:

есть модуль, один из входов которого описан как input [7:0] data;
Есть reg [7:0] temp = 34;
По светодиодам вижу, что data принимают какое-то значение.
Пытаюсь записать data в temp, записываются всегда 0.

Что может быть, что я делаю неправильно?
Спасибо сказали: Mastar24

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Вопросы по языку Verilog 7 года 3 мес. назад #484

  • Dr.Mike
  • Dr.Mike аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 5
  • Спасибо получено: 4
Пытаюсь отослать 96 раз "0", получить в ответ "1", и послать еще 12 раз "0" по inout, не получается.
Могу ли я использовать выражение для условия read_buffer == 1?
Пробовал реализовать все эти задачи через 3 task, но read_buffer после получения "1", уходил в неопределенное состояние.
что посоветуете? (пытаюсь разобраться с датчиком DS18B20/ инициализация - посылаем "0" 480 мкс, дожидаемся ответа "1", посылаем "0" 60 мкс)

ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]






Вложенный файл:

Имя файла: Tri-states.zip
Размер файла: 2 KB
Вложения:
Спасибо сказали: Mastar24

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Dr.Mike.
Время создания страницы: 0.215 секунд

facebook  GitHub  YouTube  Twitter