PART 2



Design_Environments

Design_environments




Design_environments




Design_environments




Design_environments



Design entry

Simulation

Synthesis

Test generation


Design_environments.HDLs



Behavioral
Describes System Behavioral

Dataflow
Describes System at Register and Bus Level

Structural
Describes System at Component Level


Design_environments.HDLs



mark1 :=
BEGIN

m[0:8191]<31:0>,
pi\present.instruction<15:0>,
f\function<0:2> := pi<15:13>,
s<0:12> := pi<12:0>,
cr\control.register<12:0>,
acc\accumulator<31:0>,
MAIN i.cycle :=
BEGIN
pi = m[cr]<15:0> NEXT
DECODE f =>
BEGIN
0\jmp := cr = m[s],
1\jrp := cr = cr + m[s],
2\ldn := acc = - m[s],
3\sto := m[s] = acc,
4:5\sub := acc = acc - m[s],
6\cmp := IF acc LSS 0 => cr = cr + 1,
7\stp := STOP(),
END NEXT
cr = cr + 1 NEXT
RESTART i.cycle
END


Design_environments.HDLs



AHPLMODEL: multiplier.
MEMORY: ac1[4]; ac2[4]; count[2]; extra[4]; busy.
EXINPUTS: dataready.
EXBUSES: inputbus[8].
OUTPUTS: result[8]; done.
CLUNITS: INC[2](count); ADD[5](extra; ac2);
1 ac1 <= inputbus[0:3]; ac2 <= inputbus[4:7];
extra <= 4$0;
=> (~ ^dataready)/(1).
2 busy <= \1\;
=> (~ ^ac1[3])/(4).
3 extra <= ADD[1:4](extra; ac2).
4 extra, ac1 <= \0\, extra, ac1[0:2];
count <= INC(count);
=> (^(&/count))/(2).
5 result = extra, ac1; done = \1\; busy <= \0\;
=> (1).
END SEQUENCE
CONTROLLERS(1).
END.


Design_environments.HDLs




Design_environments.HDLs



CCT full_adder (a, b, c, s, co)
XOR (RISE = 16, FALL = 12)
g1 (w1, a, b),
g2 (s, w1, c);
AND (RISE4 = 12, FALL = 10)
g2 (w2, c, b),
g3 (w3, c, a),
g4 (w4, b, a);
OR (RISE = 12, FALL = 10)
g6 (co, w2, w3, w4);
INPUT a, b, c;
WIRE w1, w2, w3, w4;
OUTPUT s, co;
END CIRCUIT full_adder


Design_environments.tools



Simulation:
Describe system and operation

Synthesis:
Describe system and automatically generate hardware


Design_environments.tools. simulation




Design_environments.tools. simulation




Design_environments.tools. simulation




Design_environments.tools. simulation