Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Создание своего сomponent`а в библиотеке на VHDL
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
Kuzmi4
Здравствуйте.

Имею свой компонент.
Хочу его засунуть в библиотеку. Что можна было объявить их типа как вот так
Цитата
--Altera megafumctions
LIBRARY altera_mf;
USE altera_mf.all;
--
LIBRARY lpm;
USE lpm.all;

Чтоб потом в архитектуре назначить генерик и порты и юзать свой компонент наподобие
Код
-- counter maping
lpm_counter_component : lpm_counter
    GENERIC MAP (
        lpm_direction => "UP",
        lpm_port_updown => "PORT_UNUSED",
        lpm_type => "LPM_COUNTER",
        lpm_width => 10
    )
    PORT MAP (
        aclr => in_rst_signal,--
        clock => clock,--
        q => counted_value--
    );

Понимаю что плохо искал, но по либам нашёл информацию, А тягать в основном исходнике не особо охота. Хочется сделал, засунул в либу и юзаеш..
Подскажите как это сделать 1111493779.gif
Спасибо
Kuzmi4
Делаю как написано сдесь http://electronix.ru/forum/index.php?act=f...t&pid=99478 :
создаю файл mp.vhd, его содержание
Код
package mp is
constant word_size:positive:=16;
end package mp;

Далее добавляю этот фал в прожект.
Нажмите для просмотра прикрепленного файла
Потом в основном файле прожекта пишу
Код
library mp;
use mp.all;

А после в архитектруре делаю такое объявление
Код
signal tstssignal        : std_logic_vector (word_size-1 downto 0);

В результате кричит
Цитата
Error (10482): VHDL error at my_fifo1.vhd(120): object "word_size" is used but not declared

Тобто получается что он не видит моей декларации....
Просветите пожалуста - как же всё таки правильно создавать и подключать библиотеки 1111493779.gif
o-henry
Цитата(Kuzmi4 @ Jun 2 2008, 17:09) *
Потом в основном файле прожекта пишу
Код
library mp;
use mp.all;


Тобто получается что он не видит моей декларации....
Просветите пожалуста - как же всё таки правильно создавать и подключать библиотеки 1111493779.gif


А если вместо этого написать так:
Код
library work;
use work.mp.all;

вроде должно работать (Вы же пакет объявили а не библиотеку)
Kuzmi4
2 o-henry - заработало, ошибок не выдавало. Спасибо a14.gif
А как быть с библиотекой - как её можно создать ?
o-henry
Цитата(Kuzmi4 @ Jun 3 2008, 11:37) *
2 o-henry - заработало, ошибок не выдавало. Спасибо a14.gif
А как быть с библиотекой - как её можно создать ?
пожалуйста smile.gif

Цитата(Kuzmi4 @ Jun 3 2008, 11:37) *
А как быть с библиотекой - как её можно создать ?
Навскидку не скажу, не было необходимости такой. Тут уже книжку читать надо, но лень.

P.S. IMHO тему все-таки надо было создать в Языки проектирования на ПЛИС - FPGA programming languages
Kuzmi4
Да, на счёт либы думаю там действительно сделать, а то тут посещаемость не сильно большая..
Может там больше будет smile.gif
Kuzmi4
Значит дошли руки - начал я ваять пакет с свои компонентом :
Код
package my_fifo is
--------------------------------------------------------------------------------------------------------------------------package my_fifo is
constant word_size:positive:=16;
--
component my_fifo_component

    generic(
        Volume                :natural:= 4;
        N                :natural:= 4

    );
    port(
        ---*** Input to logic ***---
        -- In Data
        indata                 :    in    std_logic_vector(N-1 downto 0);
        -- In Clk
        input_clock            :    in    std_logic;
        -- In signal 4 catch
        signal2foto            :    in    std_logic;
        --
        ---*** Input from control reg***---
        -- Reset
        rst                :    in    std_logic;
        -- Interrupt Enable
        int_enable            :    in    std_logic;
        -- Signal 2 Start
        start                :    in    std_logic;
        --
        ---*** Output to status register ***---
        -- Empty Flag
        empty                :    out    std_logic;
        -- Half Full flag
        hfull                :    out    std_logic;
        -- Full Flag
        full                :    out    std_logic;
        -- Busy Flag
        busy                :    out    std_logic;
        -- Done Flag
        done                :    out    std_logic;
        --
        ---*** Data output ***---
        -- Out Data
        outdata                :    out     std_logic_vector(N-1 downto 0);
        -- Clock from system 2 output
        out_clk                :    out     std_logic;
        --ISR
        isr                    :    out std_logic;
        --
        ---*** Additional controls ***---
        -- Mux for Read signal
        mux_in                :    in    std_logic;
        -- Rd control
        rd_control            :    in    std_logic

    );
end component;
--******************************
--      FIFO declaration
    COMPONENT scfifo
    GENERIC (
        add_ram_output_register        : STRING;
        almost_full_value        : NATURAL;
        intended_device_family        : STRING;
        lpm_numwords            : NATURAL;
        lpm_showahead            : STRING;
        lpm_type            : STRING;
        lpm_width            : NATURAL;
        lpm_widthu            : NATURAL;
        overflow_checking        : STRING;
        underflow_checking        : STRING;
        use_eab                : STRING
    );
    PORT (
        almost_full            : OUT STD_LOGIC;
        rdreq                : IN STD_LOGIC;
        sclr                : IN STD_LOGIC;
        empty                : OUT STD_LOGIC;
        clock                : IN STD_LOGIC;
        q                : OUT STD_LOGIC_VECTOR (N-1 DOWNTO 0);
        wrreq                : IN STD_LOGIC;
        data                : IN STD_LOGIC_VECTOR (N-1 DOWNTO 0);
        full                : OUT STD_LOGIC
    );
    END COMPONENT;
--******************************
--
end package my_fifo;
---------------------------------------------------------------------------------------------------------------------------
package body my_fifo is
--

????

--
end package body my_fifo;
----------------------------------------------------------------------------------------------------------------------------------

И вот тут стал вопрос - как засунуть архитектуру компонента my_fifo_component в тело пакета ?
help.gif
Брать и писать
Код
architecture arch of my_fifo_component is
....

smile3046.gif

А то в пошустрил по каталогам квартуса - везде только ф-ции описаны или просто декларации компонентов без тела...
Kuzmi4
Ну если никто не в курсе - то подскажите хотя бы что-то типа саппорта по VHDL как у альтеры например - https://mysupport.altera.com
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.