0 / 0 / 0
Регистрация: 09.11.2022
Сообщений: 3
1

Примеры простых задач по программированию ПЛИС Xilinx

09.11.2022, 15:00. Показов 373. Ответов 4
Метки vhdl (Все метки)

Поскидывайте, примеры простых задач по этой теме пожалуйста
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.11.2022, 15:00
Ответы с готовыми решениями:

У кого есть примеры проетов для ПЛИС фирмы Xilinx?
Здравствуйте! У кого есть примеры проетов для ПЛИС фирмы Xilinx? для любой серии и в любой САПР. ...

Рекурсия, нужны примеры простых задач
Тема Рекурсия..почему везде пишут примеры с факториалом?? этот пример понятен..а вот как...

Конференция по ПЛИС Xilinx
Собственно вся информация еще и тут - http://ptys.ru/. Ссылка для регистрации -...

Xilinx WEBPACK (для работы с ПЛИС)
ISE Desykn suite и ISE WEBPACK чем они отличаются и что из них что? Спасибо.

Два пакета для ПЛИС фирмы Xilinx
Всем доброго здоровья! Прошу ответить на два вопроса. Мне надо сделать первые шаги по изучению...

4
1 / 0 / 1
Регистрация: 09.11.2022
Сообщений: 2
09.11.2022, 15:02 2
Лучший ответ Сообщение было отмечено tupoy_bly как решение

Решение

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


entity treangular is
Port ( clk : in STD_LOGIC;
U : out STD_LOGIC_VECTOR (8 downto 0));
end treangular;

architecture Behavioral of treangular is

begin

process (clk)
variable u_v: integer range 0 to 500:= 0;
variable resim: integer := 1;

begin
if (clk'event and clk = '1') then
u_v:=u_v+resim;

if(u_v>500 or u_v < 1) then
resim:=resim*(-1);
end if;
U <= std_logic_vector(to_unsigned(u_v, 9));
end if;
end process;



end Behavioral;
0
0 / 0 / 0
Регистрация: 09.11.2022
Сообщений: 1
09.11.2022, 15:05 3
Сверху треугольный
0
0 / 0 / 0
Регистрация: 09.11.2022
Сообщений: 3
09.11.2022, 17:46  [ТС] 4
Модуль

Код
entity egor is
    Port ( clk : in STD_LOGIC;
           inf : in STD_LOGIC;
           vih : out STD_LOGIC);
end egor;

architecture Behavioral of egor is

begin

process (clk, inf)
begin
if(clk'event and clk = '0') then
   vih<='0';
end if;

if(inf'event and inf = '1') then
   vih<=inf and (not clk);
end if;

end process;

end Behavioral;
Добавлено через 32 секунды
Тестбенч
Код
library ieee;
use ieee.std_logic_1164.all;

entity tb_egor is
end tb_egor;

architecture tb of tb_egor is

    component egor
        port (clk : in std_logic;
              inf : in std_logic;
              vih : out std_logic);
    end component;

    signal clk : std_logic;
    signal inf : std_logic:= '0';
    signal vih : std_logic;

    constant TbPeriod : time := 100 ns; -- EDIT Put right period here
    constant Period : time := 700 ns;
    signal TbClock : std_logic := '0';
    signal TbSimEnded : std_logic := '0';

begin

    dut : egor
    port map (clk => clk,
              inf => inf,
              vih => vih);

    -- Clock generation
    TbClock <= not TbClock after TbPeriod/2 when TbSimEnded /= '1' else '0';
    
    clk <= TbClock;
    inf<=   not inf after Period/2 when TbSimEnded /= '1' else '0';
    

end tb;
Добавлено через 10 минут
Модуль

Код
entity egor is
    Port ( clk : in STD_LOGIC;
           inf : in STD_LOGIC;
           vih : out STD_LOGIC);
end egor;

architecture Behavioral of egor is

begin

process (clk, inf)
begin
   vih<=inf and (not clk);
end process;

end Behavioral;
Добавлено через 32 секунды
Тестбенч

Код
library ieee;
use ieee.std_logic_1164.all;

entity tb_egor is
end tb_egor;

architecture tb of tb_egor is

    component egor
        port (clk : in std_logic;
              inf : in std_logic;
              vih : out std_logic);
    end component;

    signal clk : std_logic;
    signal inf : std_logic:= '0';
    signal vih : std_logic;

    constant TbPeriod : time := 100 ns; -- EDIT Put right period here
    constant Period : time := 700 ns;
    signal TbClock : std_logic := '0';
    signal TbSimEnded : std_logic := '0';

begin

    dut : egor
    port map (clk => clk,
              inf => inf,
              vih => vih);

    -- Clock generation
    TbClock <= not TbClock after TbPeriod/2 when TbSimEnded /= '1' else '0';
    
    clk <= TbClock;
    inf<=   not inf after Period/2 when TbSimEnded /= '1' else '0';
    

end tb;
0
0 / 0 / 0
Регистрация: 09.11.2022
Сообщений: 3
16.11.2022, 16:50  [ТС] 5
Примитивный дифференциатор
Код
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
library UNISIM;
use UNISIM.VComponents.all;

entity egor is
    Port ( clk : in STD_LOGIC;
           vhod: in std_logic_vector(7 downto 0);
           vihod : out std_logic_vector(7 downto 0));
end egor;


architecture Behavioral of egor is




begin


process (clk)
    variable v1: integer range 0 to 255:= 0;
    variable v2: integer range 0 to 255:= 0;
    variable dv: integer range 0 to 255:= 0;
begin
   if (clk'event and clk = '1') then
      v2:=to_integer(unsigned(vhod));
      dv:=v2-v1;
      vihod<=std_logic_vector(to_unsigned(dv, 8));
      v1:=v2;
   end if;
end process;

end Behavioral;
И тесбенч к нему
Код

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
library UNISIM;
use UNISIM.VComponents.all;

entity tb_egor is
end tb_egor;

architecture tb of tb_egor is

    component egor
        port (clk   : in std_logic;
              vhod  : in std_logic_vector (7 downto 0);
              vihod : out std_logic_vector (7 downto 0));
    end component;

    signal clk   : std_logic:= '0';
    signal vhod  : std_logic_vector (7 downto 0);
    signal vihod : std_logic_vector (7 downto 0);

    constant TbPeriod : time := 1000 ns; -- EDIT Put right period here
    

begin

    dut : egor
    port map (clk   => clk,
              vhod  => vhod,
              vihod => vihod);


    clk <= not clk after TbPeriod/2;

process (clk)

variable int_vhod: integer range 0 to 255:= 0;
variable dv: integer range -1 to 1:= 1;

begin
if (clk'event and clk = '1') then
int_vhod:=int_vhod+dv;

if(int_vhod>155 or int_vhod < 1) then
dv:=dv*(-1);
end if;
vhod <= std_logic_vector(to_unsigned(int_vhod, 8));
end if;
end process;

end tb;
Чтобы увидеть результат надо включить отображение чисел со знаком в правом верхнем углу симуляции
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.11.2022, 16:50
Помогаю со студенческими работами здесь

Проблема при программировании ПЛИС XILINX Virtex 4
Прошу палками не бить, спрашивал в других темах, ответа нет, посему решил создать отдельную. ...

Нужен совет по подбору ПЛИС. Желательно Xilinx.
Добрый день. На работе стала задача обновить приборы, а точнее установить в новой их итерации GbE...

программирование ПЛИС XILINX Virtex 4 в среде ISE 9.2
Доброго времени суток. Столкнулся с проблемой. Имеются две ПЛИС: XC4VFX20-10FFG672I и...

Потерял сайт со статьями о ПЛИС Xilinx для начинающих...
Находил когда-то давно статью о первых шагах в освоении ПЛИС. Очень подробно и доступно было...

Прошивка FPGA Xilinx через J-Link (поддерживает Xilinx Vivado, Xilinx iMPACT и ShypScope)
xvcjlink - переработанная версия, cделанная на основе проекта xvcd_jlink. Поддерживает работу новых...

Международная олимпиада по программированию 1994г. Задач "Матрица простых чисел".
Всем привет:) Решаю олимпиадные задачки прошлых годов и никак не получается решить эту. Задача:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru