jenya7 0 11 июля, 2017 Опубликовано 11 июля, 2017 · Жалоба есть функция function ToLower(str : string) return string is variable ret : string(str'range) := str; begin for i in ret'range loop if(ret(i) > X"40" and ret(i) < X"5B") then ret(i) := ret(i) + 32; end if; end loop; return ret; end function ToLower; получаю ошибку Error (10327): VHDL error at parser.vhd(54): can't determine definition of operator "">"" -- found 0 possible definitions Error (10327): VHDL error at parser.vhd(54): can't determine definition of operator ""<"" -- found 0 possible definitions В чем проблема? Оператор сравнения не работает с чарами? А как быть? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 11 июля, 2017 Опубликовано 11 июля, 2017 · Жалоба В чем проблема? Оператор сравнения не работает с чарами? А как быть? Смотрите на аттрибут 'POS. Ну и константу, естественно, надо задавать в целом виде, например 16#40#. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 16 11 июля, 2017 Опубликовано 11 июля, 2017 · Жалоба В чем проблема? Оператор сравнения не работает с чарами? А как быть?Оператор сравнения работает с чарами, разумеется. Только чаров у вас тут нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 11 июля, 2017 Опубликовано 11 июля, 2017 (изменено) · Жалоба ммм...все так грустно да? ну хорошо поставлю вопрос по другому есть строка signal rx_uart_buf : string (0 to 127); я хочу проверить каждый чар when ST_PARSE_COM => if (idx < RX_BUF_SIZE) then case character'pos(rx_uart_buf(idx)) is when 0 => ParseState <= ST_PARSE_IDLE; when 32 => ParseState <= ST_PARSE_ARG1; end case; idx := idx + 1; end if; when 0 - это будет '\0' а when 32 - space character? VHDL компайлер это как воспримет? character'pos - это позиция в ASCII Table? впрочем так тоже компилируется case rx_uart_buf(glob_idx) is when NUL => ParseState <= ST_PARSE_IDLE; when ' ' => ParseState <= ST_PARSE_ARG1; но мне тут сказали что стринг не синтезируемый тип. так что это не будет работать в железе? Изменено 11 июля, 2017 пользователем Jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться