Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Spartan - 6 LX9 USB - UART
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Igor_G
Доброго времени суток. Мне нужна помощь с програмираванием ПЛИС.
Мне нужно передать байт даних с компьютера на ПЛИС,вичеслеть на ней логическое уравнение и результат отправить на компьютер.
ПЛИС - Spartan - 6 LX9.
я нашол VHDL-код для прошивки, но не знаю как зделать тестбенч на компьютере для приема и передачи.
Помогите, пожалуйста. Буду благодарен
AVR
http://fpga4fun.com/SerialInterface.html
https://github.com/alexforencich/verilog-uart
Также есть известная реализация uart_rx6.v и uart_tx6.v для Xilinx от Ken Chapman

Какая операционная система на компьютере? И чем тогда не подходит любая программа терминала, умеющая работать в hex режиме?
Как сделать? Написать программу, для начала проще взять язык Python и сделать такой тестбенч.

Пример такой программы на Python:
Цитата
import serial
ser = serial.Serial("COM1", 9600, timeout=10)
ser.write("\x01")
Пишем байт число 1. Для чтения: ser.read.
Tpeck
Цитата(AVR @ Nov 2 2016, 10:11) *
Пример такой программы на Python:


Мне кажется, что автор топика хочет сначала промоделировать все это в симуляторе и не знает как это сделать.
iosifk
Цитата(Igor_G @ Nov 2 2016, 02:52) *
Помогите, пожалуйста. Буду благодарен

Хотите поговорим по скайпу?
AVR
Цитата(Tpeck @ Nov 2 2016, 10:41) *
Мне кажется, что автор топика хочет сначала промоделировать все это в симуляторе и не знает как это сделать.
Действительно так. Тогда подойдут все мои ссылки - именно с помощью них я делал подобные тестбенчи. Если у автора темы мало опыта написания простейших тестбенчей, то будет сложно объяснить как воткнуть туда эти модули и заставить их принимать передавать и в консоль выводить. Вкратце, автору надо просто воткнуть на прием в тестбенче то же, что он поставил для ПЛИСовой части, и на передачу то же, что он вставил в ПЛИС для передачи. В VHDL я не силен, но могу автору темы подсказать как написать подобный тестбенч на Verilog - то что рабочие модули на VHDL это не беда.
А симулятор тогда какой?
iosifk
Цитата(AVR @ Nov 2 2016, 12:02) *
Действительно так. Тогда подойдут все мои ссылки - именно с помощью них я делал подобные тестбенчи. Если у автора темы мало опыта написания простейших тестбенчей, то будет сложно объяснить как воткнуть туда эти модули и заставить их принимать передавать и в консоль выводить. Вкратце, автору надо просто воткнуть на прием в тестбенче то же, что он поставил для ПЛИСовой части, и на передачу то же, что он вставил в ПЛИС для передачи. В VHDL я не силен, но могу автору темы подсказать как написать подобный тестбенч на Verilog - то что рабочие модули на VHDL это не беда.
А симулятор тогда какой?

Вкратце еще проще.. Пишу "сверху-вниз":
Надо выбрать протокол обмена между ПЛИС и ПК
Потом для ПК поставить монитор или написать свой
Для ПЛИС сделать автомат обрабатывающий протокол
Под ним сделать автомат, отсылающий байты в UART
Потом сделать UART
Потом все это запустить в железе...

Ну и для симуляции тоже самое, только надо в тестбенче сделать еще аналог ПК с его шифратором протокола...
А так, в остальном, все довольно просто... Наверняка и ссылки на написание тестбенча подойдут... И готовых UARTов на "открытых проектах" полно... Только если "не знаю как зделать тестбенч на компьютере для приема и передачи", то начинать надо с самого начала, иначе курсовик не получится в срок...
Igor_G
У меня Windows 8.
то есть достаточно поставить прошивку на ПЛИС и зделаться тестовою программу?

Цитата(AVR @ Nov 2 2016, 09:11) *
http://fpga4fun.com/SerialInterface.html
https://github.com/alexforencich/verilog-uart
Также есть известная реализация uart_rx6.v и uart_tx6.v для Xilinx от Ken Chapman

Какая операционная система на компьютере? И чем тогда не подходит любая программа терминала, умеющая работать в hex режиме?
Как сделать? Написать программу, для начала проще взять язык Python и сделать такой тестбенч.

Пример такой программы на Python:
Пишем байт число 1. Для чтения: ser.read.

Flip-fl0p
Отправить байт по UART очень просто:
1. Создаёте текстовый файл.
2. Открываете его HEX редактором. Я например открываю его программой Notepad ++ с плагином для редактирования HEX файлов.
3. Удаляете всё что там есть и записываете нужный Вам байт.
4. В консоле Windows набираете
Код
mode com5 baud=9600 parity=n data=8
copy D:\bit /b com5
pause

Где:
com5 - имя порта через который пересылаются данные.
baud=9600- необходимый бод-рейт.
parity=n - отключение битов паритета
data=8 - количество бит в пакте.
D:\bit - расположение и название файла с байтом
Для получения полной справки по команде mode наберите в коносле mode /?

Вот у меня например 3 байта в файле:
Igor_G
Буду признателен.
Цитата(iosifk @ Nov 2 2016, 10:28) *
Хотите поговорим по скайпу?



А как прочитать байт по UART
Цитата(Flip-fl0p @ Nov 2 2016, 14:35) *
Отправить байт по UART очень просто:
1. Создаёте текстовый файл.
2. Открываете его HEX редактором. Я например открываю его программой Notepad ++ с плагином для редактирования HEX файлов.
3. Удаляете всё что там есть и записываете нужный Вам байт.
4. В консоле Windows набираете
Код
mode com5 baud=9600 parity=n data=8
copy D:\bit /b com5
pause

Где:
com5 - имя порта через который пересылаются данные.
baud=9600- необходимый бод-рейт.
parity=n - отключение битов паритета
data=8 - количество бит в пакте.
D:\bit - расположение и название файла с байтом
Для получения полной справки по команде mode наберите в коносле mode /?

Вот у меня например 3 байта в файле:

Igor_G
Возникла ошибка: ImportError: No module named serial. B Python не шарю, может подскажите?


Цитата(AVR @ Nov 2 2016, 09:11) *
http://fpga4fun.com/SerialInterface.html
https://github.com/alexforencich/verilog-uart
Также есть известная реализация uart_rx6.v и uart_tx6.v для Xilinx от Ken Chapman

Какая операционная система на компьютере? И чем тогда не подходит любая программа терминала, умеющая работать в hex режиме?
Как сделать? Написать программу, для начала проще взять язык Python и сделать такой тестбенч.

Пример такой программы на Python:
Пишем байт число 1. Для чтения: ser.read.

iosifk
Цитата(Igor_G @ Nov 2 2016, 19:22) *
Буду признателен.

Ну так действуйте... Камера+микрофон->звонок...
AVR
Цитата(Igor_G @ Nov 3 2016, 00:35) *
Возникла ошибка: ImportError: No module named serial. B Python не шарю, может подскажите?

Нет нужного модуля. Предлагаю скачать такую интересную сборку https://www.continuum.io/downloads#windows - в ней уже все необходимые модули включены в поставку.
Igor_G
Как связаться с вами?
Вот мой скайп:
gubish_i19
Цитата(iosifk @ Nov 3 2016, 09:54) *
Ну так действуйте... Камера+микрофон->звонок...

AVR
Цитата(Igor_G @ Nov 4 2016, 00:43) *
Как связаться с вами?
Вот мой скайп:
gubish_i19

https://electronix.ru/forum/index.php?showuser=8369
Другая информация
skype:
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.