jenya7 0 28 августа, 2019 Опубликовано 28 августа, 2019 (изменено) · Жалоба 1 hour ago, Flip-fl0p said: Представьте, что Вы заказчик, который нанимает человека проект делать, час работы которого стоит много денег. Так вот опишите Вашу задачу таким образом, будто Вы выдаете ТЗ для наемного работника. Ибо в Ваших же интересах описать задачу таким образом, чтобы никаких вопросов касаемо поставленной задачи у работника не возникало, поскольку кривое ТЗ=потеря $. Сейчас мне совсем непонятно что Вы делаете, и что хотите сделать. Уважайте других участников форума, ибо их советы бесплатные и они тратят своё время на помощь, не требуя ничего взамен. И не забывайте, ВТО форум - это отличная база знаний, вклад в которую вносит каждый участник форума какой именно момент вам не понятен? даже я понял пока объяснял. как работает UART знаете? Изменено 28 августа, 2019 пользователем jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 28 августа, 2019 Опубликовано 28 августа, 2019 · Жалоба 3 минуты назад, jenya7 сказал: какой именно момент вам не понятен? даже я понял пока объяснял. Все о начала и до конца. Почему вы так "криво" разбиваете Ваше число изначально. Где оно потом применяется. Да и код перед выкладыванием не ешало бы формулировать и описать.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nieve 0 28 августа, 2019 Опубликовано 28 августа, 2019 · Жалоба Не понятен такой момент: вы получили байт по UART, зачем его переделывать на VHDL? Вы получили число, в симуляторе смотрите значение в хексе или десятке, суть задачи не ясна. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 220 28 августа, 2019 Опубликовано 28 августа, 2019 · Жалоба 19 минут назад, jenya7 сказал: даже я понял пока объяснял Наверное, речь всё-таки идёт об этом: https://www.google.ru/search?&q="bcd+to+binary"+vhdl Вот только все ответы там тоже будут подразумевать, что данные вменяемые. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 28 августа, 2019 Опубликовано 28 августа, 2019 · Жалоба 1 hour ago, Nieve said: Не понятен такой момент: вы получили байт по UART, зачем его переделывать на VHDL? Вы получили число, в симуляторе смотрите значение в хексе или десятке, суть задачи не ясна. ну если его прислали в аски, строкой "1234" я его принял if (RX_DATA > X"2F" and RX_DATA < X"3A") then --0 to 9 rx_uart_buf (rx_idx) <= RX_DATA - X"30"; --convert to number теперь у меня содержимое буфера rx_uart_buf(0) -1 rx_uart_buf(1) -2 rx_uart_buf(2) -3 rx_uart_buf(3) -4 вопрос - конкатенация в VHDL даст результатирующее число - 1234? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 28 августа, 2019 Опубликовано 28 августа, 2019 · Жалоба 4 минуты назад, jenya7 сказал: ну если его прислали в аски, строкой "1234" я его принял if (RX_DATA > X"2F" and RX_DATA < X"3A") then --0 to 9 rx_uart_buf (rx_idx) <= RX_DATA - X"30"; --convert to number теперь у меня содержимое буфера rx_uart_buf(0) -1 rx_uart_buf(1) -2 rx_uart_buf(2) -3 rx_uart_buf(3) -4 вопрос - конкатенация в VHDL даст результатирующее число - 1234? Конкатенация даст лишь объединение битов. Вы бы хоть умную книжку по VHDL прочитали, странно слышать от Вас такой вопрос про конкатенацию. Чтобы правильно восстановить число надо правильно его разбить. т.е представить Ваше несчастное число 1234 в виде 4 байт изначально. И побайтно его пересылать. Сначала байты с 7 по 0, затем с 15 по 8, затем с 23 по 16, затем с 31 по 24. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 220 28 августа, 2019 Опубликовано 28 августа, 2019 · Жалоба 6 минут назад, jenya7 сказал: конкатенация в VHDL даст результатирующее число - 1234? Вы это число вот сейчас написали в десятичной системе, или в двоично-десятичной? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 28 августа, 2019 Опубликовано 28 августа, 2019 (изменено) · Жалоба 1 hour ago, Flip-fl0p said: Конкатенация даст лишь объединение битов. Вы бы хоть умную книжку по VHDL прочитали, странно слышать от Вас такой вопрос про конкатенацию. Чтобы правильно восстановить число надо правильно его разбить. т.е представить Ваше несчастное число 1234 в виде 4 байт изначально. И побайтно его пересылать. Сначала байты с 7 по 0, затем с 15 по 8, затем с 23 по 16, затем с 31 по 24. понял. я честно попытался. просто пользователю удобней наклацать в терминале, скажем "write 1234 5678". а не сдвигать и слать аргументы побайтно. Изменено 28 августа, 2019 пользователем jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 28 августа, 2019 Опубликовано 28 августа, 2019 · Жалоба 6 hours ago, Flip-fl0p said: Хреновое ТЗ - результат - ХЗ. Понятнее не стало... Ответ супер. Повеселил. спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 29 августа, 2019 Опубликовано 29 августа, 2019 · Жалоба 7 часов назад, Maverick_ сказал: Ответ супер. Повеселил. спасибо. В каждой шутке есть доля правды. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quato_a 3 29 августа, 2019 Опубликовано 29 августа, 2019 · Жалоба 11 hours ago, jenya7 said: понял. я честно попытался. просто пользователю удобней наклацать в терминале, скажем "write 1234 5678". а не сдвигать и слать аргументы побайтно. Я бы рекомендовал автору перед созданием темы не спешить, а посидеть и подумать на задачей с карандашом и блокнотом, и симулятором. + хорошее и грамотное описание задачи/вопроса уже несет в себе часть ответа Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mad_kvmg 0 30 августа, 2019 Опубликовано 30 августа, 2019 · Жалоба On 8/28/2019 at 9:19 PM, jenya7 said: ну если его прислали в аски, строкой "1234" https://stackoverflow.com/questions/10979491/ascii-to-integer-conversion-in-verilog и будут вам дальше числа как вы и хотите Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 1 сентября, 2019 Опубликовано 1 сентября, 2019 (изменено) · Жалоба On 8/30/2019 at 9:22 AM, Mad_kvmg said: https://stackoverflow.com/questions/10979491/ascii-to-integer-conversion-in-verilog и будут вам дальше числа как вы и хотите спасибо. но у меня не совсем классический случай num = atoi(str); я уже получил байты и перевел их в числовое значение. теперь мне их надо перевести в std_logic_vector. типа этого reg_data <= rx_uart_buf(0)(3 downto 0) & rx_uart_buf(1)(3 downto 0) & rx_uart_buf(2)(3 downto 0) & rx_uart_buf(3)(3 downto 0); но только генерик метод. Изменено 1 сентября, 2019 пользователем jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 2 сентября, 2019 Опубликовано 2 сентября, 2019 · Жалоба On 9/1/2019 at 9:27 AM, jenya7 said: типа этого reg_data <= rx_uart_buf(0)(3 downto 0) & rx_uart_buf(1)(3 downto 0) & rx_uart_buf(2)(3 downto 0) & rx_uart_buf(3)(3 downto 0); 'типа этого' будет как то работать для hex байтов (в виде '12ff'), но не в децимал (как у вас) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 2 сентября, 2019 Опубликовано 2 сентября, 2019 · Жалоба 1 hour ago, xvr said: 'типа этого' будет как то работать для hex байтов (в виде '12ff'), но не в децимал (как у вас) мда. а слона то я и не заметил. печалька. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться