Jump to content

    

программа на 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

Edited by novic

Share this post


Link to post
Share on other sites
2 часа назад, novic сказал:

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites
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 одновременно - что делается? Сброс чего?

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

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

Share this post


Link to post
Share on other sites

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

Edited by novic

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this