Electrónica Digital 1. Código en VHDL de multiplicador de 4 bits por p or 4 bits.
library ieee; use ieee.std_logic_1164.all; entity mult4bits is port( A,B A,B in std_ std_lo logi gic_ c_!e !ect ctor or(" (" do#n do#nto to $%; $%; m out out std std_lo _logic_ gic_!e !ect ctor or((' do# do#nto nto $% %; end mult4bits;
&&nu &&nume merros entr entrad ada a && mult multip ipli lica caci cio on
arcitecture arcitecture mmm o) mult4bits is signal ),g,,i,*,+ std_logic_!ector(4 std_logic_!ector(4 do#nto do#nto 1%; && seales seales intermedias signal s,-,r std_logic_!ector(" do#nto $%; signal ci,co,c1,c,ro std_logic; component sumador port( A,B in std_logic_!ector(" do#nto $%; ci in std_logic; co out std_logic; s out std_logic_!ector(" do#nto $% %; end component; begin ci/0$; ro/0 A($% A2D B($%; numero g(1%/0A($% A2D B(1% ; g(%/0A($% A2D B(% ; g("%/0A($% A2D B("% ; g(4%/0 $; )(1%/0A(1% )(%/0A(1% )("%/0A(1% )(4%/0A(1%
A2D A2D A2D A2D
B($% B(1% B(% B("%
; ; ; ;
(1%/0A(% (%/0A(% ("%/0A(% (4%/0A(%
A2D A2D A2D A2D
B($% B(1% B(% B("%
; ; ; ;
*(1%/0A("% A2D A2D *(%/0A("% A2D A2D *("%/0A("% A2D A2D *(4%/0A("% A2D A2D
B($% B(1% B(% B("%
; ; ; ;
&& multiplicacion de numero por
&&se ace la primer suma parcial Rocío Guadalupe Hernández Jaime.
Electrónica Digital 1.
sum1 sumador port map(),g,ci,c1,s%; i(1%/0 s(1%; i(%/0 s(%; i("%/0 s("%; i(4%/0 c1; sum sumador port map(,i,ci,c,-%; && segunda suma parcial +(1%/0-(1%; +(%/0-(%; +("%/0-("%; +(4%/0c; sum" sumador port map (*,+,ci,co,r%; && tercer suma y resultados &&resultado de la multiplicacion. m($%/0ro; m(1%/0s($%; m(%/0-($%; m("%/0r($%; m(4%/0r(1%; m(3%/0r(%; m(6%/0r("%; m('%/0co; end mmm;
Sumador:
library ieee; use ieee.std_logic_1164.all; entity sumador is&&lo cambie a sumador de 4 bits con acarreo % port( A,B in std_logic_!ector(" do#nto $%; && sumandos ci in std_logic; && acarreo de entrada co out std_logic; && acarreo de salida s out std_logic_!ector(" do#nto $% && suma %; end sumador; arcitecture recurrente o) sumador is signal c std_logic_!ector(4 do#nto $%; && acarreos intermedios begin process(A,B,c,ci%
Rocío Guadalupe Hernández Jaime.
Electrónica Digital 1. begin c($%/0ci; &&acarreo de entrada )or i in $ to " loop s(i%/0 (A(i% or B(i%% or c(i%; && suma recurrente c(i51%/0 ((A(i%and B(i%%or (A(i%and c(i%%% or (B(i%and c(i%%; && acarreo recurrente end loop; end process; co/0c(4%; end recurrente;
Rocío Guadalupe Hernández Jaime.