Documentos de Académico
Documentos de Profesional
Documentos de Cultura
7 VHDL
7 VHDL
JJVS-09
Las secciones fundamentales que forman el cdigo en VHDL son: librera (LIB ! "#$ entidad (%&'I'"# ( arquitectura (! CHI'%C') %#* LIB ! ": contiene un conjunto de libreras que contienen la definicin de datos$ estructuras$ etc* %&'I'": circuito* %specifica las entradas+salidas del
! ,)I'%C') %: %-isten dos formas de de describir un circuito$ estructural ( por su comportamiento* %sta forma a su .e/ se di.ide en flujo de datos ( algortmica* JJVS-09 2
%&'ID!D
JJVS-09
IN IN IN OUT
!rquitectura (estructural#
ARCHITECTURE %5' )C') !L OF 0)1 IS SIGNAL !1$B1$&35%L: BI'4 BEGIN )6: ENTITY I&V PORT MAP (%785%L%C$ "78&35%L#4 )9: ENTITY !&D: PORT MAP (%978!$ %:78&35%L$ "78!1#4 ):: ENTITY !&D: PORT MAP (B$ 5%L%C$ B1#4 );: ENTITY 3 : PORT MAP (%978!1$ %:78B1$"785!LID!#4 END %5' )C') !L4 JJVS-09
ARCHITECTURE %5' )C') !L OF 0)1 IS SIGNAL !1$B1$&35%L: BI'4 BEGIN )6: ENTITY I&V PORT MAP (%785%L%C$ "78&35%L#4 )9: ENTITY !&D: PORT MAP (%978!$ %:78&35%L$ "78!1#4 ):: ENTITY !&D: PORT MAP (B$ 5%L%C$ B1#4 );: ENTITY 3 : PORT MAP (%978!1$ %:78B1$"785!LID!#4 END %5' )C') !L4
JJVS-09 5
JJVS-09
arc=itecture Comportamental of 0)1 is B%>I& 2 3C%55 (!$B$selec# begin if (selec7?6?# t=en salida@7a4 else salida@7b4 end if4 end process4 end Comportamental4
arc=itecture Alujo9 of 0)1 is signal nosel$a-$b-: bit4 B%>I& &osel @7 not selec4 !-@7 a !&D B-@7 b !&D 5alida@7 a- 3 end Alujo94
JJVS-09
JJVS-09
%ntidad
)na entidad estC compuesta por tres elementos: 1. Puertos de entrada-salida. Cada una de las seDales de entrada ( salida en una entidad$ son llamadas puertos* Los puertos deben poseer nombre$ modo ( tipo de datos* 2. Modos. (a#0odo in (b#0odo out (c#0odo inout (puerto bidireccional con Retroalimentacin dentro o fuera de la entidad) (d) 0odo buffer (se comporta como salida pero permite reali/ar retroalimentaciones internas# Tipos de datos. (a#stdElogic* (b#Boolean*
JJVS-09
!L)
Cin
%ntit( !L) is 2ort ( In9 : In: : 3p5el : 0ode : Cin : esult : Cout : %qual : #4 in in in in in out out out
esult
%qual
stdElogicE.ector (; doBnto 6#4 stdElogicE.ector (; doBnto 6#4 stdElogicE.ector(6 to :#4 stdElogic4 stdElogic4 stdElogicE.ector (; doBnto 6#4 stdElogic4 stdElogic
<< 2rimer 3perando << 5egundo 3perando << 5elector de 3peracin << 0odo !ritmFtico+Lgico << !carreo de entrada << esultado << !carreo de salida << 9 cuando In9 7 In:
10
!rquitectura
)na arquitectura (architecture# se define como la estructura que describe el funcionamiento de una entidad* Las arquitecturas se clasifican en:
9* %structural* :* Auncional (comportamental#* ;* Alujo de datos*
JJVS-09
11
Q U H AC E ? Descripcin Auncional
C M O E ST C O M PU E S TA ? Descripcin %structural
La descripcin estructural es mucho ms fcil de sintetizar que la descripcin funcional por que se refiere a componentes fsicos concretos. Sin embargo es ms difcil de desarrollar por que requiere de mayor experiencia del dise ador para hacer los dise os ms eficientes.
1212
JJVS-09 12
entit( comp is 2ort ( a : in 5'DEL3>ICEV%C'3 (9 doBnto 6#4 b : in 5'DEL3>ICEV%C'3 (9 doBnto 6#4 c : out 5'DEL3>IC#4 end comp4
JJVS-09
arc=itecture funcional of comp is begin process(a$b# begin if a 7 b t=en c @7?9?4 else c @7?6?4 end if4 end process4 13 end funcional4
JJVS-09
14
'ipos de declaraciones
%n VHDL e-isten dos tipos de declaraciones: se !e" ia#es ( o" !rre"tes* Las secuenciales requieren (if-then-else# o (case#$ dentro de la instruccin process* La declaracin concurrente se obtiene con whenelse o con ecuaciones booleanas*
JJVS-09
15
Ejer i io$ %scriba las declaraciones de las arquitecturas secuencial ( concurrente para un comparador de dos bits*
5ecuencial
arc=itecture funcional of comp is begin process(a$b# begin if a 7 b t=en c @7?9?4 else c @7?6?4 end if4 end process4 end funcional4
JJVS-09
Concurrente
entit( compEconcurrente is 2ort ( a : in 5'DEL3>ICEV%C'3 (9 doBnto 6#4 b : in 5'DEL3>ICEV%C'3 (9 doBnto 6#4 c : out 5'DEL3>IC#4 end compEconcurrente4 arc=itecture concurrente of comp is begin c@7?9? B=en (a7b# else ?6?4 end concurrente4
16
if a7b t=en -@7?9?4 elsif a8b t=en (@7?9?4 else /@7?9?4 end if4 end process4 end Be=a.ioral4
17
Declaraciones concurrentes
%n una declaracin concurrente no importa el orden en que se escriban las seDales$ (a que el resultado para determinada funcin sera el mismo* %n VHDL e-isten tres tipos de declaraciones concurrentes:
%.De #ara io"es o"di io"a#es asi&"adas a !"a se'a# (when-else#* (.De #ara io"es o" !rre"tes asi&"adas a se'a#es. ).Se#e
JJVS-09
entit( tabla is 2ort ( a$b$c : in 5'DEL3>IC4 f : out 5'DEL3>IC#4 end tabla4 c 6 9 6 9 6 9 6 9 f 9 6 6 9 6 6 9 9 arc=itecture Be=a.ioral of tabla is begin f @7 ?9? B=en ?9? B=en ?9? B=en ?9? B=en ?6?4 (a7?6? and b7?6? and c7?6?# else (a7?6? and b7?9? and c7?9?# else (a7?9? and b7?9? and c7?6?# else (a7?9? and b7?9? and c7?9?# else
19
b 6 6 9 9 6 6 9 9
9 9
end Be=a.ioral4
3peradores lgicos
Los operadores lgicos presentan el siguiente orden ( prioridad: 9* %-presiones entre parFntesis :* Complementos ;* Auncion !&D G* Auncin 3 %cuacin ,7 a I - * ( "7 a I b * c I d
JJVS-09
Las funciones de salida se describen mediane la ecuacin booleana que describe el comportamiento de cada una de las compuertas*
JJVS-09
21
)::!
9 ; : 9 G6JJ : ;
.%
%jemplo:
)G:!
)9:!
9 ;
JG;:
)M
.(
: JG6K L
)9:C
K 96 G JG6K
&!&D
)::B
e 0
M H G6JJ
.)
librar( I%%%4 use I%%%*5'DEL3>ICE99HG*all4 use I%%%*5'DEL3>ICE)&5I>&%D4 entit( logic is port( a$b$c$d$e$f: in 5'DEL3>IC4 -9$-:$-;: out 5'DEL3>IC#4 end logic4
arc=itecture booleana of logic is begin -9@7 a -nor b4 -:@7 (((c and d# or (a -nor b##nand ((c and d# and(e -nor f###4 -;@7(c and d# and (e -nor f#4 end booleana4
JJVS-09
22
JJVS-09
23
%jercicio
DiseDe un circuito combinacional que detecte nOmeros primos de G bits* ealice la tabla de .erdad ( elabore un programa que describa su funcin* )tilice instrucciones del tipo withselect-when* arc=itecture detecta of primos is
begin entit( primos is port( 1 : in 5'DEL3>ICEV%C'3 (; doBnto 6 #4 A : out 5'DEL3>IC #4 end primos4 Bit= 1 select A@7 ?9? B=en N6669N$ ?9? B=en N6696N$ ?9? B=en N6699N$ ?9? B=en N6969N$ ?9? B=en N6999N$ ?9? B=en N9699N$ ?9? B=en N9996N$ ?6? B=en ot=ers4 end detecta4
24
JJVS-09
Declaracin i0-t,e"-e#se
JJVS-09
25
%jemplo de un comparador
: :
a b
entit( comp is 2ort ( a : in 5'DEL3>ICEV%C'3 (9 doBnto 6#4 b : in 5'DEL3>ICEV%C'3 (9 doBnto 6#4 c : out 5'DEL3>IC#4 end comp4
arc=itecture funcional of comp is begin process(a$b# begin if a 7 b t=en c @7?9?4 else c @7?6?4 end if4 end process4 end funcional4
26
JJVS-09
JJVS-09
27
if a7b t=en -@7?9?4 elsif a8b t=en (@7?9?4 else /@7?9?4 end if4 end process4 end Be=a.ioral4
28
%jercicio
DiseDe un comparador de dos nOmeros ! ( B$ cada uno formado por dos bits$ la salida del comparador tambiFn es de dos bits ( estC representada por la .ariable P de tal forma que s: !7B entonces P799 !@B entonces P769 !8B entonces P796
JJVS-09
29
3peraciones relacionales
5e usan para e.aluar la igualdad$ desigualdad o la magnitud en una e-presin* Los operadores de igualdad ( desigualdad se definen en todos los tipos de datos* Los operadores de magnitud (@$@7$8 ( 87# son aplicados en tipos escalares*
Operador 1 21 3 31 4 41 I&!a# Di0ere"te Me"or Me"or o i&!a# Ma5or Ma5or o i&!a#
30
Si&"i0i ado
JJVS-09
%nteros*
TYPE b(te IS RANGE 6 '3 :MM4 TYPE inde- IS RANGE J DO6NTO 94 TYPE integer IS RANGE <:9GJGK;HGK TO:9GJGK;HGK4<< TYPE ni.el IS RANGE 6*6 TO M4 TYPE real IS RANGE <9*6%;K TO 9*6%;K4 <<predefinido
eales
Asicos %numerados
JJVS-09 31
JJVS-09
32
Buffer tri<estado
%stos tienen di.ersas aplicaciones (a sea como salidas de sistemas (modo buffer# o como parte integral de un circuito*
arc=itecture secuencial of QbufferQ is begin process (entrada$ enable# begin if (enable7?9?#t=en salida@7entrada4 else salida@7?P?4 end if4 end process4 end secuencial4
33
librar( I%%%4 use I%%%*5'DEL3>ICE99HG*all4 entit( QbufferQ is port( entrada$enable : in 5'DEL3>IC4 salida : out 5'DEL3>IC #4 end QbufferQ4
JJVS-09
0ultiple-ores
%mplee with-selectwhen para diseDar el circuito (no considere las seDales 5'B9 ( 5'B:#* DiseDe el circuito empleando ecuaciones booleanas*
)9
H M G ; 96 99 9: 9; 9G : 9 9M 16 19 1: 1; "6 "9 ": "; ! B 5'B9 5'B: GM;L P1 P" J L
JJVS-09
34
0ultiple-or
entit( mu-: is port( a$b$c$d$sel : in 5'DEL3>ICEV%C'3 (9 doBnto 6#4 /: out 5'DEL3>ICEV%C'3 (9 doBnto 6# #4 end mu-:4 arc=itecture mu-: of mu-: is begin Bit= sel select /@7 a B=en N66N$ b B=en N69N$ c B=en N96N$ d B=en ot=ers4 end mu-:4
JJVS-09 35
0edio sumador
0edio sumador
librar( I%%%4 use I%%%*5'DEL3>ICE99HG*all4 entit( medsum is port( a$b : in 5'DEL3>IC4 s$c : out 5'DEL3>IC#4 end medsum4 <<RR %nd of automaticall( maintained section arc=itecture medsum of medsum is begin s@7a -or b4 c@7a and b4 end medsum4
JJVS-09 37
carga paralela( con habilitacin externa y reset asncrono. Sumador completo de 1 bit
JJVS-09
38
JJVS-09
39
JJVS-09
40
JJVS-09
41
JJVS-09
42
Con.ersiones
signal s9$s:$s;$sG$sM$sH :stdElogicE.ector(; doBnto 6#4 signal u9$u:$u;$uG$uM$uH$uJ :unsigned(; doBnto 6#4 begin u9@7s94 u:@7M s:@7u;4 s;@7M4
{correcto ! ! ! }
JJVS-09
43
Concatenacin S
JJVS-09
44
JJVS-09
45
19 1: 1; 1G
librar( I%%%4 use I%%%*5'DEL3>ICE99HG*all4 entit( decEbcdEdec is port( : in 5'DEL3>ICEV%C'3 (; doBnto 6#4 s6$s9$s:$s;$sG$sM$sH$sJ$sK$sL : out 5'DEL3>IC#4 end decEbcdEdec4 JJVS-09
9 : G K
! B C D % A >
JJVS-09
47
%mpleando C!5%
arc=itecture secuencial of bcdJseg is begin process (!# begin case ! is B=en N6666N 78 d@7N6666669N4 B=en N6669N 78 d@7N9669999N4 B=en N6696N 78 d@7N6696696N4 B=en N6699N 78 d@7N6666996N4 B=en N6966N 78 d@7N9669966N4 B=en N6969N 78 d@7N6966966N4 B=en N6996N 78 d@7N6966666N4 B=en N6999N 78 d@7N6669996N4 B=en N9666N 78 d@7N6666666N4 B=en N9669N 78 d@7N6666966N4 B=en ot=ers 78 d@7N9999999N4 end case4 end process4 end secuencial4
JJVS-09 48
JJVS-09
49
Implementacin (9#
librar( I%%%4 use I%%%*5'DEL3>ICE99HG*all4 entit( prioEencoder is port( r : in 5'DEL3>ICEV%C'3 (G doBnto 9#4 pcode : out 5'DEL3>ICEV%C'3 (: doBnto 6# #4 end prioEencoder4 arc=itecture arqEB=en of prioEencoder is begin pcode@7N966N B=en r(G#7?9? else N699N B=en r(;#7?9? else N696N B=en r(:#7?9? else N669N B=en r(9#7?9? else N666N4 end arqEB=en4
JJVS-09 51
Implementacin (:#
arc=itecture arqEB=en of prioEencoder is begin Bit= r select pcode@7 N966N B=en N9<<<N$ N699N B=en N69<<N$ N669N B=en N6669N$ N666N B=en ot=ers4 end arqEB=en4
JJVS-09 52
JJVS-09
53
Implementacin
librar( I%%%4 use I%%%*5'DEL3>ICE99HG*all4 entit( decoder is port( a : in 5'DEL3>ICEV%C'3 (9 doBnto 6#4 en : in 5'DEL3>IC4 ( : out 5'DEL3>ICEV%C'3 (; doBnto 6# #4 end decoder4 arc=itecture arqEB=en of decoder is signal s:stdElogicE.ector(: doBnto 6 #4 begin s@7enSa4 Bit= s select (@7 N6666N B=en N6<<N$ N6669N B=en N966N$ N6669N B=en N969N$ N6696N B=en N996N$ N9666N B=en ot=ers4 end arqEB=en4
JJVS-09
54
JJVS-09
55
%jemplos
JJVS-09
56
Cdigo intuiti.o
JJVS-09
57
Cdigo intuiti.o
JJVS-09
58
0emoria no asignada
2ara pre.enir este error$ deberCn seguirse las siguientes reglas: 9*Inclu(e todas las seDales de entrada en la lista sensible* :*Incluir el else en el if* ;*!signar un .alor a cada seDal en cada rama*
JJVS-09
59
0emoria no asignada
JJVS-09
60
Constantes
JJVS-09
61
JJVS-09
62
arc=itecture concurrente of sumadorEccE.ar is entit( sumadorEccE.ar is constant &:integer:7K4 signal aEe-t$bEe-t$sumEe-t : unsigned(& doBnto 6#4 port( begin a : in 5'DEL3>ICEV%C'3 (J doBnto 6#4 aEe-t@7unsigned(?6?Sa#4 b : in 5'DEL3>ICEV%C'3 (J doBnto 6#4 bEe-t@7unsigned(?6?Sb#4 sum : out 5'DEL3>ICEV%C'3 (J doBnto 6#4 sumEe-t@7aEe-t I bEe-t4 cout : out 5'DEL3>IC#4 sum@7stdElogicE.ector(sumEe-t(&<9 doBnto 6##4 end sumadorEccE.ar4 cout@7sumEe-t( end concurrente4
Las constantes permiten tener un cdigo mCs fCcil de entender ( mantener* JJVS-09 63
>eneric
5e emplea para pasar informacin dentro de una entidad ( componente* "a que el generic no puede ser modificado dentro de la arquitectura$ este funciona como una constante*
JJVS-09
64
JJVS-09
65
ecomendaciones
)se los tipos de datos std_logic ( std_logic_vector, en la declaracin de entidad de puerto ( para las seDales internas que en.uel.en operaciones no aritmFticas* )se el paquete numeric_std ( sus tipos de datos unsigned ( signed para seDales internas que en.uel.en operaciones aritmFticas* )se la con.ersin de datos de la tabla para con.ertir seDales ( e-presiones* )sar el tipo entero ( operadores aritmFticos para e-presiones constantes ( arreglos pero no para sntesis (no usar como tipo de datos para una seDal#* )sar el tipo enumerado para los estados en una A50*
66
JJVS-09
Cdigo de =e-EtoEsseg
arc=itecture secuencial of =e-EtoEsseg is begin librar( I%%%4 use I%%%*5'DEL3>ICE99HG*!LL4 use I%%%*5'DEL3>ICE! I'H*!LL4 use I%%%*5'DEL3>ICE)&5I>&%D*!LL4 librar( I%%%4 use I%%%*5'DEL3>ICE99HG*all4 entit( =e-EtoEsseg is port( =e- : in 5'DEL3>ICEV%C'3 (; doBnto 6#4 dp : in stdElogic4 sseg: out 5'DEL3>ICE.ector(J doBnto 6##4 end =e-EtoEsseg4 process (=e-# begin case =e- is B=en N6666N 78 sseg(H doBnto 6#@7N9666666N4 B=en N6669N 78 sseg(H doBnto 6#@7N9999669N4 B=en N6696N 78 sseg(H doBnto 6#@7N6966966N4 B=en N6699N 78 sseg(H doBnto 6#@7N6996666N4 B=en N6966N 78 sseg(H doBnto 6#@7N6699669N4 B=en N6969N 78 sseg(H doBnto 6#@7N6696696N4 B=en N6996N 78 sseg(H doBnto 6#@7N6666696N4 B=en N6999N 78 sseg(H doBnto 6#@7N9999666N4 B=en N9666N 78 sseg(H doBnto 6#@7N6666666N4 B=en N9669N 78 sseg(H doBnto 6#@7N6696666N4 B=en N9696N 78 sseg(H doBnto 6#@7N6669666N4<<a B=en N9699N 78 sseg(H doBnto 6#@7N6666699N4<<b B=en N9966N 78 sseg(H doBnto 6#@7N9666996N4<<c B=en N9969N 78 sseg(H doBnto 6#@7N6966669N4<<d B=en N9996N 78 sseg(H doBnto 6#@7N6666966N4<<e B=en ot=ers 78 sseg(H doBnto 6#@7N6669996N4<<f end case4 sseg(J#@7dp4 end process4 end secuencial4
JJVS-09
68
JJVS-09
69
process (sel $ in6$ in9 $ in:$ in;# begin case sel is B=en N66N 78 an @7 N9996N4 sseg @7 in64 B=en N69N 78 an @7 N9969N4 sseg @7 in94 B=en N96N 78 an@7N9699N4 sseg@7in:4 B=en ot=ers 78 an@7N6999N4 sseg@7in;4 end case4 end process4 end arc=4
70
%ntidad
librar( I%%%4 use I%%%*5'DEL3>ICE99HG*!LL4 use I%%%*5'DEL3>ICE! I'H*!LL4 use I%%%*5'DEL3>ICE)&5I>&%D*!LL4 entit( =e-EtoEssegEtest is port ( clT: in stdElogic4 sB : in stdElogicE.ector(J doBnto 6#4 an : out stdElogicE.ector(; doBnto 6#4 sseg: out stdElogicE.ector(J doBnto 6##4 end =e-EtoEssegEtest4
JJVS-09
71
!rquitectura
arc=itecture Be=a.ioral of =e-EtoEssegEtest is signal inc: stdElogicE.ector(J doBnto 6#4 signal led;$led:$led9$led6:stdElogicE.ector(J doBnto 6#4 begin inc@7sBI94 ssegEunitE6:entit( BorT*=e-EtoEsseg port map(=e-78sB(; doBnto 6#$dp78?6?$sseg78led6#4 ssegEunitE9:entit( BorT*=e-EtoEsseg port map(=e-78sB(J doBnto G#$dp78?6?$sseg78led9#4 ssegEunitE::entit( BorT*=e-EtoEsseg port map(=e-78inc(; doBnto 6#$dp78?9?$sseg78led:#4 ssegEunitE;:entit( BorT*=e-EtoEsseg port map(=e-78inc(J doBnto G#$dp78?9?$sseg78led;#4 dispEunit:entit( BorT*dispEmuport map( clT 78 clT$ reset78?6?$ in678led6$ in9 78 led9$ in:78led:$ in;78led;$ an78an$ sseg78sseg# 4 end Be=a.ioral4
JJVS-09 72
%jercicio
JJVS-09
73
Considere que todos los componentes que forman este dispositi.o (a fueron creados*
JJVS-09 74
Versin completa
% : :; ()
Versin simplificada
% ;
1 exp f
JJVS-09 75
JJVS-09
76
5umador fp
1 exp f
%l e-ponente ( mantisa tienen formato unsigned* La representacin es normali/ada$ el 05B debe ser uno* 5i la magnitud de la operacin es menor que la magnitud no cero normali/ada$ estC deberC ser con.ertida a cero*
JJVS-09
77
DespuFs de una resta pueden surgir ceros despuFs del punto* DespuFs de una resta el resultado puede ser tan pequeDo que deba ser con.ertido a cero* 5i se suman puede surgir un acarreo*
78
JJVS-09
%ntidad
)M
e -p 9(; :6 # e -p Eo ut(; :6 # e -p :(; :6 # fracEo ut(J :6 # frac9 (J :6 # frac: (J :6 # sig n9 sig n: sig nEo ut
fpEadder
JJVS-09 79
<< :nd stage: align smaller number e-pEdiff @7 e-pb < e-ps4 Bit= e-pEdiff select fraca @7 fracs B=en N6666N$ N6N S fracs(J doBnto 9# B=en N6669N$ N66N S fracs(J doBnto :# B=en N6696N$ N666N S fracs(J doBnto :# B=en N6699N$ N6666N S fracs(J doBnto G# B=en N6966N$ N66666N S fracs(J doBnto M# B=en N6969N$ N666666N S fracs(J doBnto H# B=en N6996N$ N6666666N S fracs(J# B=en N6999N$ N66666666N
80
<< ;rd stage: add+substract sum @7 (?6? S fracb# I (?6? S fraca# B=en signb7signs else (?6? S fracb# < (?6? S fraca#4 << Gt= stage: normali/e << count leading 6s lead6 @7 N666N B=en (sum(J#7?9?# else N669N B=en (sum(H#7?9?# else N696N B=en (sum(M#7?9?# else N999N B=en (sum(G#7?9?# else N966N B=en (sum(;#7?9?# else N969N B=en (sum(:#7?9?# else N996N B=en (sum(9#7?9?# else N999N4 << s=ift significand according to leading 6 Bit= lead6 select sumEnorm @7 sum(J doBnto 6# B=en N666N$ sum(H doBnto 6# S ?6? B=en N669N$ sum(M doBnto 6# S N66N B=en N696N$ sum(G doBnto 6# S N666N B=en N699N$ sum(; doBnto 6# S N6666N B=en N966N$ sum(: doBnto 6# S N66666N B=en N969N$ sum(9 doBnto 6# S N666666N B=en N996N$ sum(6# S N6666666N B=en ot=ers4
JJVS-09
Circuito de prueba
<< instantiate fp adder fpEaddEunit: entit( BorT*fpEadder port map( sign978sign9$ sign:78sign:$ e-p978e-p9$ e-p:78e-p:$ frac978frac9$ frac:78frac:$ signEout78signEout$ e-pEout78e-pEout$ fracEout78fracEout #4 << instantiate t=ree instances of =e- decoders << e-ponent ssegEunitE6: entit( BorT*=e-EtoEsseg port map(=e-78e-pEout$ dp78?6?$ sseg78led6#4 << G L5Bs of fraction ssegEunitE9: entit( BorT*=e-EtoEsseg port map(=e-78fracEout(; doBnto 6#$ dp78?9?$ sseg78led9#4 << G 05Bs of fraction ssegEunitE:: entit( BorT*=e-EtoEsseg port map(=e-78fracEout(J doBnto G#$ dp78?6?$ sseg78led:#4 << sign led; @7 N99999996N B=en signEout7?9? else << middle bar N99999999N4 << blanT << instantiate J<seg L%D displa( time<multiple-ing module dispEunit: entit( BorT*dispEmuport map( clT78clT$ reset78?6?$ in678led6$ in978led9$ in:78led:$ in;78led;$ 82 an78an$ sseg78sseg #4 end arc=4
entit( fpEadderEtest is port( clT: in stdElogic4 sB: in stdElogicE.ector(J doBnto 6#4 btn: in stdElogicE.ector(; doBnto 6#4 an: out stdElogicE.ector(; doBnto 6#4 sseg: out stdElogicE.ector(J doBnto 6# #4 end fpEadderEtest4 arc=itecture arc= of fpEadderEtest is signal sign9$ sign:: stdElogic4 signal e-p9$ e-p:: stdElogicE.ector(; doBnto 6#4 signal frac9$ frac:: stdElogicE.ector(J doBnto 6#4 signal signEout: stdElogic4 signal e-pEout: stdElogicE.ector(; doBnto 6#4 signal fracEout: stdElogicE.ector(J doBnto 6#4 signal led;$ led:$ led9$ led6: stdElogicE.ector(J doBnto 6#4 begin << set up t=e fp adder input signals sign9 @7 ?6?4 e-p9 @7 N9666N4 frac9@7 ?9? S sB(9# S sB(6# S N96969N4 sign: @7 sB(J#4 JJVS-09 e-p: @7 N9666N4 frac: @7 ?9? S sB(H doBnto 6#4
%-isten errores en el cdigo fuente$ corregirlos* Verificar que los resultados obtenidos en los displa(s de siete segmentos son los correctos*
JJVS-09
83