MrGalaxy 9 31 декабря, 2019 Опубликовано 31 декабря, 2019 · Жалоба 38 минут назад, Strob сказал: Это небрежность в том смысле, что если завтра Вам придется писать под спартан 6, можно на ровном месте схлопотать проблем. Т.е. не везде такое синтезируется? Спасибо, буду знать. 40 минут назад, Strob сказал: Если использовать например тип reg, можно задать произвольную разрядность К нему применимы арифметические операции? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 33 31 декабря, 2019 Опубликовано 31 декабря, 2019 · Жалоба Приветствую! 56 minutes ago, Strob said: Это небрежность в том смысле, что если завтра Вам придется писать под спартан 6, можно на ровном месте схлопотать проблем. Это какие же проблемы ? Чем же Verilog код для Cyclone IV отличается от кода для Spartan6? 15 minutes ago, MrGalaxy said: К нему применимы арифметические операции? Да, применимы. К тому же по сравнению с древним Verilog 1995 в стандарте 2001 года появилось возможность явного указания переменной со знаком. - reg | wire signed [N-1:0] var_name; Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 16 31 декабря, 2019 Опубликовано 31 декабря, 2019 · Жалоба 1 час назад, MrGalaxy сказал: На самом деле ошибки здесь нет, при переполнении счётчика он автоматически сбрасывается в ноль. Это неправильно. Это не вектор, это integer, тут никакого автоматического перехода из 'high в 'low нет. Как только вы выходите за границу определённого диапазона, возникает ошбка. 1 час назад, MrGalaxy сказал: Затем, что используется только внутри блока и наружу не выводится. Так а переменная зачем? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Strob 0 31 декабря, 2019 Опубликовано 31 декабря, 2019 · Жалоба 5 minutes ago, RobFPGA said: Это какие же проблемы ? Чем же Verilog код для Cyclone IV отличается от кода для Spartan6? Речь шла о vhdl коде где integer range 0 to 15 используется как счетчик, без условия сброса в ноль. Я указал что как минимум симулятор ise в поведенческой симуляции не поймет что счетчик после 15 должен перейти в 0 и продолжит считать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrGalaxy 9 31 декабря, 2019 Опубликовано 31 декабря, 2019 (изменено) · Жалоба 39 минут назад, andrew_b сказал: Это неправильно. Это не вектор, это integer, тут никакого автоматического перехода из 'high в 'low нет. Как только вы выходите за границу определённого диапазона, возникает ошбка. Знаете, не хочу спорить, мне лениво сюда рабочий проект выкладывать. Для понимания надо представлять в общих чертах как выделяется память, а также машинное представление типа integer. 39 минут назад, andrew_b сказал: Так а переменная зачем? Если честно, не понял вопрос. 33 минуты назад, Strob сказал: Речь шла о vhdl коде где integer range 0 to 15 используется как счетчик, без условия сброса в ноль. Я указал что как минимум симулятор ise в поведенческой симуляции не поймет что счетчик после 15 должен перейти в 0 и продолжит считать Понятно. В Квартусовском симуляторе я тоже подобный глюк заметил при работе с реверсивными счётчиками. Но там код был немного другой, найду - выложу. Я тогда подумал, что код не синтезируется и переписал без реверсивности. Изменено 31 декабря, 2019 пользователем MrGalaxy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 16 31 декабря, 2019 Опубликовано 31 декабря, 2019 · Жалоба 2 часа назад, MrGalaxy сказал: Для понимания надо представлять в общих чертах как выделяется память, а также машинное представление типа integer. Я тоже знаю много умных слов, но к делу это отношения не имеет. 2 часа назад, MrGalaxy сказал: В Квартусовском симуляторе А, ну понятно. Вы симулируете после синтеза. Там от ваших integer даже воспоминаний не осталось. В дугих симуляторах, когда будете симулировать этот ваш RTL, вас будет ждать сюрприз. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться