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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Вопросы начинающего: VHDL + Precision + Xilinx, Precision не хочет цеплять примитивы Xilinx
a123-flex
сообщение Oct 22 2007, 15:20
Сообщение #1


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

Группа: Свой
Сообщений: 1 687
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 884



Возникла проблема: решил попробовать систем верилог, взял последний Precision 2006a3, уже есть ISE 8.2.
Подсунул туда свой старый проект на VHDL, а пресижн на кусочек кода:

data_pos: for i in 0 to 7 generate
data_lutP : RAM16X1D
port map(
d => DATA_IN_FROM_TIGER(i),
we => '1',
wclk => CLK_IN_FROM_TIGER,
a0 => EXT_CNTR_DATA_POS_p(0),
a1 => EXT_CNTR_DATA_POS_p(1),
a2 => EXT_CNTR_DATA_POS_p(2),
a3 => EXT_CNTR_DATA_POS_p(3),
dpra0 => INT_CNTR_DATA_p(0),
dpra1 => INT_CNTR_DATA_p(1),
dpra2 => INT_CNTR_DATA_p(2),
dpra3 => INT_CNTR_DATA_p(3),
spo => open,
dpo => LUT_DATA_OUT_POS_p(i)
);
end generate data_pos;

говорит:

# Error: [42512]: "C:/1/PrecisionTest/../../My/My_work/Almaz/HDL/Viod/Multiplexer_FPGA/rec_anal_tigr.vhd", line 70: Use of undeclared identifier 'RAM16X1D'
# Error: [40000]: HDL analysis failed.


Не могу понять в чем дело. Кристалл на котором все должно работать указан - Виртекс 2, его либа в папке пресижена есть, в либе есть елемент RAM16X1D.
Может быть я неправильно указываю тип либы с ксилинским компонентом ?
Для хилинкса либа была

library unisim ;
use unisim.all ;

Знающие подскажите.


--------------------
Если хочешь узнать, что ждет тебя на дороге впереди, спроси у тех, кто возвращается по ней.
Go to the top of the page
 
+Quote Post
CaPpuCcino
сообщение Oct 22 2007, 19:09
Сообщение #2


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

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



(на всякий случай: последний уже Пресижн2007)


--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
Go to the top of the page
 
+Quote Post
a123-flex
сообщение Oct 23 2007, 08:12
Сообщение #3


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

Группа: Свой
Сообщений: 1 687
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 884



07.gif спасибо. попробую.


--------------------
Если хочешь узнать, что ждет тебя на дороге впереди, спроси у тех, кто возвращается по ней.
Go to the top of the page
 
+Quote Post
a123-flex
сообщение Oct 24 2007, 06:46
Сообщение #4


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

Группа: Свой
Сообщений: 1 687
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 884



не, ни хрена не работает и в 2007 sad.gif. та же самая ошибка.
Блин неужели никто не знает как вкомпилить в проект либу unisim


--------------------
Если хочешь узнать, что ждет тебя на дороге впереди, спроси у тех, кто возвращается по ней.
Go to the top of the page
 
+Quote Post
a123-flex
сообщение Oct 24 2007, 07:23
Сообщение #5


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

Группа: Свой
Сообщений: 1 687
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 884



на объявление либы

library unisim;
use unisim.vcomponents.all ;

Precision говорит варнинг,

а когда пытаюсь поюзать RAM16X1D возникает ошибка: грит не знаю такого.

help.gif


--------------------
Если хочешь узнать, что ждет тебя на дороге впереди, спроси у тех, кто возвращается по ней.
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Oct 24 2007, 07:32
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Цитата(a123-flex @ Oct 24 2007, 09:46) *
не, ни хрена не работает и в 2007 sad.gif. та же самая ошибка.
Блин неужели никто не знает как вкомпилить в проект либу unisim

Да не надо её вкопиливать. Объявите компоненту памяти в том файле, где она вставляется и назначьте ему атрибут black box
Go to the top of the page
 
+Quote Post
AJIEKCEu
сообщение Oct 24 2007, 07:51
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 314
Регистрация: 7-12-05
Пользователь №: 11 917



Быть может просто не надо ничего подключать?
Пусть у вас после синтеза компоненты из библиотеки будут как Черные Ящики стоять.... NGDBuild сам их вставит.

Хотя странно... Он бы компилился... правда вроде с предупреждением.

Текст ошибки в студию! И быть может строки из файла, где она вылезает.
Go to the top of the page
 
+Quote Post
a123-flex
сообщение Oct 24 2007, 07:54
Сообщение #8


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

Группа: Свой
Сообщений: 1 687
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 884



Ок. вот текст с головы файла до места ошибки..


Library IEEE;
use IEEE.std_logic_1164.all;
use MY_PACKAGE_MULT.all;
library unisim;
use unisim.vcomponents.all ;

entity rec_anal_tigr is
generic(
LINK_BUS_WIDTH : integer := 8
);
port(
-- global_in
RESET : in std_logic;
--main clock (state mashine base)
CLK_IN_LOW_HLF : in std_logic;
--tiger transiver part
CLK_OUT_TO_TIGER : out std_logic;
CLK_IN_FROM_TIGER : in std_logic;
DATA_IN_FROM_TIGER : in std_logic_vector(LINK_BUS_WIDTH-1 downto 0);-- data by tiger
-- fifo control
FIFO_PROG_FULL : in std_logic;
FIFO_WRITE_EN : out std_logic;
DATA_WR_TO_FIFO : out std_logic_vector(15 downto 0);
ERR_SYNCH_CNTR : out std_logic_vector(ERR_CNTR_SIZE-1 downto 0)
);
end entity;

--}} End of automatically maintained section
library IEEE;
use IEEE.std_logic_unsigned.all;

architecture rec_anal_tigr_arh of rec_anal_tigr is

type SregRecAnal_type is (PRESET, IDLE, TOKEN, RECEIVE, RECEIVE_END, FULL);

signal SregRecAnal_p : SregRecAnal_type := PRESET;

signal WAS_FULL_ST_p,FIFO_WAS_FULL_p : std_logic := '0';
signal FIFO_WRITE_EN_p,CLK_OUT_TO_TIGER_p : std_logic := '0';
signal LUT_DATA_OUT_POS_p,LUT_DATA_OUT_NEG_p : std_logic_vector(7 downto 0);
signal ACK_COUNTER_p : std_logic_vector(2 downto 0);
signal LAST_TAKT_EXT_CLK_CNTR1_p,LAST_TAKT_EXT_CLK_CNTR2_p : std_logic_vector(1 downto 0) := (others => '0');
signal INT_CNTR_DATA_p,EXT_CNTR_DATA_POS_p,EXT_CNTR_DATA_NEG_p : std_logic_vector(3 downto 0) := (others => '0');
signal ONE_CLK_IN_CNTR_p,ZERO_CLK_IN_CNTR_p,LAST_CNTR_DATA_NEG_p : std_logic_vector(3 downto 0) := (others => '0');
signal BIG_ACK_CNTR_p : std_logic_vector(11 downto 0);
signal ERR_SYNCH_CNTR_p : std_logic_vector(ERR_CNTR_SIZE-1 downto 0);

begin

DATA_WR_TO_FIFO(15 downto 8) <= LUT_DATA_OUT_NEG_p(7 downto 0);
DATA_WR_TO_FIFO( 7 downto 0) <= LUT_DATA_OUT_POS_p(7 downto 0);

data_pos: for i in 0 to 7 generate
data_lutP : RAM16X1D
port map(
d => DATA_IN_FROM_TIGER(i),
we => '1',
wclk => CLK_IN_FROM_TIGER,
a0 => EXT_CNTR_DATA_POS_p(0),
a1 => EXT_CNTR_DATA_POS_p(1),
a2 => EXT_CNTR_DATA_POS_p(2),
a3 => EXT_CNTR_DATA_POS_p(3),
dpra0 => INT_CNTR_DATA_p(0),
dpra1 => INT_CNTR_DATA_p(1),
dpra2 => INT_CNTR_DATA_p(2),
dpra3 => INT_CNTR_DATA_p(3),
spo => open,
dpo => LUT_DATA_OUT_POS_p(i)
);
end generate data_pos;

ошибка:
# Error: [42512]: "C:/1/PrecisionTest/../../My/My_work/Almaz/HDL/Viod/Multiplexer_FPGA/rec_anal_tigr.vhd", line 70: Use of undeclared identifier 'RAM16X1D'
# Error: [40000]: HDL analysis failed.


--------------------
Если хочешь узнать, что ждет тебя на дороге впереди, спроси у тех, кто возвращается по ней.
Go to the top of the page
 
+Quote Post
AJIEKCEu
сообщение Oct 24 2007, 08:10
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 314
Регистрация: 7-12-05
Пользователь №: 11 917



Добавьте в секции объявления сигналов объявление компонента, который будете использовать:

Код
component RAM16X1D
    generic
    (
        INIT : bit_vector(15 downto 0) := X"0000"
    );
    port
    (
        DPO : out std_ulogic;
        SPO : out std_ulogic;
        A0 : in std_ulogic;
        A1 : in std_ulogic;
        A2 : in std_ulogic;
        A3 : in std_ulogic;
        D : in std_ulogic;
        DPRA0 : in std_ulogic;
        DPRA1 : in std_ulogic;
        DPRA2 : in std_ulogic;
        DPRA3 : in std_ulogic;
        WCLK : in std_ulogic;
        WE : in std_ulogic
    );
end component;


--Добавлено
А вообще общий совет - учитесь пользоваться конструкциями VHDL его именно для этого и придумали, чтобы покомпонентно не писать.
То, что вы вставили компонентом проще и быстрее написать на чистом VHDL без библиотечных элементов. Если заинтересуетесь - обращайтесь. А лучше книжку почитайте.
Go to the top of the page
 
+Quote Post
a123-flex
сообщение Oct 24 2007, 09:00
Сообщение #10


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

Группа: Свой
Сообщений: 1 687
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 884



lol.gif

Организация схемы не моя придумка... я ее позаимствовал у ксилинкса.
Есть такой xapp635. Принимает DDR сигнал на частоте до 300 МГц. так там мало того что все в примитивах прописано, так еще и гвоздями к кристаллу прибито - констрейнами размещения. a14.gif

За советы всем спасибо smile.gif

Всем огромное спасибо.

Все работает!!! a14.gif
Просто симплифай меня расслабил - так он хорошо кушает автоматически все ксайлинское, что про black box и прочая я уж и забыл давно. wacko.gif


--------------------
Если хочешь узнать, что ждет тебя на дороге впереди, спроси у тех, кто возвращается по ней.
Go to the top of the page
 
+Quote Post
a123-flex
сообщение Oct 25 2007, 12:05
Сообщение #11


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

Группа: Свой
Сообщений: 1 687
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 884



Да sad.gif всем спасибо конечно.... но вот немного поигравшись с пресиженом появился новый вопрос:
когда синтезирую проект Sinplify -ем, получаю тактовую 125 МГц, и притом явно есть еще запас, интерфейсная часть проекта разводится и на 250 МГц, запускаю синтез пресиженом - 78 Мегагерц с ретаймингом. Кто-нибудь может мне сказать возможно ли добиться такого эффекта простым бездарным программированием, или просто нужно пользоваться Синплифаем и забить на все остальное ?


--------------------
Если хочешь узнать, что ждет тебя на дороге впереди, спроси у тех, кто возвращается по ней.
Go to the top of the page
 
+Quote Post
CaPpuCcino
сообщение Oct 25 2007, 12:17
Сообщение #12


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

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



Цитата(a123-flex @ Oct 25 2007, 16:05) *
Да sad.gif всем спасибо конечно.... но вот немного поигравшись с пресиженом появился новый вопрос:
когда синтезирую проект Sinplify -ем, получаю тактовую 125 МГц, и притом явно есть еще запас, интерфесная часть проекта разводится и на 250 МГц, запускаю синтез пресиженом - 68 Мегагерц с ретаймингом. Кто-нибудь может мне сказать возможно ли добиться такого эффекта простым бездарным программированием, или просто нужно пользоваться Синплифаем и забить на все остальное ?

у них скорее всего разные системы оценок (оптимистичные\писсимистичные прогдозы, учёт средней задержки на соединение и т.д.) вы тактовую с симплифаем получаете уже после P&R или это только расчёты симплифая?


--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
Go to the top of the page
 
+Quote Post
a123-flex
сообщение Oct 25 2007, 12:25
Сообщение #13


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

Группа: Свой
Сообщений: 1 687
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 884



в обоих случаях частоты указаны после разводки проекта ISE-ом


--------------------
Если хочешь узнать, что ждет тебя на дороге впереди, спроси у тех, кто возвращается по ней.
Go to the top of the page
 
+Quote Post
CaPpuCcino
сообщение Oct 25 2007, 12:36
Сообщение #14


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

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



Цитата(a123-flex @ Oct 25 2007, 16:25) *
в обоих случаях частоты указаны после разводки проекта ISE-ом

как-то чрезвычайно странно, чтоб аж в 2 раза задержка подскочила. и что ж это один и тот же проект без изменений?


--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
Go to the top of the page
 
+Quote Post
a123-flex
сообщение Oct 25 2007, 12:41
Сообщение #15


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

Группа: Свой
Сообщений: 1 687
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 884



абсолютно без изменений. правда писаный behavioral. я не очень сильно напрягался чтобы его оптимизировать под плис, в ядре по крайней мере.


--------------------
Если хочешь узнать, что ждет тебя на дороге впереди, спроси у тех, кто возвращается по ней.
Go to the top of the page
 
+Quote Post

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

 


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


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