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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Про ПЛИС и VHDL, Некоторые вопосы
Грендайзер
сообщение Jul 12 2011, 10:46
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



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

entity DIVIDER is
port (CLK_IN : in Std_logic;
RESET : in Std_logic;
SPD :in Integer;
CLK_OUT :out Std_logic);
end;

wacko.gif

Сначала подумал, что какая то ошибка, но потом проверил вбив подобную строчку в ксилинксовский ISE и... он это дело захавал twak.gif
Никак не могу понять, как порт цифровой микросхемы, может иметь значение отличное от битового? Что это значит то? Как трактовать, что нога у плисины это integer? cranky.gif
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Jul 12 2011, 10:56
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Очевидно, это несколько бит. Скорее всего 32.
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Jul 12 2011, 11:04
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



хххмммм... только что посмотрел прект в "схемоте", который получился из данного кода... и Вы правы.. именно 32 бита... но почему вы решили что должно быть именно 32 а не 173,47 к примеру=)))?
Go to the top of the page
 
+Quote Post
SFx
сообщение Jul 12 2011, 19:51
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 758
Регистрация: 11-07-05
Из: Понаехал (Мск)
Пользователь №: 6 688



в стандарте vhdl написано что все integer должны быть 32 разряда.
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Jul 13 2011, 04:27
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(SFx @ Jul 12 2011, 23:51) *
в стандарте vhdl написано что все integer должны быть 32 разряда.


Это не совсем так. Стандарт гарантирует ширину integer не менее 32 разрядов. Можно больше, это на усмотрение производителей софта. Но я думаю, что производители этим не заморачиваются и делают гарантированный минимум.

Под рукой только IEEE Std 1076™-2002. Пункт 3.1.2.1 Predefined integer types
Цитата
The range of INTEGER is implementation dependent, but it is guaranteed to include the range –2147483647 to +2147483647. It is defined with an ascending range.


Если в коде явно указан диапазон, например
Код
signal cnt : integer range 0 to 7;

то разрядность будет минимальной для того, чтобы обеспечить заданный диапазон. В данном случае 3 бита.
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Jul 26 2011, 11:38
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



Спасибо. Теперь всё встало на свои места... однако, этот кодик я нашёл не просто так. Хочу реализовать на ПЛИС некоторую операцию, которая содержит операцию деления чисел, а операнды в ней могут быть дробными числами. Уже несколько недель голову ломаю, весь интернет облазил, но ничего дельного так и не нашёл. Может кто нить объяснит, как оперировать с дробными числами. Нарвался на одну статейку, в которой предлагается использовать ксилинксовский корген, который генерит некоторое ядро, которое в свою очередь чё то там делает... но это как то всё мутно... так ничё и не понял...
Go to the top of the page
 
+Quote Post
ivanoffer
сообщение Jul 26 2011, 12:09
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 120
Регистрация: 21-07-11
Пользователь №: 66 348



Чтобы что-то сделать, надо понимать что делаешь, а так можно и несколько месяцев и лет прогуглить, хотя может вы получаете удовольствие
от самого процесса поиска. Ну нашли вы тип integer, разобрались, теперь тип float искать будете? Именно для вас Xilinx и сделал IP. А "чё то там делает..." это уже больше к вам. Читайте описание на IP, думаю, что это сократит время на ваши "научные поиски истины".
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Jul 27 2011, 10:54
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



а если бы Xilinx это IP не сделал? Или по тем или иным причинам меня бы не удовлетворяла его работа (в одной статье кстати прочёл, что именно в одном из ксилинксовских ядер, работающих с плавающей запятой, существует некоторый косяк. Не проверял не знаю, но знаю, что помимо бесплатного ядра, Xilinx распространяет ещё и платное (как думаете, с каким типом данных оно работает?), отсюда вопрос: шо за дела?). И вообще, я ж не предлагаю лезть в саму микросхему и разбирать её по костачкам... но подход, мол всё уже до нас украдено, а что там да как так трава не расти, то же неправильный!!! angry.gif И ещё, извините конечно, без обид, просто уже не первый раз сталкиваюсь с этим... я задал конкретный вопрос... хочу услышать конкретный ответ... а если хочется мысли на кулаки понаворачивать... так это вам к философам... им деньги платят за то, что б они ничё не делали... у них профессия такая... laughing.gif
Go to the top of the page
 
+Quote Post
R.A.K.
сообщение Jul 27 2011, 12:37
Сообщение #9


Участник
*

Группа: Validating
Сообщений: 55
Регистрация: 6-04-11
Пользователь №: 64 180



Цитата(Грендайзер @ Jul 26 2011, 15:38) *
Хочу реализовать на ПЛИС некоторую операцию, которая содержит операцию деления чисел, а операнды в ней могут быть дробными числами.

Дробные числа представляются в формате:
- с фиксированной точкой (fixed-point);
- с плавающей точкой (float-point).
У вас что? Какая разрядность? и т.д. ...
Сформулировать точнее можете?

Цитата(Грендайзер @ Jul 26 2011, 15:38) *
Уже несколько недель голову ломаю, весь интернет облазил, но ничего дельного так и не нашёл. Может кто нить объяснит, как оперировать с дробными числами.

Fixed-point arithmetic
Float-point arithmetic
Книги по цифровой электронике.

Насчет integer. Т.е., например, std_logic_vector (105 downto 23) - у Вас вопросов не вызывает? Назначение в VHDL типа с плавающей точкой (REAL), физических типов (TIME) для Вас очевидно? Если да, то чего нервничаете так?
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Jul 28 2011, 06:20
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



С плавающей или с фиксированной запятой, значения не имеет... В случае оперирования десятичными числами, округления до 4-ого знака, будит вполне достаточно.
Цитата
Насчет integer. Т.е., например, std_logic_vector (105 downto 23) - у Вас вопросов не вызывает? Назначение в VHDL типа с плавающей точкой (REAL), физических типов (TIME) для Вас очевидно? Если да, то чего нервничаете так?

Не допонял, что Вы имеете в виду? Причём тут real или time? Их же синтезировать всёрано не выйдет...
Go to the top of the page
 
+Quote Post
R.A.K.
сообщение Jul 28 2011, 08:23
Сообщение #11


Участник
*

Группа: Validating
Сообщений: 55
Регистрация: 6-04-11
Пользователь №: 64 180



Цитата(Грендайзер @ Jul 28 2011, 10:20) *
С плавающей или с фиксированной запятой, значения не имеет...

Имеет. Надо выбрать.
Цитата(Грендайзер @ Jul 28 2011, 10:20) *
В случае оперирования десятичными числами, округления до 4-ого знака, будит вполне достаточно.

Что значит "оперирования десятичными числами"? Делитель для BCD-кодов? Выражайтесь точнее.

Цитата(Грендайзер @ Jul 28 2011, 10:20) *
Не допонял, что Вы имеете в виду? Причём тут real или time? Их же синтезировать всёрано не выйдет...

То, что VHDL не только для синтеза используют. На нем еще тест-бенчи пишут. И тот вышеуказанный Вами делитель с "буржуйского сайта" (ссылку привели бы что-ли...) возможно и не для синтеза был написан (хотя и синтезируется).
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Jul 28 2011, 08:51
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



Цитата
То, что VHDL не только для синтеза используют. На нем еще тест-бенчи пишут. И тот вышеуказанный Вами делитель с "буржуйского сайта" (ссылку привели бы что-ли...) возможно и не для синтеза был написан (хотя и синтезируется).

Да, спасибо, это я ещё тогда осознал, когда попытался в ISE эту штуку откомпелировать... естественно компелятор меня матом покрыл, а вот отмоделировалось всё чётко rolleyes.gif .
Цитата
Что значит "оперирования десятичными числами"? Делитель для BCD-кодов? Выражайтесь точнее.

Честно говоря я сейчас, вообще ничё не понял, что Вы такое сказали... ну да Бог с ним... меня уже долго мучает вот такой вопрос... как к примеру 5 поделить скажем на 2 и найти хотя бы неполное частное или остаток? Конечно, я могу воспользоваться функцией mod или скажем поделить напрямую, т. е. 5/2 = 2, но! что если мне надо, что бы операнды были переменными? Вот тут меня компелятор шлёт по известному адресу crying.gif Конечно, я могу вычитать из пяти двойку, и каждый раз проверять не стала ли разность меньше делителя (т. е. 2), и всё пучком... два такта и готово rolleyes.gif Однако... если бы у меня не 5 было, а скажем 57 или 535 или 5896743489 эт сколько мне тахтов то убивать на это дело? maniac.gif Немогли бы Вы на мысль натолкнуть так сказать... А потом уже возможно я с плавающими и фиксированными запятыми сам докумекаю...

Сообщение отредактировал Грендайзер - Jul 28 2011, 08:55
Go to the top of the page
 
+Quote Post
R.A.K.
сообщение Jul 28 2011, 09:24
Сообщение #13


Участник
*

Группа: Validating
Сообщений: 55
Регистрация: 6-04-11
Пользователь №: 64 180



Цитата(Грендайзер @ Jul 28 2011, 12:51) *
как к примеру 5 поделить скажем на 2 и найти хотя бы неполное частное или остаток?

Это частный случай, и он очень простой.
Деление на степень двойки (2, 4, 8, 16, 32 ...) - это двиг влево на число разрядов, равное степени двойки.
Пример 1. 510 (число пять в десятичной форме) пишем в двоичном виде (для примера в четырех разрядном) - 0101.
5 / 2 = 0101 >> 1 = 0010 = 210
5 / 4 = 0101 >> 2 = 0001 = 110
и т.д. (кое-какие детали есть при делении чисел со знаком).
Это целочисленное деление с отбрасыванием остатка.

Теперь вариант с фиксированной точкой. Например, будет 4 разряда для целой части и 2 - для дробной:
5 / 2 = 0101.00 >> 1 = 0010.10 = 2.510
5 / 4 = 0101.00 >> 2 = 0001.01 = 1.2510

Вам бы книжни по этой теме почитать, яснее будет.

Цитата(Грендайзер @ Jul 28 2011, 12:51) *
Конечно, я могу воспользоваться функцией mod или скажем поделить напрямую, т. е. 5/2 = 2

Даже не знаю... Как у Вас обстоит дело со сложением/вычитанием на ПЛИС? Последовательный сумматор могём? sm.gif
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Jul 28 2011, 09:40
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



мммм... последовательный сумматор... я честно говоря в этой терминологии не силён... но уверен, что в какой то книжке (помоиму в буржуйской) видел что то в этом духе... токо там фраза была, мне её гугл перевёл как "конвейерный сумматор", это не одно и то же?
Я накачал несколько книжек по этому делу, но чё то какие то они "отвлечённые", может посоветуете что нибудь?
И ещё последний вопросик, если можно rolleyes.gif ... А как быть, если скажем делитель это не двойка и даже не степень двойки, а скажем 3 или что то в этом духе?

Сообщение отредактировал Грендайзер - Jul 28 2011, 09:43
Go to the top of the page
 
+Quote Post
R.A.K.
сообщение Jul 28 2011, 11:36
Сообщение #15


Участник
*

Группа: Validating
Сообщений: 55
Регистрация: 6-04-11
Пользователь №: 64 180



Угрюмов "Цифровая схемотехника", например. И т.п.

1) Берем готовый делитель для целых - модуль с входами и выходами. Находим нужной разрядности. Надо с остатком - ищем с остатком. Надо со знаком... и т.д. CoreGen Вам уже советовали. А баги... Баги у всех есть. И у Вас будут. Были баги - и нету багов. Мелочи... Почитаете даташит на ксайлиновский делитель, сконфигурируете как хочется (что такое divident, quotient, divisor и др. - разберетесь).
2) Пользуемся структурным описанием. Подаем на входы операнды, снимаем результат... Голая цифровая схемотехника, без всяких синтаксических vhdl изъёбов.
3) Теперь имеем делитель, например, двух 16-разрядных операндов (целых) с 16-разрядным результатом. Как поделить им дробные?
Суть в использовании фиксированной точки, правильном представлении входных данных, правильной интерпретации выходных данных.


Пример для делителя двух 16-бит беззнаковых.

Можно делить целые числа.
2310 = 00000000_00010111
4710 = 00000000_00101111

На входы делителя подаем:
00000000_00010111
00000000_00101111
На выходе имеем
00000000_00000010, т.е. 210 (и остаток, если делитель его выдает)

47 / 23 = 2

Можно дробные...

Вариант 1:
2310 = 00000001_0111.0000 (12 бит - целая часть, 4 - дробная)
4710 = 00000010_1111.0000 (12 бит - целая часть, 4 - дробная)
На входы делителя подаем:
00000001_01110000 (делитель)
00000010_11110000 (делимое)
На выходе имеем (частное):
00000000_00000010
Поскольку у делимого и у делителя по 4 разряда на дробную часть,
то 4 - 4 = 0. Т.е. у результата точка справа от нулевого разряда.
Значит результат интерпретируется так:
00000000_00000010. = 210

Вариант 2:
2310 = 00000000_00010111 (16 бит - целая часть)
4710 = 00000010_1111.0000 (12 бит - целая часть, 4 - дробная)
На входы делителя подаем:
00000000_00010111 (делитель)
00000010_11110000 (делимое)
На выходе имеем:
00000000_00100000 (плохой пример sm.gif, ну да ладно.)
У делимого на дробную часть отведено 4 разряда, у делителя - 0.
Значит 4 - 0 = 4 - столько разрядов будет отведено у частного (результат) на дробную часть.
Значит результат интерпретируется так:
00000000_0010.0000 = 210

Еще раз вариант 2 ( с другими операндами - 16 и 5 sm.gif ):
0510 = 00000000_00000101 (16 бит - целая часть)
1610 = 00000001_0000.0000 (12 бит - целая часть, 4 - дробная)
На входы делителя подаем:
00000000_00000101 (делитель)
00000001_00000000 (делимое)
На выходе имеем:
00000000_00110011
У делимого на дробную часть отведено 4 разряда, у делителя - 0.
Значит 4 - 0 = 4 - столько разрядов будет отведено у частного (результат) на дробную часть.
Значит результат интерпретируется так:
00000000_0011.0011 = 3.187510

Ясна идея?
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Aug 3 2011, 05:50
Сообщение #16


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



Спасибо, ваши ответы наверно самое конкретное и понятное, что я нашёл в интернете=)
Go to the top of the page
 
+Quote Post
whiteTigr
сообщение Aug 4 2011, 12:35
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 25-07-11
Пользователь №: 66 407



Предложу пример модуля работы с плавающей точкой.

Код
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity matem is
     Port ( clk40    : in  STD_LOGIC;
            clk160    : in  STD_LOGIC;
              iowr : in  STD_LOGIC;
           st : in  STD_LOGIC;
           addr : in  STD_LOGIC_VECTOR (31 downto 0);
           data : in  STD_LOGIC_VECTOR (31 downto 0);
           dq : out  STD_LOGIC_VECTOR (31 downto 0)
              );
end matem;

architecture Behavioral of matem is

signal ma, mb, madd, mmult, mdiv, f_to_s, s_to_f, msqrt : std_logic_VECTOR(31 downto 0);
signal mampl, matan: std_logic_vector(31 downto 0);
signal mcmp_int: std_logic_VECTOR(0 downto 0);
signal mcmp: std_logic_vector(31 downto 0);
signal op: std_logic_vector(5 downto 0);

component f_add
    port (
    a: IN std_logic_VECTOR(31 downto 0);
    b: IN std_logic_VECTOR(31 downto 0);
     operation: in std_logic_vector(5 downto 0);
    clk: IN std_logic;
    result: OUT std_logic_VECTOR(31 downto 0));
end component;
component f_cmp
    port (
    a: IN std_logic_VECTOR(31 downto 0);
    b: IN std_logic_VECTOR(31 downto 0);
     operation: in std_logic_vector(5 downto 0);
    clk: IN std_logic;
    result: OUT std_logic_VECTOR(0 downto 0));
end component;
component f_mult
    port (
    a: IN std_logic_VECTOR(31 downto 0);
    b: IN std_logic_VECTOR(31 downto 0);
    clk: IN std_logic;
    result: OUT std_logic_VECTOR(31 downto 0));
end component;
component s_f
    port (
    a: IN std_logic_VECTOR(31 downto 0);
    clk: IN std_logic;
    result: OUT std_logic_VECTOR(31 downto 0));
end component;
component f_s
    port (
    a: IN std_logic_VECTOR(31 downto 0);
    clk: IN std_logic;
    result: OUT std_logic_VECTOR(31 downto 0));
end component;
component f_div
    port (
    a: IN std_logic_VECTOR(31 downto 0);
    b: IN std_logic_VECTOR(31 downto 0);
    clk: IN std_logic;
    result: OUT std_logic_VECTOR(31 downto 0));
end component;


begin
fadd : f_add
        port map (
            a => ma,
            b => mb,
                operation => op,
            clk => clk160,
            result => madd);
fcmp : f_cmp
        port map (
            a => ma,
            b => mb,
                operation => op,
            clk => clk160,
            result => mcmp_int);
fmult : f_mult
        port map (
            a => ma,
            b => mb,
            clk => clk160,
            result => mmult);
sf : s_f
        port map (
            a => ma,
            clk => clk160,
            result => s_to_f);
fsa : f_s
        port map (
            a => ma,
            clk => clk160,
            result => f_to_s);
fdiv : f_div
        port map (
            a => ma,
            b => mb,
            clk => clk160,
            result => mdiv);

process(clk40)
begin
    if rising_edge(clk40) then
        if iowr = '1' and conv_integer(addr) = 1505 then ma <= data; end if;
        if iowr = '1' and conv_integer(addr) = 1506 then mb <= data; end if;
        if iowr = '1' and conv_integer(addr) = 1507 then op <= data(5 downto 0); end if;
    end if;
end process;

mcmp <= x"FFFFFFFF" when mcmp_int = "1" else x"00000000";

with conv_integer(addr) select
    dq <= madd   when 1500,
          mmult  when 1501,
          mdiv   when 1502,
          f_to_s when 1503,
          s_to_f when 1504,
            mcmp   when 1505,
          (others => 'Z') when others;

end Behavioral;


Использовался модуль как математический сопроцессор (хотя управляться он может как угодно) рядом с самописным процессором.
Плавающая точка реализована набором IP-ядер, формат выбран Single (одинарная точность).
f_to_s - преобразование из плавающего в целое. s_to_f - наоборот.

Управляется модуль системной шиной, которая реализована в виде 4 линий. Адреса (addr), Данных (data), ВыходныхДанных (dq), СигналаЗаписи (iowr).
Для записи операндов в модуль выставляем нужный адресс (if iowr = '1' and conv_integer(addr) = 1505 then ma <= data; end if;), например 1505 для операнда A и поднимаем в 1 сигнал iowr.
Для чтения просто выставляем адресс и читаем линию dq.

Посмотрите даташиты на эти модули, чтобы лучше понять, как они работают (например, разобраться что делает линия operation тут). При генерации любого IP-ядра, где то рядом есть кнопочка "datasheet" или что-то подобное.
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Aug 4 2011, 13:15
Сообщение #18


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



Да, спасибо, обязательно попробую получше разобраться с вашим кодом. Кстати, о даташитах... я тоже сгенерил одно ядро при помощи коргена, и тут у меня возникла проблема... Я мягко говоря не очень понимаю, как работают эти ядра (в смысле, как интерпретировать эти коды, состоящие в основном из компонентов, описание которых не понять где)... иии вопрос в следующим... как это всё хозяйство смоделировать то? blink.gif Я подцеплял этот прожект моделсимом... но... он пишет, что не может найти библиотеку, которая в данном проекте используется (XilinxCoreLib), и как быть, где её взять... как понять, правильно ли мой проект работает? sad.gif
Go to the top of the page
 
+Quote Post
whiteTigr
сообщение Aug 5 2011, 06:27
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 25-07-11
Пользователь №: 66 407



Цитата(Грендайзер @ Aug 4 2011, 17:15) *
Кстати, о даташитах... я тоже сгенерил одно ядро при помощи коргена, и тут у меня возникла проблема... Я мягко говоря не очень понимаю, как работают эти ядра (в смысле, как интерпретировать эти коды, состоящие в основном из компонентов, описание которых не понять где)

О даташитах вроде писалось. В диалоге создание IP-ядра должна быть кнопочка. Или, как вариант, посмотреть тут http://www.xilinx.com/support/.
На русском такую информацию вряд ли удастся найти, и это, скорее всего будет перевод этих же даташитов, только постоянно устаревающий и не учитывающий последние изменения. Хотя таблицы, временные диаграммы и т.п. знания английского, по сути, и не требуют.

Цитата(Грендайзер @ Aug 4 2011, 17:15) *
... иии вопрос в следующим... как это всё хозяйство смоделировать то? blink.gif Я подцеплял этот прожект моделсимом... но... он пишет, что не может найти библиотеку, которая в данном проекте используется (XilinxCoreLib), и как быть, где её взять... как понять, правильно ли мой проект работает?

Вот про моделирование сразу не отвечу. На рабочем месте ISE не стоит, а на второе рабочее место я приду, скорее всего, не раньше вторника.
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Aug 10 2011, 08:26
Сообщение #20


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



Был бы очень признателен за ответ rolleyes.gif
Go to the top of the page
 
+Quote Post
R.A.K.
сообщение Aug 10 2011, 10:23
Сообщение #21


Участник
*

Группа: Validating
Сообщений: 55
Регистрация: 6-04-11
Пользователь №: 64 180



Цитата(Грендайзер @ Aug 10 2011, 12:26) *
Был бы очень признателен за ответ

Грендайзер, а Вы сами то поискать ответ пробовали? Погуглить, например? По ключевому слову XilinxCoreLib?
http://www.kxcad.net/electronic_Xilinx_gui...compile_lib.htm
Или с английским не лады?
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Aug 11 2011, 09:15
Сообщение #22


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



Пробовал... но чё то всёравно ничего не понятно... и по вашей ссылке... чё т конкретики маловато... я этим несколько месяцев занимаюсь всего, и пока вот так на лету не могу всё в кучку собрать...
Go to the top of the page
 
+Quote Post
R.A.K.
сообщение Aug 11 2011, 10:15
Сообщение #23


Участник
*

Группа: Validating
Сообщений: 55
Регистрация: 6-04-11
Пользователь №: 64 180



Тады вот Вам чиста канкрэтика (чиста канкретна по "моей" сцылке):
Цитата
The XilinxCoreLib library is used during functional simulation for designs that contain IP cores created by the CORE Generator™. Before starting the functional simulation of your design, you must compile the XilinxCoreLib library for your target simulator.

Ну это понятно... Или нет?
Цитата
Compiling the XilinxCoreLib Library Within ISE

The ISE Project Navigator has a Compile HDL Simulation Libraries process that can be used to compile the XilinxCoreLib Library. For the procedure to compile the library, see Compiling HDL Simulation Libraries in the ISE Help.

Кореген нагенерил Вам кучу файлов, среди них есть *.xise.
Делаем по нему дабл-клик.
Открывается ISE Project Navigator.
В дереве проекта щелкаем на самой верхней строчке. Хопа!!! В нижнем окне доступных процессов появилась строчка Compile HDL Simulation Libraries.
Щелкаем на этой строчке правой кнопкой мыши. В открывшемся подменю (мляяя!!! я превращаюсь в Зотова sad.gif ... знаете такого автора? sm.gif ) выбираем строчку Process Properties.
Дальше откроется окно с настройками. Самое главное там - указать target simulator.

Самое страшное - я сам лично этого никогда не делал (т.к. употребляю актив-хдл), поэтому ничего не гарантирую.

Цитата(Грендайзер @ Aug 11 2011, 13:15) *
Пробовал... но чё то всёравно ничего не понятно... и по вашей ссылке... чё т конкретики маловато... я этим несколько месяцев занимаюсь всего, и пока вот так на лету не могу всё в кучку собрать...

А Вы в каком классе то учитесь, если не секрет? sm.gif
Go to the top of the page
 
+Quote Post
whiteTigr
сообщение Aug 11 2011, 12:36
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 25-07-11
Пользователь №: 66 407



Цитата(R.A.K. @ Aug 11 2011, 14:15) *
(мляяя!!! я превращаюсь в Зотова sad.gif ... знаете такого автора? sm.gif )

Переписывание справок и стиль "что вижу - то пою" sm.gif

Цитата(Грендайзер @ Aug 11 2011, 13:15) *
Пробовал... но чё то всёравно ничего не понятно... и по вашей ссылке... чё т конкретики маловато... я этим несколько месяцев занимаюсь всего, и пока вот так на лету не могу всё в кучку собрать...

Вообще я не очень хорошо отношусь к позиции "непонятно всё!". Это может означать только то, что человек вообще ничего не пытался понять.
Если были хоть какие то попытки, то все начинает делится на понятные фрагменты и непонятные (которые впоследствии можно объяснить, опираясь на то, что уже понятно).

Судя по предыдущим сообщениям, Вы недопонимаете двоичную арифметику и двоичное представление чисел. Эта информация может быть найдена в доброй половине книг по любому языку программирования, или гуглением на эту тему.
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Aug 12 2011, 12:25
Сообщение #25


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



Цитата
А Вы в каком классе то учитесь, если не секрет? sm.gif

Я уже отучился, везде... почти... только вот, там где я учился про плис скозали примерно следующее "ПЛИС - это хитрое устройство, принцип работы которого понять очень сложно", а вот так получилось, что пришлось с ними засесть поближе, только спросить не у кого, а в одиночку всё осмыслить быстро и правильно - эт не у всех выходит sad.gif
За разъяснения, спасибо, попробую поколдовать, может что и вырулим rolleyes.gif
Go to the top of the page
 
+Quote Post
R.A.K.
сообщение Aug 12 2011, 21:20
Сообщение #26


Участник
*

Группа: Validating
Сообщений: 55
Регистрация: 6-04-11
Пользователь №: 64 180



Цитата(Грендайзер @ Aug 12 2011, 16:25) *
Я уже отучился, везде... почти... только вот, там где я учился про плис скозали примерно следующее "ПЛИС - это хитрое устройство, принцип работы которого понять очень сложно"

Того, кто это сказал, за яйцы бы подвесить конечно не помешало бы. Но это ничего.
Вы главное с английским по-дружнее, да документацию читать не робейте. Ксайлиновские апноуты и white papers пробуйте читать (заодно по английскому словарный запас расширите sm.gif ).
Еще посоветую вот это:
1) Клайв Максфилд "Проектирование на ПЛИС. Курс молодого бойца". Эдакая обзорная книжка по теме, написана очень легко (соответственно и читается также).
2) Потехин, Тарасов "Разработка систем цифровой обработки сигналов на базе ПЛИС". Местами там, правда, жестковато (перестарались мужики sm.gif ). Но хотя бы половину первой главы стоит (про двоичную арифметику).
3) Если "Цифровую схемотехнику" Угрюмова еще не читали, то тоже порекомендую. Всю не стоит, можно первые несколько глав (булева логика, автоматы и т.д.), и главы про ПЛИС.
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Aug 15 2011, 06:54
Сообщение #27


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



Спасибо. А по поводу английского так это Вы с рекомендацией позновато sm.gif Уже давно читаю в основном исключительно аглицкую литературу (и действительно, английский сильно подтянулся sm.gif ). Особенно помогла (на первых порах) книга FPGA Prototyping by VHDL Examples: Xilinx Spartan-3 Version
Pong P. Chu, и ещё скачал книгу Synthesis of Arithmetic Circuits: FPGA, ASIC and Embedded Systems
Jean-Pierre Deschamps (не всё в ней мне понятно, в смысле самого материала, но кое что подчерпнул), эт я привёл если вдруг кому будит интересно... Что же касается нашей литературы, то после прочтения реда буржуинских книг, в груди появилось непонятное щемящее чувство, того, что в наши авторы не совсем понимают, порой, что они пишут... и как бы это помягче то... стиль написания книг нашими авторами, очень напоминает стиль иностранцев... более того, в некоторых наших книжках нашёл картинки и отрывки текста почти полностью содранные у иностранцев sad.gif
Go to the top of the page
 
+Quote Post
des333
сообщение Aug 27 2011, 20:26
Сообщение #28


Профессионал
*****

Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079



Грендайзер:

Смотрите реализации на Оpencores, например эту.


--------------------
Go to the top of the page
 
+Quote Post
Грендайзер
сообщение Sep 2 2011, 11:49
Сообщение #29


Местный
***

Группа: Участник
Сообщений: 368
Регистрация: 18-04-11
Из: Город-герой Москва
Пользователь №: 64 451



спасибо
Go to the top of the page
 
+Quote Post

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

 


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


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