реклама на сайте
подробности

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Освоение ISE
Nuts
сообщение Jul 26 2008, 12:12
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 28
Регистрация: 21-07-08
Пользователь №: 39 128



Здравствуйте!!!
Написал в ISE программу для ПЛИС XILINX на VHDL, программа состоит из одного процесса.
Скажите пожалуйста, можно средствами ISE посмотреть за сколько тактов выполнится программа, тоесть процесс?

Сообщение отредактировал Nuts - Jul 26 2008, 12:29
Go to the top of the page
 
+Quote Post
makc
сообщение Jul 26 2008, 12:29
Сообщение #2


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(Nuts @ Jul 26 2008, 16:12) *
Здравствуйте!!!
Скажите пожалуйста, можно средствами ISE посмотреть за сколько тактов выполнится программа?


О какой программе Вы говорите?
Если Вы имеете в виду получение результата на выходе Вашего модуля (проекта), то ISE этим не занимается, т.к. не знает логики работы модуля и воздействий, которые будут производиться на модуль. Но Вы можете воспользоваться встроенным в ISE симулятором или каким-нибудь внешним симулятором, чтобы промоделировать проект и узнать, за какое время появляется требуемый результат при заданных входных воздействиях.


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
Nuts
сообщение Jul 26 2008, 12:49
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 28
Регистрация: 21-07-08
Пользователь №: 39 128



Спасибо. За совет.

makc
Программа такая, по последовательной шине принимаю данные, накапливаю их до 16-ти бит и выбрасываю по параллельной 16-ти разрядной шине.
Мне нужно за 16 тактов: накопить 16 бит и выбросить из в параллельную шину(я хочу главным генератором ПЛИС назначить генератор последовательной шины.).
Вот интересно при обращении к переменным: сложение, вычитание сколько тактов тратится? 05.gif
Go to the top of the page
 
+Quote Post
makc
сообщение Jul 26 2008, 12:51
Сообщение #4


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(Nuts @ Jul 26 2008, 16:12) *
Написал в ISE программу для ПЛИС XILINX на VHDL, программа состоит из одного процесса.


Если весь модуль состоит из одного процесса, то, понимая логику его работы (ведь Вы его создатель), не составит большого труда посчитать время его выполнения.


Цитата(Nuts @ Jul 26 2008, 16:49) *
makc
Программа такая, по последовательной шине принимаю данные, накапливаю их до 16-ти бит и выбрасываю по параллельной 16-ти разрядной шине.
Мне нужно за 16 тактов: накопить 16 бит и выбросить из в параллельную шину(я хочу главным генератором ПЛИС назначить генератор последовательной шины.).
Вот интересно при обращении к переменным: сложение, вычитание сколько тактов тратится? 05.gif


Приведите пример кода.


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
Nuts
сообщение Jul 26 2008, 13:06
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 28
Регистрация: 21-07-08
Пользователь №: 39 128



Цитата(makc @ Jul 26 2008, 19:50) *
Если весь модуль состоит из одного процесса, то, понимая логику его работы (ведь Вы его создатель), не составит большого труда посчитать время его выполнения.


Я вот новичок, может глупости спрашиваю smile.gif

С логикой понятно, а вот например на присвоение значения переменной сколько тактов тратится?

С кодом чуть позже, мне его восстановить надо crying.gif

например :
Код
....
I,x,b:integer;
...
I:=100;
b:=300;
x:=65;
...


за один такт выполнится?

Сообщение отредактировал Nuts - Jul 26 2008, 13:00
Go to the top of the page
 
+Quote Post
makc
сообщение Jul 26 2008, 14:48
Сообщение #6


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Если после присвоения переменной Вы будете ее использовать где-то дальше в теле процесса, то использоваться будет новое, присвоенное значение. Т.е. можно считать, что оно присваивается в том же такте.

На примере это выглядит так:
Код
....
variable a,b,c:integer;
...
a:=1;
b:=2;
c:=a+b;
...


с станет равной 3 в том же такте, что и будет выполнено присвоение a и b.


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
Nuts
сообщение Jul 27 2008, 04:00
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 28
Регистрация: 21-07-08
Пользователь №: 39 128



А если такой случай где будет счетчик например:
Код
variable a,b,c:integer;
...
a:=1;
b:=b+1;   --счетчик
c:=a+b;


Тоже за один такт выполнится? 05.gif

Сообщение отредактировал Nuts - Jul 27 2008, 04:01
Go to the top of the page
 
+Quote Post
makc
сообщение Jul 27 2008, 06:01
Сообщение #8


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(Nuts @ Jul 27 2008, 08:00) *
А если такой случай где будет счетчик например:
Код
variable a,b,c:integer;
...
a:=1;
b:=b+1;   --счетчик
c:=a+b;


Тоже за один такт выполнится? 05.gif


Да. Но это только в случае, если a и b - variables. Если они signals, то будет по-другому. Почитайте любую книгу по VHDL. Все возможные варианты на примерах не рассмотришь, нужно понимание общих принципов.


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
Nuts
сообщение Jul 27 2008, 07:22
Сообщение #9


Участник
*

Группа: Новичок
Сообщений: 28
Регистрация: 21-07-08
Пользователь №: 39 128



Makс, пасибо вы очень помогли. smile.gif

Сообщение отредактировал Nuts - Jul 27 2008, 07:22
Go to the top of the page
 
+Quote Post
Maverick
сообщение Jul 27 2008, 10:26
Сообщение #10


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Nuts @ Jul 27 2008, 07:00) *
А если такой случай где будет счетчик например:
Код
variable a,b,c:integer;
...
a:=1;
b:=b+1;   --счетчик
c:=a+b;


Тоже за один такт выполнится? 05.gif


Только здесь вместо счетчика у Вас будет 32 разрядный сумматор sad.gif


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Nuts
сообщение Jul 27 2008, 16:32
Сообщение #11


Участник
*

Группа: Новичок
Сообщений: 28
Регистрация: 21-07-08
Пользователь №: 39 128



Maverick, хорошо я запомню smile.gif .
Есть вопрос
Пример:
Код
..........
..........
Port ( LED_1,LED_2: out  STD_LOGIC:='1');
..........
..........
Process
  begin
  ...........
  ...........
  if i=10 then
    LED_1<='0';         --
    LED_2<='0';
  end if;
  ............
  ............
  end process;

В примере сначала изменится порт LED_1 на '0', затем изменится LED_2 на '0', а
можно как нибудь прописать чтобы в процессе LED_1 и LED_2 изменились одновременно?
Если можно напишите примерчик 05.gif

Сообщение отредактировал Nuts - Jul 27 2008, 16:37
Go to the top of the page
 
+Quote Post
makc
сообщение Jul 27 2008, 17:57
Сообщение #12


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(Nuts @ Jul 27 2008, 20:32) *
В примере сначала изменится порт LED_1 на '0', затем изменится LED_2 на '0', а
можно как нибудь прописать чтобы в процессе LED_1 и LED_2 изменились одновременно?
Если можно напишите примерчик 05.gif


Что значит одновременно в Вашем понимании? Если "одновременно", значит "по какому-то событию", то соответствующий сигнал должен быть указан в списке чувствительности процесса. И тогда активация процесса будет привязана к конкретным событиям в модуле. Но, в любом случае, в приведенном примере изменение произойдет в один и тот же момент времени.


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
CaPpuCcino
сообщение Jul 27 2008, 18:10
Сообщение #13


тоже уже Гуру
******

Группа: Свой
Сообщений: 2 047
Регистрация: 13-06-05
Из: Кёлн - Санкт-Петербург
Пользователь №: 5 973



я бы предложил товарищу вопрошающему всё-таки сначала ознакомиться с осносами языков описания аппаратуры и проектированию с их помощью цифровых систем. для начинающих есть большой спектр литературы на русском. а потом уже если будут оставаться какие-то неясности задать соотв. вопр.


--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
Go to the top of the page
 
+Quote Post
Nuts
сообщение Jul 28 2008, 04:51
Сообщение #14


Участник
*

Группа: Новичок
Сообщений: 28
Регистрация: 21-07-08
Пользователь №: 39 128



makc
Если писать команды в теле самого модуля то они будут выполняться параллельно, чтобы команды выполнять последовательно нужно создать процесс и в нем писать команды.
Так как у меня в примере LED_1 и LED_2 находятся в процессе и выполняются по одному событию, но сначала изменится состояние LED_1 а затем изменится состояние LED_2 - так как в процессе команды выполняются последовательно.
А если нужно чтобы они выполнились параллельно, как выполняются команды в теле модуля?
Может можно написать что-то вроде :LED_1,LED_2<='0' , чтобы сигнал одновременно полетел на 2 порта сразу LED_1 и LED_2.

PS: ушел читать VHDL 05.gif

Сообщение отредактировал Nuts - Jul 28 2008, 04:53
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jul 28 2008, 05:41
Сообщение #15


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Вот к чему приводит непонимание основ...
"Программа для ПЛИС на VHDL"...
Никакая это на самом деле не программа, а конфигурация железа, записанная алгоритмическим языком. И то, что "команды" записаны друг за другом, совсем не определяет порядок их "выполнения".
Может, лучше начать со схемного ввода, пока ясность не наступит?
Основная идея - ПЛИС - это не процессор, и "программу" не "выполняет". А функционирует как цифровой автомат, логика которого задаётся конфигурацией.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post

4 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 4th July 2025 - 05:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.0149 секунд с 7
ELECTRONIX ©2004-2016