МАРСОХОД

Open Source Hardware Project

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

ТЕМА: Простенький обнаружитель

Простенький обнаружитель 2 года 10 мес. назад #5212

  • VETERNICK
  • VETERNICK аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 4
  • Спасибо получено: 0
Всем привет. Собираюсь прошить плату марсоход 3 бис на эту программу. На всякий случай решил сначала показать ее народу, чтобы если у меня какая-то оплошность глобальная допущена чтобы мне на нее указали.

module kfn(se1 , se2 , clk , c, d , fout);
input se1, se2; //кнопки
input clk; //тактовый сигнал
output wire c,d; //выходы с синхронизвторов
reg flag1; //сигнал для обнуления
reg a,b,g,v; //переменные используемые в синхронизаторе
integer i=0; //счетчик входных импульсов
parameter K = 4; //порог обнаружения
integer summ = 0; //объединяет регистр и сумматор
output reg fout;
always @(posedge clk)
begin
b=a;
v=g;
a=se1;
g=se2;
if(c==1) //проверка наличия импульса о "1"
begin
if (flag1==1)
begin
i = 0;
summ = 0;
fout = 0;
flag1 = 0;
end
summ = summ + 1;
i=i+1;
end
else
if(d==1) //проверка наличия импульса о "0"
begin
if (flag1==1)
begin
i = 0;
summ = 0;
fout = 0;
flag1 = 0;
end
summ = summ;
i = i + 1;
end
if (i==7) //условие Накопления регистра
begin
flag1 = 1;
if(summ >= K) //сравнение с порогом
begin
fout = 1;
end
else
begin
fout = 0;
end
end

end

assign c = b & ~a; //использование синхронизатора для получения импульсов каждый раз по нажатию кнопок
assign d = v & ~g; //

endmodule

Работает довольно банально:
кнопки se1 и se2 символизируют 1 и 0. Когда программа насчитывает 8 нажатий она проверяет сколько из них были "1" и если их 4 и больше то fout становится равен 1.
fout должен быть светодиодом. Подскажите, люди добрые, будет ли работать программа на плате?

На форме все форматирование кода пошло коту под хвост извините прикладываю verilog файл .

файлообменник.рф/s0479l0p8sok.html

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

Последнее редактирование: от VETERNICK.

Простенький обнаружитель 2 года 10 мес. назад #5213

  • Leka
  • Leka аватар
  • Не в сети
  • Живу я здесь
  • Живу я здесь
  • Сообщений: 631
  • Спасибо получено: 51
Вроде должно работать, только проверка будет 7 нажатий, а не 8.

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

Простенький обнаружитель 2 года 10 мес. назад #5248

  • VETERNICK
  • VETERNICK аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 4
  • Спасибо получено: 0
Возник еще 1 вопрос.
Возникают следующие предупреждения:
Critical Warning : Timing requirements not met
Critical Warning : Synopsys Design Constraints File file not found: 'kfn.sdc'. A Synopsys Design Constraints File is required by the TimeQuest Timing Analyzer to get proper timing constraints. Without it, the Compiler will not properly optimize the design.
Я понимаю, что скорее всего я упускаю некоторые очевидные моменты, поэтому не могли бы вы мне подкинуть ссылку где я могу об этом почитать или что гуглить?

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

Простенький обнаружитель 2 года 10 мес. назад #5251

  • VETERNICK
  • VETERNICK аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 4
  • Спасибо получено: 0
Также я пытался воспользоваться советом

"Наши кнопочки подключены одним контактом к нашей ПЛИС, а вторым контактом к нулевому проводу (к земле). Таким образом, при нажатии кнопки, контакт микросхемы ПЛИС будет подключен к земле. А вот что будет, когда кнопка не нажата? Вход микросхемы будет болтаться неподсоединенный и это конечно плохо. Вход микросхемы нужно "притянуть" к напряжению питания резистором, чтобы не нажатая кнопка давала на входе микросхемы четкую логическую единицу. Можно было бы припаять такой резистор снаружи чипа - но не нужно. Микросхема ПЛИС позволяет по вашему желанию подключить внутренний резистор к любому входу. Именно это мы и сделаем. Мы назначаем всем входам проекта с именем key* настройку "Weak Pull Up resistor"."

но стала возникать ошибка Error (176310): Can't place multiple pins assigned to pin location Pin_129 (IOPAD_X11_Y25_N7)
Info (176311): Pin se2 is assigned to pin location Pin_129 (IOPAD_X11_Y25_N7)
Info (176311): Pin ~ALTERA_nCONFIG~ is assigned to pin location Pin_129 (IOPAD_X11_Y25_N7)
в эдиторе выглядит все как в примере

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

Простенький обнаружитель 2 года 10 мес. назад #5252

  • Leka
  • Leka аватар
  • Не в сети
  • Живу я здесь
  • Живу я здесь
  • Сообщений: 631
  • Спасибо получено: 51

VETERNICK пишет: Critical Warning : Timing requirements not met
Critical Warning : Synopsys Design Constraints File file not found: 'kfn.sdc'. A Synopsys Design Constraints File is required by the TimeQuest Timing Analyzer to get proper timing constraints. Without it, the Compiler will not properly optimize the design.

marsohod.org/forum/proekty-polzovatelej/...ektrod?start=90#5143
Для синхронного дизайна - смотрите файл top.sdc, и делаете аналогичный kfn.sdc, поменяв имя клока.

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

Простенький обнаружитель 2 года 10 мес. назад #5253

  • Leka
  • Leka аватар
  • Не в сети
  • Живу я здесь
  • Живу я здесь
  • Сообщений: 631
  • Спасибо получено: 51

VETERNICK пишет: Info (176311): Pin se2 is assigned to pin location Pin_129 (IOPAD_X11_Y25_N7)
Info (176311): Pin ~ALTERA_nCONFIG~ is assigned to pin location Pin_129 (IOPAD_X11_Y25_N7)

Это один из конфигурационных пинов, проще использовать другой.

marsohod.org/forum/voprosy-o-plate-marso...lograf?start=30#3353

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

Последнее редактирование: от Leka.

Простенький обнаружитель 2 года 10 мес. назад #5255

VETERNICK пишет: но стала возникать ошибка Error (176310): Can't place multiple pins assigned to pin location Pin_129 (IOPAD_X11_Y25_N7)
Info (176311): Pin se2 is assigned to pin location Pin_129 (IOPAD_X11_Y25_N7)
Info (176311): Pin ~ALTERA_nCONFIG~ is assigned to pin location Pin_129 (IOPAD_X11_Y25_N7)


В меню "Assignment/Ddevice/Device and Pin Options/General"
убрать галочку в строке "Enable nCONFIG, nSTATUS, and CONF_DONE pins"
Спасибо сказали: alman

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

Простенький обнаружитель 2 года 10 мес. назад #5256

  • VETERNICK
  • VETERNICK аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 4
  • Спасибо получено: 0
Спасибо всем за помощь! Получилось!
Кстати Еще 1 вопрос как заставить программатор загрузить программу во встроенную память MAX10?

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

Простенький обнаружитель 2 года 10 мес. назад #5257

VETERNICK пишет: Спасибо всем за помощь! Получилось!
Кстати Еще 1 вопрос как заставить программатор загрузить программу во встроенную память MAX10?


Для этого нужно зашивать программатором не "*.sof" а "*.pof", а для этого *.pof" из "*.sof" нужно конвертировать.
Про конвертацию есть в этой статье - marsohod.org/11-blog/261-sf
только нужны другие настройки
- Programming file type: (.pof)
- Mode: Internal Configuration
Спасибо сказали: alman

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

  • Страница:
  • 1
Время создания страницы: 0.192 секунд

facebook  GitHub  YouTube  Twitter
Вы здесь: Начало Forum Наш форум Проекты пользователей Простенький обнаружитель