add SR latch cxxrtl backend demo
[soc.git] / src / soc / experiment / sr / sr_driver.cc
1 #include <stdio.h>
2
3 #include "sr.cc"
4
5 cxxrtl_design::p_top top;
6
7 void step() {
8 top.step();
9 fprintf(stderr, "SET %d CLR %d Q %d\n",
10 top.p_sr__set.data[0], top.p_sr__clr.data[0], top.p_q.data[0]);
11 }
12
13 int main() {
14 step();
15
16 top.p_sr__set = value<3>{3u};
17 step(); // set bits 0 & 1
18
19 top.p_sr__set = value<3>{0u};
20 top.p_sr__clr = value<3>{1u};
21 step(); // clear bit 0
22
23 top.p_sr__clr = value<3>{0u};
24 step(); // retain latched value
25
26 top.p_sr__set = value<3>{2u};
27 top.p_sr__clr = value<3>{2u};
28 step(); // clear bit 1, since CLR has priority over SET
29
30 return 0;
31 }