Вы находитесь на странице: 1из 37

university of applied sciences hamburg

Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

Designing Digital Systems with Algorithmic State Machine Charts


An ASM chart is a method of describing the sequential operations of a digital system

which has to implement an algorithm. An algorithm is a well defined sequence of steps that produces a desired sequence of actions and/or calculation results in response to a given sequence of control and data inputs.
ASM charts are similar in appearance to flowcharts used in the early days of com-

puter programming. Unlike the traditional flowchart the ASM chart includes timing information because it implicitly specifies that the FSM steps from one state to another only after each active clock edge. ASM charts are constructed of three elements.

Digital Systems
B. Schwarz

3-1

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

3.1

Graphical ASM Chart-Notations


State entry path Entry path Entry path 0 Input condition 1 Conditional (Mealy) output list Exit path

State name

State code

Unconditional (Moore) output list Exit path

Exit false path

Exit true path

State box: A rectangle describes one state of the synchronous sequential digital system. It

is similar to a circle representing a state of a state diagram. The main difference is that it only has one output transition (exit path). The state block symbol contains a listing of all unconditional actions and (Moore) outputs associated with that state. The outputs are updated concurrently when the state is entered after an active clock edge. Asserted signals are written as: Z which means Z = 1
Digital Systems
B. Schwarz

3-2

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

Registered mathematical operations: COUNT COUNT + 1 ; MULT A * B The activated state will assert the enable signal which causes the counter to increment and the multiplier to operate a multiplicand and a factor. Registered signal assignments: INT_REG INPUT_1 REG A(2:0) @ C(4:0) concatenation.
Condition symbol: A diamond shape contains the input condition on which depends the

branching from a given state. It has one entry point and two exit path. Condition symbols can be concatenated. X means that the input signal X has to be tested. X1 X2 indicates that X1 = X2 = 1 has to be true.
Conditional output box: An oval or rectangular with rounded edges represents an action,

i.e. signal assignment or calculation, that is taken if an input condition is fulfilled. Conditional output boxes are only used to depict Mealy-type outputs. The entry path to the symbol is always from a decision symbol, but its exit path can be either to a state box or to another decision symbol.
Digital Systems
B. Schwarz

3-3

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

ASM Chart Representation of a Simple Moore-Type FSM


Reset Transformation of a state diagram

A X=0 Z=0

X=1

B Z=0

X=0 X=0 C Z=1 X=1 X=1

Digital Systems
B. Schwarz

3-4

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

Reset

Associated ASM chart for a Moore-Type FSM


Output signals Z = 0 are not depicted in order to support transparency!

0
Digital Systems
B. Schwarz

3-5

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

ASM Chart Representation of a simple Mealy-Type FSM


State diagram Reset

X=1 / Z=0 X=0 / Z=0

A
X=0 / Z=0

X=1 / Z=1

It has to be checked which state is of Mooretype or Mealy-Type before transformation can be performed.

Digital Systems
B. Schwarz

3-6

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

Associated ASM Chart

Digital Systems
B. Schwarz

3-7

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

3.2

FSM as a Server's Polling Circuit


A polling circuit for a client-server system with 3 clients has to determine which client

is to be serviced by a server of many clients.


A client i requests service by asserting its service-request flag Ri to the client. In each

clock cycle the polling circuit polls its inputs Ri to determine whether service is being requested and to identify the requesting client having the highest priority.
In general the client having the highest priority is to be serviced. As long as a client

requests for service it will be granted by the polling circuit independently of other client requests.
After a request flag Ri is deasserted the polling circuit will enter the polling state at

least for one clock cycle. No other client's concurrently asserted request will change this FSM behaviour.
Digital Systems
B. Schwarz

3-8

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

Each client has a polling priority level: client0 > client1 > client2. The request Ri with

the highest priority is granted by the polling circuit with the corresponding grant bit Gi. Only one bit Gi a time can be asserted.
The FSM states are called: IDLE, GNT0, GNT1,GNT2. In IDLE state no Gi is as-

serted.
Start with a block diagram and decide which FSM type will be appropriate.

Digital Systems
B. Schwarz

3-9

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

State Diagram for the Polling Circuit


State G2 G1 G0
R2, R1, R0

000 Idle
Reset

100 x10 xx1 GNT2 GNT1 GNT0

Digital Systems
B. Schwarz

3-10

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

State Diagram with Transition Conditions


R2 R1 R0 IDLE R2R1R0
R0 R1 R2 R1 R0 Reset

GNT2 G2
R1

GNT1 G1
R2

R0

GNT0 G0

R3

Digital Systems
B. Schwarz

3-11

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

ASM Chart for the Polling Circuit

Idle

GNT0
0 1

1 0

GNT1
0 0 1

1 0

GNT2

1 0

Digital Systems
B. Schwarz

3-12

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

VHDL Code for the Polling Circuit


-- Polling circuit: client arbiter entity arbiter is port( CLK, RESET : in bit; R: in bit_vector(2 downto 0); -- device requests G: out bit_vector(2 downto 0)); -- device grants end ARBITER; architecture BEHAVIOUR of ARBITER is type STATE_TYPE is (IDLE, GNT0, GNT1, GNT2); -signal STATE, NEXT_STATE: STATE_TYPE; begin REG: process(CLK, RESET) begin if RESET = '1' then STATE <= IDLE after 10 ns; elsif CLK='1' and CLK'event then STATE <= NEXT_STATE after 10 ns; -- present state update end if; end process REG; Digital Systems
B. Schwarz

3-13

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

COMB_LOGIC: process(STATE, R) begin G <= (others=>'0'); -- default output signals case STATE is when IDLE => if R(0) ='1' then NEXT_STATE <= GNT0 elsif R(1) ='1' then NEXT_STATE <= GNT1 elsif R(2) ='1' then NEXT_STATE <= GNT2 else NEXT_STATE <= IDLE after 10 ns; end if; when GNT0 => G(0) <= '1' after 10 ns; if R(0) ='1' then NEXT_STATE <= GNT0 else NEXT_STATE <= IDLE after 10 ns; end if; when GNT1 => G(1) <= '1' after 10 ns; if R(1) ='1' then NEXT_STATE <= GNT1 else NEXT_STATE <= IDLE after 10 ns; end if; Digital Systems
B. Schwarz

after 10 ns; after 10 ns; after 10 ns;

after 10 ns;

after 10 ns;

3-14

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

when GNT2 => G(2) <= '1' after 10 ns; if R(2) ='1' then NEXT_STATE <= GNT2 after 10 ns; else NEXT_STATE <= IDLE after 10 ns; end if; end case; end process; end BEHAVIOUR;

Remark: The polling circuit will always return to the IDLE state for one clock cycle. New requests will be served after one IDLE state cycle. Redesign: Now the server must not serve the same client on two successive clock cycles if another client is requesting service. That means that if client1 is being served, the highestpriority-requesting client of lower priority is served next, if there is one. For example if client2 requests service while client1 is being served, it will be served next regardless of client1's request. The grant output is coded with two bits.
Digital Systems
B. Schwarz

3-15

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

Simulation Result for the Polling Circuit

Digital Systems
B. Schwarz

3-16

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

CPLD Implementation of the Polling Circuit (Xilinx XC95108 PC84)


State encoding default for CPLDs: binary and sequential 2 D-flip-flops "STATE<0>" := "R<0>" * /"STATE<1>".LFBK + "R<2>" * "STATE<1>".LFBK * "STATE<0>".LFBK + "R<2>" * /"R<1>" * /"STATE<1>".LFBK * /"STATE<0>".LFBK "STATE<0>".CLKF = CLK "STATE<0>".RSTF = RESET "STATE<0>".PRLD = GND "STATE<1>" := "R<2>" * "STATE<1>".LFBK * "STATE<0>".LFBK + "R<1>" * /"R<1>" * /"STATE<0>".LFBK + "R<1>" * "STATE<1>".LFBK * /"STATE<0>".LFBK + "R<2>" * /"R<0>" * /"STATE<1>".LFBK * /"STATE<0>".LFBK "STATE<1>".CLKF = CLK "STATE<1>".RSTF = RESET "STATE<1>".PRLD = GND Output forming logic: "G<2>" = "STATE<0>" * "STATE<1>" "G<1>" = /"STATE<0>" * "STATE<1>" "G<0>" = /"STATE<1>".LFBK * "STATE<0>".LFBK Digital Systems
B. Schwarz

Association of state bits and output signals to function blocks: STATE<0>: FB1/17 STATE<1>: FB1/18 G0: FB1/2 G1: FB3/2 G2: FB2/2

"Signal".LFBK describes a generated signal which is feed back to the same function block.
3-17

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

FPGA Implementation Xilinx XC4013XL PQ160

Digital Systems
B. Schwarz

3-18

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

Configurable Logic Block (CLB)

Digital Systems
B. Schwarz

3-19

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

3.3

Shift and Add Multiplier; Data and Control Path


A binary multiplier has to be designed that will compute the 16 bit product of two 8

bit unsigned binary numbers.


Decimal: 13 Multiplicand *11 Multiplier 13 13 143 Product Binary: 1101 *1011 1101 1101 0000 1101 10001111 Product P Multiplicand Multiplier A B

The multiplication algorithm is developed by first examining the "pencil and paper"

algorithm. Consider the product of (1101)2 and (1011)2: Multiplier bits are examined sequentially from right to left. If the multiplier bit is 1, the partial product is the multiplicand, and if the multiplier bit is 0, the partial product is simply 0000. Each new partial product is shifted one bit position to the left before adding it to the total.
Digital Systems
B. Schwarz

3-20

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

Pseudo code to describe the binary multiplication: P=0; for i=0 to n-1 do if Bi=1 then P = P+A; end if; Shift left A; end for; The binary multiplication is based on a

shift left register which has to be filled with the multiplicand A and successive adding of partial products.

The for loop will be realized with a shift right of B for each shift left of A. The multiplication procedure will be started by a signal S after two new operands A

and B have been loaded to registers with the signals LA and LB. The shift and add procedure is finished if the B shift register is filled up with zeros. This will be indicated with the signal DONE.

Digital Systems
B. Schwarz

3-21

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

ASM Chart for the Multiplier Description of the Operation!


0 S2

S1

0 1 1 S3

1 0 0 1 Digital Systems
B. Schwarz

3-22

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

Design of the Multiplier Circuit


Device interfacing: -- NxN serial Multiplier library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; -- unsigned number representation entity MULTIPLIER is generic( N:integer:=8; NN:integer:=16); -port( CLK, RESET : in bit; LA, LB, S: in bit; A,B: in std_logic_vector(N-1 downto 0); P: out std_logic_vector(NN-1 downto 0); DONE: out bit); end MULTIPLIER; input width, output width ----load and start signal N-bit operands result with double width status signal

Digital Systems
B. Schwarz

3-23

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

Partitioning of Digital Circuits


At the beginning a digital systems design flow the digital circuit will be partitioned into the

control logic and the data path section. It is appropriate to separate both parts because to each part different design strategies and optimisation methods can be applied.
Data Input

Data Path ALU Steering - Memory


Status Control Signals

Data Output

State Register

Control Input

Next State and Output Forming Logic

Control Unit
Digital Systems
B. Schwarz

Control Output

3-24

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

Partitioning a Systems belongs to Architectural Synthesis

Architectural synthesis means constructing a macroscopic structure of a digital hardware. The process starts with behavioural models that are described by mathematical equations and ASM charts. The first outcome of architectural synthesis is the structural view of the hardware as a combination of two components: Data path section and the control logic section. The data path section is an interconnection of resources which implement arithmetic and logic functions such as adders, multipliers, comparators, registers and steering logic (multiplexers and busses) as well. The control logic section consists of all logic required to generate control signals for ALU functions. It receives status signals from the data path and sends back control signals to the data path. Synchronous finite state machines usually build up the control unit.
Digital Systems
B. Schwarz

3-25

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

The second outcome of architectural synthesis is the placing of data path operations in time and place. That means determining the time interval for their execution and their binding to resources. The interconnections of the data path to the sequence of control unit operations have also to be determined. The final result will be a so called register transfer level (RTL) description of components which consist of register models interconnected by combinational logic elements. Typical HDL syntax elements which are used for this description style will be logic expressions (and, or) and behavioural decisions with if-then-else and case-when expressions.

Digital Systems
B. Schwarz

3-26

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

LA EA CLK

A LB EB

n SRG right n
B_INT

SRG left 2n
A_INT P_INT

+
SUM PSEL MX_P EP

1 2n 2n 2n 0 2n
Z B0

Register
P

Data path for the multiplier

Digital Systems
B. Schwarz

3-27

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

The components of the multipliers data path serve following functions: A shift left register that holds the multiplicand A has a width of 2n bit. The upper n bits will be initialised with '0's and a '0' is shifted in from the right (LSB) end (comp. the paper and pencil example). A synchronous load of the shift left register is controlled by the LA signal. Shifting will be enabled by the EA signal. A 2n bit register holds the product P (result register). Partial products are stored under control of a clock enable input EP In combination with an 2n bit adder the result register builds an partial product accumulator. The result register P has to be initialised with zero in order to start with a second addend equal to zero. This is realised with a multiplexer in the registers input path. A select signal PSEL performs the channel switching.
Digital Systems
B. Schwarz

3-28

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

The multiplier B is stored in a n bit shift right register. Synchronous load is controlled by LB and shifting is enabled with EB. The LSB B0 is a status signal. The product will be computed by adding the multiplicand to the current total in register P when the tested multiplier bit B0 is 1. Instead of adding a partial product zero ( 2n '0's) to the total P when the multiplier bit '0' the addition step will simply be omitted. The end of multiplication is indicated by B = '0' i.e. with NOR gate output Z.

Digital Systems
B. Schwarz

3-29

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

VHDL Model for the Data Path


architecture BHAVIOUR of MULTIPLIER is type STATE_TYPE is (S1, S2, S3); -- enumeration state type signal STATE, NEXT_STATE: STATE_TYPE; -signal P_INT, SUM, MX_P: std_logic_vector(NN-1 downto 0); -- data path signals signal PSEL, Z, EA, EB, EP: bit; -- control- and status signals signal ZEROS: std_logic_vector(N-1 downto 0); signal B_INT: std_logic_vector(N-1 downto 0); -- multiplier shift right register signal A_INT: std_logic_vector(NN-1 downto 0); -- multiplicand shift left reg. begin -- ======================== data path ========================== ZEROS <= (others =>'0'); SHL_REG: process(CLK) -- shift left register begin if CLK='1'and CLK'event then if EA ='1' then if LA = '1' then -- synchronousload A_INT <= ZEROS & A after 10 ns; else A_INT <= A_INT(NN-2 downto 0) & '0' after 10 ns; -- shift end if; end if; end if; end process SHL_REG;

Digital Systems
B. Schwarz

3-30

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

SHR_REG: process(CLK) -- shift right register begin if CLK='1'and CLK'event then if EB ='1' then if LB = '1' then -- synchronous load B_INT <= B after 10 ns; else B_INT <= '0' & B_INT(N-1 downto 1) after 10 ns; -- shift end if; end if; end if; end process SHR_REG; MUX: process(SUM, PSEL) -- multiplexer begin if PSEL = '0' then -- initialisation of result register MX_P <= (others=>'0') after 10 ns; else MX_P <= SUM after 10 ns; end if; end process MUX;

Digital Systems
B. Schwarz

3-31

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

P_REG: process(CLK) -- result register begin if CLK='1' and CLK'event then if EP='1' then P_INT <= MX_P after 10 ns; end if; end if; end process P_REG; ZERO_IND: process(B_INT, ZEROS) begin if B_INT = ZEROS then Z <= '1' after 10 ns; else Z <= '0' after 10 ns; end if; end process ZERO_IND; -- concurrent assignment : SUM <= A_INT + P_INT after 10 ns; P <= P_INT; --zero indication in B

-- adder -- avoid buffer port mode

Digital Systems
B. Schwarz

3-32

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

RESET S1

0 0 1 0 1 0 1 S2 1 S3

1 0

Control unit of the multiplier

1 Digital Systems
B. Schwarz

3-33

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

Comments on the Controller FSM State S1: Initialisation of P with zeros: PSEL='0' (default) and EP='1'. Both shift register will be loaded if input signals LA and LB indicate a new multiplicand A and a new multiplier B and start bit S is '0': Enable with EA and EB. A transition to state S2 takes place if the start bit S is asserted. State S2: Shifting in both input registers is enabled by asserted signals EA and EB. An adder result SUM is connected to the output register with select bit PSEL equals '1'. No adder result will be registered if the LSB B0 is '0'. A transition to state S3 is prepared by Z='1' if all bits in input register B are zero. State S3: Output status signal DONE is asserted. A return to the idle state S1 is controlled by start bit S='0'.
-- ========== control unit architecture continued ======================
FSM_REG: process(CLK, RESET) -- state register begin if RESET = '1' then STATE <= S1 after 10 ns; elsif CLK='1' and CLK'event then STATE<= NEXT_STATE after 10 ns; end if; end process FSM_REG;

Digital Systems
B. Schwarz

3-34

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

COMB_LOGIC: process(STATE, S, Z, LA, LB, B_INT(0)) begin EA<='0' after 10 ns; --default outputs avoid latches EB<='0' after 10 ns; EP<='0' after 10 ns; DONE<='0' after 10 ns; PSEL<='0' after 10 ns; case STATE is when S1 => EP <='1' after 10 ns; --Moore output PSEL <= '0' after 10 ns; if S='0' then NEXT_STATE <= S1 after 10 ns; if LA='1' then EA <= '1' after 10 ns; end if; --Mealy if LB='1' then EB <= '1' after 10 ns; end if; --output else NEXT_STATE <= S2 after 10 ns; end if; when S2 => EA <= '1' after 10 ns; -- unconditional shift enable EB <= '1' after 10 ns; PSEL <= '1' after 10 ns; -- adder connected to register

Digital Systems
B. Schwarz

3-35

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

if Z='0' then NEXT_STATE <= if B_INT(0) = else NEXT_STATE <= end if; when S3 => DONE <= '1' after if S='1' then NEXT_STATE <= else NEXT_STATE <= end if; end case; end process COMB_LOGIC; end BEHAVIOUR;

S2 after 10 ns; '1' then EP <= '1' after 10 ns; end if; S3 after 10 ns; 10 ns; -- unconditional signal assignment S3 after 10 ns; S1 after 10 ns;

Digital Systems
B. Schwarz

3-36

university of applied sciences hamburg


Prof. Dr. J. Reichardt Prof. Dr. B. Schwarz DEPARTEMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

VHDL Simulation Results of the Shift and Add Multiplier (0x64*0x19 = 0x9C4)

Digital Systems
B. Schwarz

3-37

Вам также может понравиться