0% au considerat acest document util (0 voturi)
65 vizualizări4 pagini

LAB3PDP

Documentul descrie proiectarea a două circuite logice secvențiale în mediul de dezvoltare Altera Quartus II folosind limbajul VHDL: un registru pe 6 biți cu deplasare dreapta și încărcare serială și un numărător direct modulo 9 cu secvența de numărare 3-11 și încărcare paralelă. Sunt prezentate diagramele de timp pentru verificare.

Încărcat de

Cristian
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
65 vizualizări4 pagini

LAB3PDP

Documentul descrie proiectarea a două circuite logice secvențiale în mediul de dezvoltare Altera Quartus II folosind limbajul VHDL: un registru pe 6 biți cu deplasare dreapta și încărcare serială și un numărător direct modulo 9 cu secvența de numărare 3-11 și încărcare paralelă. Sunt prezentate diagramele de timp pentru verificare.

Încărcat de

Cristian
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd

UNIVERSITATEA TEHNICĂ A MOLDOVEI

FACULTATEA CALCULATOARE, INFORMATICĂ ȘI


MICROELECTRONICĂ
DEPARTAMENTUL INFORMATICĂ ȘI INGINERIA SISTEMELOR

Raport
LUCRARE INDIVIDUALĂ NR. 1
la Proiectarea cu dispozitive programabile

A realizat: st. gr. C-161 Crucean Cristian

A verificat: [Link]. Sudacevschi Viorica

Chișinău 2019
Scopul lucrării: Proiectarea, testarea şi simularea circuitelor logice secvențiale în
mediul de dezvoltare software Altera Quartus II. Descrierea circuitelori va fi efectuată în
limbajul VHDL, folosind codificarea comportamentală.

1. Se va proiecta un registru conform variantei din tabelul 1.


Nr. Num. CLK Resetare Setare Direcție Încărcare Iesire
de biți deplasare

5. 6 Front crescător sincronă nu dreapta serială serială

library ieee;

use ieee.std_logic_1164.all;

entity reg6_depl is

port (clk, ce, si, reset: in std_logic;

so: out std_logic);

end reg6_depl;

architecture reg6_depl_arch of reg6_depl is

signal tmp: std_logic_vector (5 downto 0);

begin

process (clk,reset)

begin

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

if (reset = '1') then

tmp <= (others => '0');

elsif (ce = '1') then

for i in 0 to 4 loop

tmp(i+1) <= tmp(i);

end loop;

tmp(0) <= si; -- încărcare serială

end if;

end if;

end process;

so <= tmp(5); -- ieșire serială

end reg6_depl_arch;
Diagrama de timp:

2. Se va proiecta un numărător conform variantei din tabelul 2.

Nr. mod CLK Resetare Tip Secvența de Încărcare


numărător numărare

5. 9 Front sincronă Direct 3-11 paralelă


descrescător

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.numeric_std.ALL;

entity counter is

port (clk: in std_logic;

rst: in std_logic;

en, load: in std_logic;

data: in std_logic_vector (3 downto 0);

num: out std_logic_vector (3 downto 0));

end counter;

architecture num4_arch of counter is

signal tmp: std_logic_vector (3 downto 0):= "0011";

begin

cnt: process (rst,clk)

begin
if falling_edge(clk) then

if (rst = '1') then

tmp <= (others => '0');

elsif (load = '1') then

tmp <= data;

elsif (en = '1') then

tmp <= tmp + 1;

if ((to_integer(unsigned(tmp)) >= 11) or (to_integer(unsigned(tmp)) < 3 )) then

tmp <= "0011";

end if;

end if;

end if;

end process cnt;

num <= tmp;

end num4_arch;

Diagrama de timp:

Concluzii:

În urma lucrării individuale efectuate, ne-am creat deprinderi practice de lucru cu Quartus, și anume limbajul
VHDL. Am creat un numărător pe 6 biți activ pe frontul crescător, deplasare dreapta , încărcare serială și un
numărător direct modulo 9 cu secvența de numărare 3-11, activ pe frontul descrescător, cu încărcare paralelă. Într-
un final am verificat diagramele de timp pentru a ne convinge că îndeplinim toate condițiile din tabel, și anume:
dacă acționează după front, dacă se resetează în momentul când rst = 1, dacă se încarcă valoare când load = 1, și
pentru numărător dacă se încadrează în secvența de numărare 3-11.

S-ar putea să vă placă și