Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2014
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. /*
  2. SC_MODULE(BCD_C)
  3. {
  4. sc_in_clk Clk;
  5. sc_in<sc_logic> Reset;
  6. sc_out<sc_lv<4> > Q1, Q0;
  7.  
  8. sc_uint<4> digit1, digit0;
  9.  
  10.  
  11. void bcd_count()
  12. {
  13. while(1)
  14. {
  15. if (Reset.read() == SC_LOGIC_0)
  16. {
  17. digit1 = 0;
  18. digit0 = 0;
  19. }else{
  20. if (digit0 == 9)
  21. {
  22. digit0 = 0;
  23.  
  24. if(digit1 == 9)
  25. { digit1 = 0;
  26. }else{
  27.  
  28. digit1++;
  29. }
  30. }else{
  31. digit0++;
  32. }
  33. }
  34. Q0 = digit0; Q1 = digit1;
  35. wait ();
  36. }
  37. };
  38.  
  39. SC_CTOR (BCD_C)
  40. {
  41. SC_THREAD (bcd_count);
  42. sensitive_pos << Clk; sensitive_neg << Reset;
  43. }
  44. };
  45.  
  46. SC_MODULE(BCD_TESTBNCH)
  47. {
  48. sc_clock Clk;
  49. sc_signal<sc_logic> Reset;
  50. sc_signal<sc_lv<4> > Q1, Q0;
  51.  
  52. BCD_C count;
  53.  
  54. void sc_main_body ()
  55. {
  56. Reset = SC_LOGIC_0;
  57. wait(0, SC_NS);
  58.  
  59. Reset = SC_LOGIC_1;
  60. wait(20, SC_NS);
  61.  
  62. Reset = SC_LOGIC_0;
  63. wait(290, SC_NS);
  64.  
  65. Reset = SC_LOGIC_1;
  66. wait();
  67. }
  68. SC_CTOR(BCD_TESTBNCH)
  69.  
  70. : count("count"), Clk("clk", 10, SC_NS, 0.5, 0.0, SC_NS, false)
  71. {
  72. count.Clk
  73. (Clk.signal());
  74.  
  75. count.Reset(Reset);
  76. count.Q1(Q1);
  77. count.Q0(Q0);
  78.  
  79. Reset = SC_LOGIC_0;
  80. Q1 = (sc_lv<4>)"0000"; Q0 = (sc_lv<4>)"0000";
  81.  
  82. SC_THREAD (sc_main_body);
  83. }
  84. };
  85.  
  86. SC_MODULE_EXPORT(BCD_TESTBNCH)
  87. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement