This file is intended to be loaded by Logisim-evolution (https://github.com/reds-heig/logisim-evolution).
addr/data: 8 8
0
addr/data: 8 8
0
--------------------------------------------------------------------------------
-- HEIG-VD, institute REDS, 1400 Yverdon-les-Bains
-- Project :
-- File :
-- Autor :
-- Date :
--
--------------------------------------------------------------------------------
-- Description :
--
--------------------------------------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
--use ieee.numeric_std.all;
entity VHDL_Component is
port(
------------------------------------------------------------------------------
--Insert input ports below
horloge_i : in std_logic; -- input bit example
val_i : in std_logic_vector(3 downto 0); -- input vector example
------------------------------------------------------------------------------
--Insert output ports below
max_o : out std_logic; -- output bit example
cpt_o : out std_logic_Vector(3 downto 0) -- output vector example
);
end VHDL_Component;
--------------------------------------------------------------------------------
--Complete your VHDL description below
architecture type_architecture of VHDL_Component is
begin
end type_architecture;
library ieee;
use ieee.std_logic_1164.all;
entity TCL_Generic is
port(
--Insert input ports below
horloge_i : in std_logic; -- input bit example
val_i : in std_logic_vector(3 downto 0); -- input vector example
--Insert output ports below
max_o : out std_logic; -- output bit example
cpt_o : out std_logic_Vector(3 downto 0) -- output vector example
);
end TCL_Generic;
state_machine example @[50,50,800,500]{
in A[3] @[50,100,44,15];
out X[4] @[807,140,43,15];
codeWidth = 2;
reset = S0;
state S0["01"]:
@[297,181,30,30]
set X="0001"; @[297,181,30,30]
goto S3 when (A=="000") @[346,269,68,21];
goto S1 when default @[432,151,50,21];
state S1["10"]:
@[470,186,30,30]
set X="0010"; @[470,186,30,30]
goto S0 when (A=="000") @[399,230,68,21];
goto S2 when default @[533,276,50,21];
state S2["00"]:
@[471,339,30,30]
set X={"00",A[0:1],"1"}; @[471,339,30,30]
goto S1 when (A[2:1]=="11") @[557,250,90,21];
goto S3 when default @[392,398,50,21];
state S3["11"]:
@[287,325,30,30]
set X="1000"; @[287,325,30,30]
goto S2 when (A=="000") @[388,313,68,21];
goto S0 when default @[248,278,50,21];
}
state_machine example @[73,58,800,500]{
in Lhit[1] @[73,303,26,15];ACK[1] @[73,349,30,15];
out MEM[1] @[841,194,32,15];REQ[1] @[841,280,32,15];C[4] @[835,352,38,15];
codeWidth = 4;
reset = BIGBANG;
state C0["0000"]:
@[210,125,30,30]
set C="0001"; @[210,125,30,30]
goto C1 when (/Lhit) @[316,166,37,22];
goto S5 when Lhit @[209,210,26,22];
state C1["0001"]:
@[393,151,30,30]
set C="0010"; @[393,151,30,30]
goto C2 when (/Lhit) @[503,184,37,22];
goto S6 when Lhit @[416,226,26,22];
state C2["0010"]:
@[572,184,30,30]
set C="0100"; @[572,184,30,30]
goto C3 when (/Lhit) @[670,199,37,22];
goto S7 when Lhit @[584,247,26,22];
state C3["0011"]:
@[739,181,30,30]
set C="1000"; @[739,181,30,30]
goto S8 when Lhit @[763,249,26,22];
goto C0 when (/Lhit) @[484,95,37,22];
state BIGBANG["0100"]:
@[70,116,30,30]
goto C0 when default @[187,109,43,22];
state S5["0101"]:
@[195,256,30,30]
set MEM="1";C="0001"; @[195,256,30,30]
goto S9 when default @[204,327,43,22];
state S6["0110"]:
@[413,269,30,30]
set MEM="1";C="0010"; @[413,269,30,30]
goto S10 when default @[431,323,43,22];
state S7["0111"]:
@[567,287,30,30]
set MEM="1";C="0100"; @[567,287,30,30]
goto S11 when default @[582,348,43,22];
state S8["1000"]:
@[739,292,30,30]
set MEM="1";C="1000"; @[739,292,30,30]
goto S12 when default @[755,364,43,22];
state S9["1001"]:
@[157,357,30,30]
set REQ="1";MEM="0";C="0001"; @[157,357,30,30]
goto S13 when (ACK.(/Lhit)) @[204,442,72,22];
state S10["1010"]:
@[419,362,30,30]
set REQ="1";MEM="0";C="0010"; @[419,362,30,30]
goto S13 when (ACK.(/Lhit)) @[326,424,72,22];
state S11["1011"]:
@[568,389,30,30]
set REQ="1";MEM="0";C="0100"; @[568,389,30,30]
goto S13 when (ACK.(/Lhit)) @[410,444,72,22];
state S12["1100"]:
@[746,416,30,30]
set REQ="1";MEM="0";C="1000"; @[746,416,30,30]
goto S13 when (ACK.(/Lhit)) @[500,474,72,22];
state S13["1101"]:
@[150,488,30,30]
set REQ="0";MEM="0";C="0000"; @[150,488,30,30]
goto C0 when (/ACK) @[125,301,41,22];
}
state_machine calculatrice_UC @[50,50,1000,800]{
in REQ[1] @[50,191,32,15];key[4] @[50,236,47,15];isDigit[1] @[50,280,41,15];nxt_op[4] @[50,327,65,15];
out ACK[1] @[1020,99,30,15];showA[1] @[1007,129,43,15];showB[1] @[1006,166,44,15];SelIn1[1] @[1009,203,41,15];WEA[1] @[1018,245,32,15];WEB[1] @[1017,279,33,15];SelB[1] @[1018,335,32,15];SelA[1] @[1019,368,31,15];Op[2] @[1005,413,45,15];WENxt[1] @[1008,445,42,15];Selnxt[1] @[1011,482,39,15];
codeWidth = 4;
reset = INIT;
state INIT["0000"]:
@[137,124,30,30]
}
state_machine example @[50,50,800,500]{
in REQ[1] @[50,206,32,15];
out ACK[1] @[820,236,30,15];
codeWidth = 2;
reset = S2;
state S0["00"]:
@[169,213,30,30]
set ACK="0"; @[169,213,30,30]
goto S1 when REQ @[309,219,32,22];
state S1["01"]:
@[427,209,30,30]
set ACK="1"; @[427,209,30,30]
goto S0 when (/REQ) @[318,339,43,22];
state S2["10"]:
@[75,115,30,30]
goto S0 when default @[138,178,43,22];
}