Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Лабораторная работа №2. Цель работы: Получить делитель чистоты на 2^15.

 

 

Работу выполнил:

Студент группы РФ 12-34С

Поляк М. Г.

 

Работу проверил:

Андреев А.Г.

 

 

Красноярск 2016

 

Цель работы: Получить делитель чистоты на 2^15.

 

Текст программы:

Главный блок:

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

 

entity main is

Port (rst: in std_logic;

clk: in STD_LOGIC;

SO: out STD_LOGIC);

end main;

 

architecture Behavioral of main is

component d_trigger is

Port (rst: in std_logic;

clk: in STD_LOGIC;

d: in STD_LOGIC;

q: out STD_LOGIC;

nq: out STD_LOGIC);

end component;

 

signal p: STD_LOGIC_VECTOR (15 downto 0);

signal os: STD_LOGIC_VECTOR (15 downto 0);

begin

d1: d_trigger port map (rst => rst, clk => clk, d => os(15), q => p(0), nq=> os(15));

g0: for i in 14 downto 0 generate

allbit: d_trigger

port map (rst => rst, clk => p(i), d => os(i), q => p(i+1), nq=> os(i));

end generate;

SO < = p(15);

end Behavioral;

 

D-триггер

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

 

entity d_trigger is

Port (rst: in std_logic;

clk: in STD_LOGIC;

d: in STD_LOGIC;

q: out STD_LOGIC;

nq: out STD_LOGIC);

end d_trigger;

 

architecture Behavioral of d_trigger is

 

begin

 

process (clk) begin

if (rst = '1') then

q < = '0';

nq < = '1';

elsif (clk'event and clk = '1') then

q < = d;

nq < = not d;

end if;

end process;

end Behavioral;


Test Bench

 

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

USE ieee.std_logic_unsigned.all;

USE ieee.numeric_std.ALL;

 

ENTITY test IS

END test;

 

ARCHITECTURE behavior OF test IS

 

COMPONENT main

PORT(

rst: IN std_logic;

clk: IN std_logic;

SO: OUT std_logic

);

END COMPONENT;

 

signal rst: std_logic: = '0';

signal clk: std_logic: = '0';

 

signal SO: std_logic;

 

constant clk_period: time: = 1us;

 

BEGIN

 

uut: main PORT MAP (

rst => rst,

clk => clk,

SO => SO

);

 

clk_process: process

begin

clk < = '0';

wait for clk_period/2;

clk < = '1';

wait for clk_period/2;

end process;

 

rst_process: process

begin

rst < = '0';

wait for 1 us;

rst < = '1';

wait for 1 us;

rst < = '0';

wait;

end process;

END;

 

 

<== предыдущая лекция | следующая лекция ==>
Запросы | Два дерева
Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.008 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал