Jump to content

    

Передача данных по USB

38 минут назад, Strob сказал:

Это небрежность в том смысле, что если завтра Вам придется писать под спартан 6, можно на ровном месте схлопотать проблем.

Т.е. не везде такое синтезируется? Спасибо, буду знать.

40 минут назад, Strob сказал:

 Если использовать например тип reg, можно задать произвольную разрядность

К нему применимы арифметические операции?

Share this post


Link to post
Share on other sites

Приветствую!

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.

Share this post


Link to post
Share on other sites
1 час назад, MrGalaxy сказал:

На самом деле ошибки здесь нет, при переполнении счётчика он автоматически сбрасывается в ноль.

Это неправильно. Это не вектор, это integer, тут никакого автоматического перехода из 'high в 'low нет. Как только вы выходите за границу определённого диапазона, возникает ошбка.

1 час назад, MrGalaxy сказал:

Затем, что используется только внутри блока и наружу не выводится.

Так а переменная зачем?

Share this post


Link to post
Share on other sites
5 minutes ago, RobFPGA said:

Это какие же проблемы ? Чем же Verilog код для Cyclone IV отличается от кода для Spartan6?  

Речь шла о vhdl коде где integer range 0 to 15 используется как счетчик, без условия сброса в ноль. Я указал что как минимум симулятор ise в поведенческой симуляции не поймет что счетчик после 15 должен перейти в 0 и продолжит считать

Share this post


Link to post
Share on other sites
39 минут назад, andrew_b сказал:

Это неправильно. Это не вектор, это integer, тут никакого автоматического перехода из 'high в 'low нет. Как только вы выходите за границу определённого диапазона, возникает ошбка.

Знаете, не хочу спорить, мне лениво сюда рабочий проект выкладывать.

Для понимания надо представлять в общих чертах как выделяется память, а также машинное представление типа integer.

 

39 минут назад, andrew_b сказал:

Так а переменная зачем?

Если честно, не понял вопрос.

33 минуты назад, Strob сказал:

Речь шла о vhdl коде где integer range 0 to 15 используется как счетчик, без условия сброса в ноль. Я указал что как минимум симулятор ise в поведенческой симуляции не поймет что счетчик после 15 должен перейти в 0 и продолжит считать

Понятно. В Квартусовском симуляторе я тоже подобный глюк заметил при работе с реверсивными счётчиками. Но там код был немного другой, найду - выложу. Я тогда подумал, что код не синтезируется и переписал без реверсивности.

Edited by MrGalaxy

Share this post


Link to post
Share on other sites
2 часа назад, MrGalaxy сказал:

Для понимания надо представлять в общих чертах как выделяется память, а также машинное представление типа integer.

Я тоже знаю много умных слов, но к делу это отношения не имеет.

2 часа назад, MrGalaxy сказал:

В Квартусовском симуляторе

А, ну понятно. Вы симулируете после синтеза. Там от ваших integer даже воспоминаний не осталось.

В дугих симуляторах, когда будете симулировать этот ваш RTL, вас будет ждать сюрприз.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now