UCF datoteka, modularno opisovanje, BCD kodiranje
Miha Moš[email protected]
http://lrss.fri.uni-lj.si/bio/personal/mmoskon.html
UL-FRI (R3.61)
UCF datoteka
User Constraint File (UCF)preslikava med priključki v VHDL kodi in fizičnimi priključki FPGA čipa
ločena datoteka s končnico ucf
pisanje: pomagamo si s specifikacijami razvojne ploščice
uporaba datoteke Nexys4_Master.ucf, v kateri odkomentiramo kar potrebujemo
imena se morajo ujemati
Sintaksa• NET: deklaracija priključka• LOC: oznaka pina• #: komentar• <i>: vektorski bit z indeksom i• IOSTANDARD = "LVCMOS33": napetostni nivoji
Translate: združi netlist in zahteve (constraints)
Map: načrt prevede na razpoložljive komponente izbrane naprave
Place and Route: razporedi načrt po konkretnih komponentah na konkretnih pozicijah, določi povezave med njimi
Make Programming File: ustvari bistream datoteko (.bit), ki jo lahko naložimo na napravo
http://www.xilinx.com/support/documentation/sw_manuals/xilinx11/cgn_r_core_generator_output_files.htmhttp://www.xilinx.com/support/documentation/sw_manuals/xilinx11/pta_r_ita_input_files.htm
Netlist Constraints File
A binary Xilinx implementation netlist.
Synthesis
User Constraint File (UCF)Primer: uporaba gumbov
Shema:
NET "btnC_i" LOC = "E16" | IOSTANDARD = "LVCMOS33";NET "btnU_i" LOC = "F15" | IOSTANDARD = "LVCMOS33";NET "btnL_i" LOC = "T16" | IOSTANDARD = "LVCMOS33";NET "btnR_i" LOC = "R10" | IOSTANDARD = "LVCMOS33";NET "btnD_i" LOC = "V10" | IOSTANDARD = "LVCMOS33";
VHDL:
UCF:
entity btns isPort (btnC_i, btnU_i, btnL_i, btnR_i, btnD_i : in STD_LOGIC);
end btns;
www.xilinx.com/itp/xilinx10/books/docs/cgd/cgd.pdf
User Constraint File (UCF)Primer: uporaba LED diod
NET "led_o<0>" LOC = "T8" | IOSTANDARD = "LVCMOS33";NET "led_o<1>" LOC = "V9" | IOSTANDARD = "LVCMOS33";NET "led_o<2>" LOC = "R8" | IOSTANDARD = "LVCMOS33";NET "led_o<3>" LOC = "T6" | IOSTANDARD = "LVCMOS33";NET "led_o<4>" LOC = "T5" | IOSTANDARD = "LVCMOS33";NET "led_o<5>" LOC = "T4" | IOSTANDARD = "LVCMOS33";NET "led_o<6>" LOC = "U7" | IOSTANDARD = "LVCMOS33";NET "led_o<7>" LOC = "U6" | IOSTANDARD = "LVCMOS33";NET "led_o<8>" LOC = "V4" | IOSTANDARD = "LVCMOS33";NET "led_o<9>" LOC = "U3" | IOSTANDARD = "LVCMOS33";NET "led_o<10>" LOC = "V1" | IOSTANDARD = "LVCMOS33";NET "led_o<11>" LOC = "R1" | IOSTANDARD = "LVCMOS33";NET "led_o<12>" LOC = "P5" | IOSTANDARD = "LVCMOS33";NET "led_o<13>" LOC = "U1" | IOSTANDARD = "LVCMOS33";NET "led_o<14>" LOC = "R2" | IOSTANDARD = "LVCMOS33";NET "led_o<15>" LOC = "P2" | IOSTANDARD = "LVCMOS33";
VHDL:
UCF:
entity LEDs isPort (led_o: out STD_LOGIC_VECTOR(15 downto 0);
end LEDs;
Shema:
low voltage CMOS I/O standard using 3.3V power supply voltage
User Constraint File (UCF)primer: uporaba segmentnega prikazovalnika
Pomagamo si s specifikacijami ploščice, kjer najdemo shemo:
User Constraint File (UCF)
## 7 segment displayNET "C_o<0>" LOC = "L3" | IOSTANDARD = "LVCMOS33";NET "C_o<1>" LOC = "N1" | IOSTANDARD = "LVCMOS33";NET "C_o<2>" LOC = "L5" | IOSTANDARD = "LVCMOS33";NET "C_o<3>" LOC = "L4" | IOSTANDARD = "LVCMOS33";NET "C_o<4>" LOC = "K3" | IOSTANDARD = "LVCMOS33"; NET "C_o<5>" LOC = "M2" | IOSTANDARD = "LVCMOS33"; NET "C_o<6>" LOC = "L6" | IOSTANDARD = "LVCMOS33";NET "dp_o" LOC = "M4" | IOSTANDARD = "LVCMOS33";NET "AN_o<0>" LOC = "N6" | IOSTANDARD = "LVCMOS33";NET "AN_o<1>" LOC = "M6" | IOSTANDARD = "LVCMOS33"; NET "AN_o<2>" LOC = "M3" | IOSTANDARD = "LVCMOS33"; NET "AN_o<3>" LOC = "N5" | IOSTANDARD = "LVCMOS33"; NET "AN_o<4>" LOC = "N2" | IOSTANDARD = "LVCMOS33"; NET "AN_o<5>" LOC = "N4" | IOSTANDARD = "LVCMOS33"; NET "AN_o<6>" LOC = "L1" | IOSTANDARD = "LVCMOS33"; NET "AN_o<7>" LOC = "M1" | IOSTANDARD = "LVCMOS33";
entity seg7 isPort (AN_o : out STD_LOGIC_VECTOR(7 downto 0);C_o : out STD_LOGIC_VECTOR(6 downto 0);dp_o : out STD_LOGIC);
end seg7;
VHDL:
UCF:
BCD kodiranje
BIN BCD kodiranjedvojiško kodiranje desetiških števil (angl. binarni coded decimal)
Vsaka desetiška števka v BCD kodu predstavljena s štirimi biti.
Vhod: N-bitno dvojiško številoIzhod: BCD kod (4 bite na števko)
T(isočice), S(totice), D(esetice), E(nice): 16 bitov
Primer: število 9999 [10] = 10011100001111 [2]
BCD kodiranjedvojiško kodiranje desetiških števil (angl. binarni coded decimal)
kodirnik: pretvorba BIN BCD
primer uporabe: izpisovanje na segmentni prikazovalnik
BIN BCD IZPIS
00000 0 0000 0 0
00001 0 0001 0 1
00010 0 0010 0 2
00011 0 0011 0 3
00100 0 0100 0 4
00101 0 0101 0 5
00110 0 0110 0 6
00111 0 0111 0 7
01000 0 1000 0 8
01001 0 1001 0 9
01010 1 0000 1 0
01011 1 0001 1 1
01100 1 0010 1 2
01101 1 0011 1 3
01110 1 0100 1 4
01111 1 0101 1 5
10000 1 0110 1 6
BCD kodiranjeBIN < 10
– BCD = BINBIN >= 10
– (mesto levo += 1) & začetek iz ničle
BIN BCD IZPIS
00000 0 0000 0 0
00001 0 0001 0 1
00010 0 0010 0 2
00011 0 0011 0 3
00100 0 0100 0 4
00101 0 0101 0 5
00110 0 0110 0 6
00111 0 0111 0 7
01000 0 1000 0 8
01001 0 1001 0 9
01010 1 0000 1 0
01011 1 0001 1 1
01100 1 0010 1 2
01101 1 0011 1 3
01110 1 0100 1 4
01111 1 0101 1 5
10000 1 0110 1 6
BIN BCD kodiranjeDouble Dabble algoritem
• Vhod: N-bitno dvojiško število (bin)• Izhod: BCD kod (TSDE = tisočice, stotice, desetice, enice)• Operacije nad pomikalnim registrom s strukturo
[Izhod (BCD) & Vhod (BIN)]
Prištevanje 3, če je x > 4 (x >= 5) pred pomikom je ekvivalentno prištevanju 6, če je x >= 10 po pomiku.
BIN BCD kodiranje: primer kodiranja števila 1410
BIN BCD kodiranje: primer kodiranja števila 25510
Blok ADD3a3 a2 a1 a0 s3 s2 s1 s0 komentar
0 0 0 0 0 0 0 0 <4
0 0 0 1 0 0 0 1 <4
0 0 1 0 0 0 1 0 <4
0 0 1 1 0 0 1 1 <4
0 1 0 0 0 1 0 0 =4
0 1 0 1 1 0 0 0 >4 (+3)
0 1 1 0 1 0 0 1 >4 (+3)
0 1 1 1 1 0 1 0 >4 (+3)
1 0 0 0 1 0 1 1 >4 (+3)
1 0 0 1 1 1 0 0 >4 (+3)
1 0 1 0 X X X X neveljavno
1 0 1 1 X X X X neveljavno
1 1 0 0 X X X X neveljavno
1 1 0 1 X X X X neveljavno
1 1 1 0 X X X X neveljavno
1 1 1 1 X X X X neveljavno
• vhod <= 4: izhod = vhod• vhod > 4: izhod = vhod + 3
Nedosegljive vrednosti:maksimalna vrednost = 1001
BIN BCD kodiranjeIzvedba v prostoru – kombinatorno vezje.
Uporaba modulov ADD3.
Zamikanje ADD3 v desno – zamikanje števil v levo.
BIN BCD kodiranje: izvedba v prostoru
V katero BCD števko se preslika posamezen BIN bit?
Kolikokrat mora posamezen bit iti skozi ADD3 modul (kolikokrat je na posameznem bitu izvedena primerjava > 4)?
V kakšnem pogoju lahko primerjavo izpustimo (kdaj pogoj > 4 zagotovo ni izpolnjen)?
BIN BCD kodiranje: izvedba v prostoru
Iterativni postopek izvedemo v vezju, ki izvaja postopek v prostoru (ne v času kakor sekvenčna vezja).
BIN BCD kodiranje: realizacija v prostoru
BIN BCD kodiranje: 8-bitno
BIN BCD kodiranje: 14-bitno
BIN BCD kodiranje: 16-bitno
BCD BIN kodiranjeVhod: BCD kod (4 bite na števko)Izhod: N-bitno dvojiško število
T(isočice), S(totice), D(esetice), E(nice): 16 bitov
Primer: število 9999 [10] = 1001100110011001[BCD] = 10011100001111 [2]
BCD BIN
BCD BINOperacije nad pomikalnim registrom s strukturo [Vhod(BCD) & Izhod(BIN)]
BIN BCD• pomik v levo• prištej 3, če je BCD števka > 4BCD BIN• pomik v desno• odštej 3, če je BCD števka > 7
BCDBINPrimer: 1410 = 10100BCD
BCD BIN: Blok SUB3
Maksimalna vrednost 10011001
BCDBINPrimer: 1410 = 10100BCD
BCD BIN kodiranje: izvedba v prostoru
V katero BIN števko se preslika posamezen BCD bit?
Kolikokrat mora posamezen bit iti skozi SUB3 modul (kolikokrat je na posameznem bitu izvedena primerjava > 7)?
V kakšnem pogoju lahko primerjavo izpustimo (kdaj pogoj > 7 zagotovo ni izpolnjen)?
BCDBIN: izvedba v prostoru3 mestno desetiško število (od 0 do 999): Zamikanje SUB3 v levo – zamikanje
števil v desno.
VHDL: modularno opisovanje in paketi
Arhitektura
opisuje delovanje vezja na tri načine:vzporedno (stavki se izvajajo paralelno): osnovni način,zaporedno (stavki se izvajajo zaporedno – procesi),modularno (uporabimo vnaprej sprogramirane komponente).
Modularno opisovanje vezjaUporablja se, kadar isti modul nastopa večkrat.
Omogoča nam uporabo že napisanih modulov (MUX, seštevalnik, register, števec, pomnilnik ...) in bolj pregledno programiranje pri večjih projektih (razvoj procesorja lahko razbijemo na ALE, podatkovno enoto, kontrolno enoto in pomnilnik).
V posameznem modulu lahko uporabimo generične spremenljivke (blok generic), ki nam omogočajo večjo prilagodljivost (npr. določanje velikosti registra šele ob uporabi).
Tudi simulator uporablja modularno opisovanje.
Definicija modulovPosamezen modul definiramo na enak način, kot smo to delali do sedaj (entiteta + arhitektura).
Če želimo vrednosti izbranih spremenljivk v modulu določiti šele ob uporabi, v entiteto vključimo generic del (navedemo tudi privzeto vrednost):
entity register isgeneric(
size : INTEGER := 8); -- privzeta velikost je 8
port(data_in : IN STD_LOGIC_VECTOR(size-1 downto 0);
data_out : OUT STD_LOGIC_VECTOR(size-1 downto 0);
.... );
Uporaba modulovPred začetkom arhitekture podamo entitetni del modula, ki ga bomo uporabili – v blok component.
V arhitekturo dodamo component , port map in generic map del:
architecture behavioral of primer iscomponent komponenta
-- prekopiramo iz entitete modulageneric(
size : INTEGER := 8);port(
CLK : IN STD_LOGIC;data_in : IN STD_LOGIC_VECTOR(size-1 downto 0);data_out : OUT STD_LOGIC_VECTOR(size-1 downto 0);...
);end component;
Uporaba modulovZnotraj arhitekture podamo uporabo komponente (instanciranje)
Pri uporabi navedemo preslikavo med lokalnimi signali in signali znotraj uporabljene komponente. Pri tem obstajata dva načina:• imensko povezovanje (named association): navedemo imena lokalnih in
komponentnih signalov in relacije med njimi,• položajno povezovanje (positional association): navedemo samo lokalni
signale v enakem vrstnem redu kot so deklarirani signali v entiteti komponente
Najvišji komponenti, ki uporablja ostale, pravimo top level komponenta.
Uporaba modulov: imensko povezovanje
beginkomp1:komponentageneric map(
size => 6 -- velikost registra)port map(
CLK => CLK,data_in => lokalni_data_in,data_out => lokalni_data_out,...
);komp2:komponentaport map(
...);
end behavioral;
Lokalni signali (v top-levelmodulu)Priključki
uporabljenega modula
Uporaba modulov: položajno povezovanje
port map (CLK, lokalni_data_in, lokalni_data_out,...);
V port map delu lahko tudi samo naštejemo lokalne signale, v pravem vrstnem redu.
je ekvivalentno zapisu
port map(
CLK => CLK,data_in => lokalni_data_in,data_out => lokalni_data_out,...
);
Priključki uporabljenega modula
Lokalni signali (v top-levelmodulu)Priključki
uporabljenega modula
Primer 1:MUX 16/1 = 5 x MUX 4/1
Primer 2: Modul ADD3
a3 a2 a1 a0 s3 s2 s1 s0 komentar
0 0 0 0 0 0 0 0 <4
0 0 0 1 0 0 0 1 <4
0 0 1 0 0 0 1 0 <4
0 0 1 1 0 0 1 1 <4
0 1 0 0 0 1 0 0 =4
0 1 0 1 1 0 0 0 >4 (+3)
0 1 1 0 1 0 0 1 >4 (+3)
0 1 1 1 1 0 1 0 >4 (+3)
1 0 0 0 1 0 1 1 >4 (+3)
1 0 0 1 1 1 0 0 >4 (+3)
1 0 1 0 X X X X neveljavno
1 0 1 1 X X X X neveljavno
1 1 0 0 X X X X neveljavno
1 1 0 1 X X X X neveljavno
1 1 1 0 X X X X neveljavno
1 1 1 1 X X X X neveljavno
Modul ADD3library IEEE;
use IEEE.STD_LOGIC_1164.all;
entity ADD3 isport (a_i: in std_logic_vector(3 downto 0);
s_o: out std_logic_vector(3 downto 0));
end ADD3;
architecture behavioral of ADD3 isbegins_o(3) <= a_i(3) OR (a_i(2) AND a_i(0)) OR (a_i(2) AND a_i(1));
s_o(2) <= (a_i(3) AND a_i(0)) OR (NOT a_i(0) AND NOT a_i(1) AND a_i(2));
s_o(1) <= (a_i(3) AND NOT a_i(0)) OR (a_i(1) AND NOT a_i(2)) OR
(a_i(1) AND a_i(0));
s_o(0) <= (a_i(3) AND NOT a_i(0)) OR (NOT a_i(2) AND NOT a_i(1) AND NOT a_i(0)) OR (NOT a_i(3) AND NOT a_i(2) AND a_i(0));
end behavioral;
Brez uporabe knjižnice arith.
Modul ADD3library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_ARITH.all;
use IEEE.STD_LOGIC_UNSIGNED.all;
entity ADD3 isport (a_i: in std_logic_vector(3 downto 0);
s_o: out std_logic_vector(3 downto 0));
end ADD3;
architecture behavioral of ADD3 isbegin
s_o <= a_i when a_i < 5 else a_i+3;
end behavioral;
Z uporabo knjižnice arith.
Uporaba modula ADD3: imensko povezovanje
architecture behavioral of BCD iscomponent ADD3port (a_i: in std_logic_vector(3 downto 0);
s_o: out std_logic_vector(3 downto 0)); end component;
signal b: std_logic_vector(3 downto 0);signal d: std_logic_vector(1 downto 0);signal e: std_logic_vector(2 downto 0);signal t: std_logic_vector(2 downto 0);
beginADD3_1:ADD3port map(a_i(3) => '0'‚a_i(2 downto 0) => b(4 downto 2), s_o(3) => d(1),s_o(2 downto 0) => t
);
ADD3_2:ADD3port map(a_i(3 downto 1) => t,a_i(0) => b(1),s_o(3) => d(0),s_o(2 downto 0) => e(3 downto 1)
);e(0) <= b(0);...
end behavioral;
t2 t1 t0
Uporaba modula ADD3: imensko povezovanje
Lepše: uporaba signalov in konkatenacije vektorjev (&):signal a1, a2: std_logic_vector(3 downto 0);signal s1, s2: std_logic_vector(3 downto 0);
a1 <= '0' & b_i(4 downto 2);d(1) <= s1(3);t <= s1(2 downto 0);
a2 <= t & b_i(1);d(0) <= s2(3);e(3 downto 1) <= s2(2 downto 0);e(0) <= b_i(0);
ADD3_1:ADD3_logicport map(a_i => a1,s_o => s1
);
ADD3_2:ADD3_logicport map(a_i => a2,s_o => s2
);
t2 t1 t0
Uporaba modula ADD3: položajno povezovanje
a1 <= '0' & b_i(4 downto 2);d(1) <= s1(3);t <= s1(2 downto 0);
a2 <= t & b_i(1);d(0) <= s2(3);e(3 downto 1) <= s2(2 downto 0);e(0) <= b_i(0);
ADD3_1:ADD3port map (a1, s1);
ADD3_2:ADD3port map (a2, a2);
...end behavioral;
t2 t1 t0
Modularno opisovanje v test benchdatoteki
Modularno opisovanje v test benchdatoteki
Paketi v VHDLDefiniramo lahko lastne pakete, ki vsebujejo opise modulov, deklaracije tipov…
Vsebujejo entiteto modulov (komponent), definicije konstant, podatkovnih tipov…
Paket se mora nahajati v istem imeniku kot implementacija modula, ki ga opisuje.
Dovoljuje uporabo modulov, ki niso znotraj našega projekta.
Primer:
Paket ADD3_packet se mora nahajati v istem imeniku kot modul ADD3.
library IEEE;use IEEE.STD_LOGIC_1164.all;
package ADD3_packet istype STATE is (RESET,IDLE,ACKA);
component ADD3port (a_i: in std_logic_vector(3 downto 0);
s_o: out std_logic_vector(3 downto 0)); end component;
end ADD3_packet
Paketi v VHDLPri uporabi moramo definirati knjižnico, ki paket vsebuje.
Primer uporabe vgrajene knjižnice:
Če se paket nahaja v delovnem direktoriju projekta, knjižnice ni potrebno specificirati:
Če želimo imeti paket v drugem direktoriju, moramo narediti svojo knjižnico. Navodila na povezavi:
http://www.xilinx.com/itp/xilinx10/isehelp/ise_c_working_with_vhdl_libraries.htm
library IEEE;use IEEE.STD_LOGIC_1164.all;
use work.ADD3_packet.all;
Paketi v VHDLUporaba paketa:
...ADD3_1:ADD3port map(a_i => a1,s_o => s1
);ADD3_2:ADD3port map(a_i => a2s_o => s2
);
e(0) <= b(0);...
end behavioral;
library IEEE;use IEEE.STD_LOGIC_1164.all;use work.ADD3_packet.all
entity BCD is ...
architecture behavioral of BCD issignal b: std_logic_vector(3 downto 0);signal d: std_logic_vector(1 downto 0);signal e: std_logic_vector(2 downto 0);
signal t: std_logic_vector(2 downto 0);signal a1, a2: std_logic_vector(3 downto 0);signal s1, s2: std_logic_vector(3 downto 0);
begin...
Opis se skajša za component del (vsebovan v paketu)!
Paket se nahaja v delovnem direktoriju
Paket se nahaja v knjižnici IEEE
Primerjalniki velikosti in sortiranje števil
Primerjalnik enakosti (equalitycomparator)
Vhod: 2 n-bitni številiIzhod: 1, ko sta števili enaki; sicer 0.
Izvedba z operatorjem ekvivalence (XNOR) in operatorjem AND:
Primerjalnik enakostiVhod: 2 n-bitni številiIzhod: 0, ko sta števili enaki; sicer 1.
Izvedba z operatorjem XOR in operatorjem OR:
Primerjalnik velikosti (magnitude comparator)
Ali je , pri čemer je
Možnosti:• , npr.:• , npr.:• , npr.:• , npr.:
7485
7485Vhodi A<B, A=B, A>B se upoštevajo, če so vsi podatkovni vhodi enaki.
Nanje lahko vežemo izhode iz primerjalnikov manj pomembnih bitov – kaskadna vezava.
8-bitni primerjalnik velikosti iz dveh 4-bitnih:
Primerjalnik velikosti v VHDLLogične enačbe ali uporaba knjižnic za delo s števili, npr.:use IEEE.STD_LOGIC_ARITH.all;
use IEEE.STD_LOGIC_UNSIGNED.all;
Operatorji primerjanja (knjižnice):• = … enakost• /= … neenakost• < … manj kot• <= … manj ali enako• > … več kot• >= … več ali enako
Vzporedno sortiranje
Primerjalnik velikosti v VHDLlibrary IEEE;use IEEE.STD_LOGIC_1164.all;use IEEE.STD_LOGIC_ARITH.all;use IEEE.STD_LOGIC_UNSIGNED.all;
entity comparator isgeneric (n: natural := 2);port ( A_i,B_i: in std_logic_vector(n-1 downto 0);
L_o: out std_logic); end comparator;
architecture behavioral of comparator isbegin
L_o <= '1' when (A_i < B_i) else '0';
end behavioral;
Primerjalnik velikosti v VHDLImplementacije primerjalnika velikosti s procesom:
process(A_i,B_i)begin
if (A_i<B_i) thenL_o <= '1';
elseL_o <= '0';
end if;end process;
Sortirnik dveh števil v VHDLUporaba primerjalnika: blok, ki uredi števili po velikosti.
Vzporedno sortiranje (VHDL)
Vzporedno sortiranje (VHDL)
Vzporedno sortiranje (VHDL)
Uporaba segmentnega prikazovalnika
Anode: izbira števkeKatode: izbira segmenta v števki
Vklop: anoda = 1, katoda = 0
Nexys4: invertirajoče anode vklop: anoda = 0, katoda = 0
Uporaba segmentnega prikazovalnika
Anode: izbira števkeKatode: izbira segmenta v števki (vse števke si delijo iste linije)Vklop: anoda = 0, katoda = 0Osveževanje: med 1 do 16 ms
Modul za uporabo segmentnega prikazovalnika
katode določajo izhodi a, b, c, d, e, f in g (vežemo jih na ca, cb, cc, cd, ce,cf in cg)
dp: pika za števko
invertirajoča logika
na 0 postavimo anodo števke, ki jo želimo regulirati
Uporaba segmentnega prikazovalnika -katode
Modul za uporabo segmentnega prikazovalnika – katode
w3 w2 w1 w0 a b c d e f g
0 0 0 0 0 0 0 0 0 0 1
0 0 0 1 1 0 0 1 1 1 1
0 0 1 0 0 0 1 0 0 1 0
0 0 1 1 0 0 0 0 1 1 0
0 1 0 0 1 0 0 1 1 0 0
0 1 0 1 0 1 0 0 1 0 0
0 1 1 0 0 1 0 0 0 0 0
0 1 1 1 0 0 0 1 1 1 1
1 0 0 0 0 0 0 0 0 0 0
1 0 0 1 0 0 0 0 1 0 0
Invertirajoča logika!
Modul za uporabo segmentnega prikazovalnika
Uporaba modula v kombinaciji z dodatno logiko za izbiro števke• Določi števko, ki se bo osvežila (anoda = 0).• Modulu posreduje BCD kod trenutne števke.• Menjava števke v intervalu med 1/4 in 4 ms (med 25000 in 400000 urinih
ciklov).