background image

Appendix C. Segments of Code

84

- - - - - - - - - - - - - - L I B R A R I E S - - - - - - - - - - - - - - - - - - - - - - - - - - -
l i b r a r y i e e e ;
use i e e e . s t d _ l o g i c _ 1 1 6 4 . all ;

e n t i t y R T L _ t e s t is

p o r t (

A : in s t d _ l o g i c ;
B : in s t d _ l o g i c ;
A _ o u t : out s t d _ l o g i c ;
B _ o u t : out s t d _ l o g i c ;
clk : in s t d _ l o g i c ;
r e s e t : in s t d _ l o g i c

);

end ;

a r c h i t e c t u r e rtl of R T L _ t e s t is

c o m p o n e n t r e g i s t e r _ 1 _ b i t is

p o r t (

d

: in s t d _ l o g i c ;

r e s e t

: in s t d _ l o g i c ;

e n a b l e : in s t d _ l o g i c ;

clk

: in s t d _ l o g i c ;

q

: out s t d _ l o g i c

);

end c o m p o n e n t ;

s i g n a l c l k _ f e : s t d _ l o g i c ;

s i g n a l R A 1 t o R A 2 : s t d _ l o g i c ;
s i g n a l R A 2 t o R A 3 : s t d _ l o g i c ;
s i g n a l R A 3 t o R A 4 : s t d _ l o g i c ;
s i g n a l R A 4 t o R A 5 : s t d _ l o g i c ;

s i g n a l R B 1 t o R B 2 : s t d _ l o g i c ;
s i g n a l R B 2 t o R B 3 : s t d _ l o g i c ;
s i g n a l R B 3 t o R B 4 : s t d _ l o g i c ;
s i g n a l R B 4 t o R B 5 : s t d _ l o g i c ;
s i g n a l R B 5 t o R B 6 : s t d _ l o g i c ;
s i g n a l R B 6 t o R B 7 : s t d _ l o g i c ;

b e g i n
p r o c e s s ( clk )
b e g i n

if ( clk ’ e v e n t and clk = ’1 ’) t h e n

c l k _ f e

<= ’0 ’;

e l s i f ( clk ’ e v e n t and clk = ’0 ’) t h e n

c l k _ f e

<= ’1 ’;

end if ;

end p r o c e s s ;

RA1 : r e g i s t e r _ 1 _ b i t p o r t map ( A , reset , ’1 ’ , clk , R A 1 t o R A 2 );
RA2 : r e g i s t e r _ 1 _ b i t p o r t map ( R A 1 t o R A 2 , reset , ’1 ’ , clk , R A 2 t o R A 3 );
RA3 : r e g i s t e r _ 1 _ b i t p o r t map ( R A 2 t o R A 3 , reset , ’1 ’ , clk , R A 3 t o R A 4 );
RA4 : r e g i s t e r _ 1 _ b i t p o r t map ( R A 3 t o R A 4 , reset , ’1 ’ , clk , R A 4 t o R A 5 );
RA5 : r e g i s t e r _ 1 _ b i t p o r t map ( R A 3 t o R A 4 , reset , ’1 ’ , clk , A _ o u t );

RB1 : r e g i s t e r _ 1 _ b i t p o r t map ( B , reset , ’1 ’ , clk , R B 1 t o R B 2 );
RB2 : r e g i s t e r _ 1 _ b i t p o r t map ( R B 1 t o R B 2 , reset , ’1 ’ , clk_fe , R B 2 t o R B 3 );
RB3 : r e g i s t e r _ 1 _ b i t p o r t map ( R B 2 t o R B 3 , reset , ’1 ’ , clk , R B 3 t o R B 4 ); - - rf
RB4 : r e g i s t e r _ 1 _ b i t p o r t map ( R B 3 t o R B 4 , reset , ’1 ’ , clk , R B 4 t o R B 5 ); - - r4
RB5 : r e g i s t e r _ 1 _ b i t p o r t map ( R B 4 t o R B 5 , reset , ’1 ’ , clk_fe , R B 5 t o R B 6 ); - - r8
RB6 : r e g i s t e r _ 1 _ b i t p o r t map ( R B 5 t o R B 6 , reset , ’1 ’ , clk , R B 6 t o R B 7 ); - - mem
RB7 : r e g i s t e r _ 1 _ b i t p o r t map ( R B 6 t o R B 7 , reset , ’1 ’ , clk_fe , B _ o u t ); - - r11

end ;

Figure C.2: The RTL mirror design