ためになるホームページ お問い合わせ




TOP > SystemC > シフトレジスタ
シフトレジスタ
クロックの立ち上がりで、1ビットの入力を最下位ビットに付加する。クロックのエッジ毎に保持しているビットを1ビットずつ左シフトする。ちなみに、右シフト版はCPUの乗算で使用される。

シフトレジスタの例
class SHIFT_REG : public sc_module
{
public:
  sc_in_clk    C;           //CLK
  sc_in<bool>  R;           //Reset
  sc_in<bool>  D;           //Set
  sc_out<sc_uint<4> > Q;    //Output


  SC_HAS_PROCESS(SHIFT_REG);
  SHIFT_REG(sc_module_name name) : sc_module(name)
  {
    SC_THREAD(main);
    sensitive >> C.pos();
  }

  void main(void)
  {
    while (1)
    {
      if (R.read() == HIGH) Q.write(0x0); //Reset
      else Q = (Q.read().range(2, 0), D.read());
      wait();
    }
  }
};






Copyright 2007 ためになるホームページ All Rights Reserved.