Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- SC_MODULE(BCD_C)
- {
- sc_in_clk Clk;
- sc_in<sc_logic> Reset;
- sc_out<sc_lv<4> > Q1, Q0;
- sc_uint<4> digit1, digit0;
- void bcd_count()
- {
- while(1)
- {
- if (Reset.read() == SC_LOGIC_0)
- {
- digit1 = 0;
- digit0 = 0;
- }else{
- if (digit0 == 9)
- {
- digit0 = 0;
- if(digit1 == 9)
- { digit1 = 0;
- }else{
- digit1++;
- }
- }else{
- digit0++;
- }
- }
- Q0 = digit0; Q1 = digit1;
- wait ();
- }
- };
- SC_CTOR (BCD_C)
- {
- SC_THREAD (bcd_count);
- sensitive_pos << Clk; sensitive_neg << Reset;
- }
- };
- SC_MODULE(BCD_TESTBNCH)
- {
- sc_clock Clk;
- sc_signal<sc_logic> Reset;
- sc_signal<sc_lv<4> > Q1, Q0;
- BCD_C count;
- void sc_main_body ()
- {
- Reset = SC_LOGIC_0;
- wait(0, SC_NS);
- Reset = SC_LOGIC_1;
- wait(20, SC_NS);
- Reset = SC_LOGIC_0;
- wait(290, SC_NS);
- Reset = SC_LOGIC_1;
- wait();
- }
- SC_CTOR(BCD_TESTBNCH)
- : count("count"), Clk("clk", 10, SC_NS, 0.5, 0.0, SC_NS, false)
- {
- count.Clk
- (Clk.signal());
- count.Reset(Reset);
- count.Q1(Q1);
- count.Q0(Q0);
- Reset = SC_LOGIC_0;
- Q1 = (sc_lv<4>)"0000"; Q0 = (sc_lv<4>)"0000";
- SC_THREAD (sc_main_body);
- }
- };
- SC_MODULE_EXPORT(BCD_TESTBNCH)
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement