quick.gif

space2.gif

space2.gif

space2.gif

space2.gif

space2.gif

space2.gif

space2.gif

   

space.gif

   

space.gif

  ../images/main/bulllet_4dots_orange.gif Resolved Logic Vectors

In real hardware, there are times when we need to model tristate bus. So that multiple agents can drive same bus. Like PCI bus or Microprocessor 8085 address and data bus.

   

space.gif

To help with this SystemC provides Resovled Logic Vectors. In this agent which is driving 0, 1 win's the bus. In the below image, we have Module A driving 1 and Module B driving Z. Resolve signal Y gets 1.

   

space.gif

../images/systemc/resolve_vector.gif
   

space.gif

When Module A drives 1 and Module B drives 0, then output Y is X. X denotes Unknown value.

   

space.gif

   

space.gif

  ../images/main/bullet_star_pink.gif Resolve of Logic Values
   

space.gif

0

1

Z

X

0

0

X

0

X

1

X

1

1

X

Z

0

1

Z

X

X

X

X

X

X

   

space.gif

  ../images/main/bullet_star_pink.gif Example : Resolved Logic Vectors
   

space.gif


  1 #include <systemc.h>
  2 
  3 SC_MODULE(module_A) {
  4   sc_in_rv<1>  in;
  5   sc_out_rv<1> out;
  6   sc_inout_rv<4> inout;
  7 
  8   void body () {
  9     out.write(in);
 10     if (in.read() == 1) {
 11       out.write(1);
 12       inout.write(rand());
 13     } else {
 14       out.write('z');
 15       inout.write('zzzz');
 16     }
 17   }
 18  
 19   SC_CTOR(module_A) {
 20     SC_METHOD(body);
 21       sensitive << in;
 22   }
 23 };
You could download file resolve.cpp here
   

space.gif

   

space.gif

   

space.gif

   

space.gif

space2.gif

space2.gif

space2.gif

space2.gif

space2.gif

  

Copyright © 1998-2014

Deepak Kumar Tala - All rights reserved

Do you have any Comment? mail me at:deepak@asic-world.com