Перейти к содержанию
    

программа на VHDL

Всем привет! кому не сложно, помогите пожалуйста описать схему на языке программирования VHDL. 

попыталась что-то написать, но что-то не так. помогите

 

library ieee;
    use ieee.std_logic_1164.all;

entity top is
  port (
    KEY0      : in std_logic; 
    KEY1      : in std_logic; 
    CLK100MHZ : in std_logic;
    LED       : out std_logic_vector (7 downto 0)
  );
end entity top;

architecture rtl of top is

  signal key0_int : std_logic;     
  signal key1_int : std_logic;  

signal count, c_out : std_logic_vector(4 downto 0);
    signal e_clk        : std_logic;
    signal stop_count    : std_logic;
    signal clk_counter    : std_logic;

begin

    clock: process (F, c_out) begin
        if F = '0' then
            e_clk <= '0';
        else
            if conv_integer(c_out) = Width_count + 1 then
                e_clk <= '0';
            else e_clk <= '1';
            end if;
        end if;
    end process;

    clk_counter <= e_clk and clk;

    counter: process (clk_counter, F) begin
        if (F = '0') then
            count <= (others=>'0');
        else
            if rising_edge(clk_counter) then
                count <= count + 1;
            end if;
        end if;
    end process;

    c_out <= count;

    compare: process (c_out) begin
        if conv_integer(c_out) = Width_count then
            Fn <= '1';
        else
            Fn <= '0';
        end if;
    end process;
    begin
        mux: process(sel)
    begin
        case sel is
            when "0001" => out_bus <= in_bus1;
            when "0010" => out_bus <= in_bus2;
            when "0011" => out_bus <= in_bus3;
            when "0100" => out_bus <= in_bus4;
            when "0101" => out_bus <= in_bus5;
            when "0110" => out_bus <= in_bus6;
            when "0111" => out_bus <= in_bus7;
            when "1000" => out_bus <= in_bus8;
            when "1001" => out_bus <= in_bus9;
            when "1010" => out_bus <= in_bus10;
            when others => out_bus <= (others => '0');
        end case;
    end process;  

end architecture;
 

4m7RFDnbkdY.jpg

Изменено пользователем novic

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, novic сказал:

Всем привет! кому не сложно, помогите пожалуйста описать программу на языке программирования VHDL. 

попыталась что-то написать, но что-то не так. помогите

Ой!!! А что такое "языке программирования VHDL"? И что, на нем  "описывают программу"?

А вообще, видно что у ТС буквы платные. Конечно, если надо платить за каждую букву, то какие тут комментарии в коде. Я уж не говорю о том, что коды есть, а что и для чего не написано.. Т.е. сделана "угадайка"... Что хотели, что получилось, что не так???

По хорошему за такое для разработчики положена расстрельная статья.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

нужно описать схему на языке VHDL

в схеме: элемент "и", фильтр, 2 счетчика и мультиплексор.

а задание хвучит след образом:1)обеспечить фильтрацию входных импульсов, длительностью не менее 1 мс; 2) подсчет импульсов до и после; 3) вывод на счетч. значение на светодиоды; 4) сброс осуществляется нажатием на обе кнопки; 5) 1 кн. задает механические колебания, 2 кн.- отображение счетчиков

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, novic сказал:

 

а задание хвучит след образом:

1)обеспечить фильтрацию входных импульсов, длительностью не менее 1 мс;

2) подсчет импульсов до и после;

3) вывод на счетч. значение на светодиоды;

4) сброс осуществляется нажатием на обе кнопки;

5) 1 кн. задает механические колебания, 2 кн.- отображение счетчиков

Задание написано безобразно...

Вот входы:

    KEY0      : in std_logic;  - это  1 кн
    KEY1      : in std_logic;  - это  2 кн
    CLK100MHZ : in std_logic;

Надо понимать так, что на кнопку №1 кто-то будет нажимать и после подавления дребезга в 1мс эти нажатия надо считать. А что значит "до и после"?

Что значит в №5 - " 2 кн.- отображение счетчиков"? А что индицируется исходно? 

Все надо делать по порядку. Описывается так. Сначала кто Вообще в деле есть, потом кто с кем соединен. Потом кто что делает и что это действие вызывает.

Итак:

Две кнопки

Ядро логики

Индикаторы.

При нажатии на кн.1 - что и куда подается?

При нажатии на кн.2 - что и куда подается?

По исходному что делается?

При нажатии на кн.1 - что делается? Импульсы фильтруются от дребезга в  1 мс и производится подсчет импульсов ...? Каких;

При нажатии на кн.2 - что делается?  Вывод на счетч. значение на светодиоды. А если не нажимать, то что выводится?

При нажатии на кн.1 и кн.2 одновременно - что делается? Сброс чего?

Индикация чего и по какому условию? Когда выводится "импульсов до" и когда "после". Индикация статическая? Динамическая?

И что, личная почта не работает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

кароче как я поняла. нужно написать код схемы и тестбенч. на ПЛИСке, на которой будет работать наш код есть 2 кнопки. при нажатии на кнопку идет дребезг и задача такова что на нажатии кнопок светодиод нам должен показать сколько дребезгов было-подсвечиванием светодиодов. key 0 идет на счетчик1. сигнал клок проходит через фильтр, видит дребезг, фильтрует его и подается на счетчик2. потом все идет в мультиплексор и с мультиплексора на светодиоды. когда нажимаем на обе кнопки все светодиоды должны не гореть. а 1 мс это как я поняла задержка дребезга. 

Изменено пользователем novic

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...