前面在講 pipeline 的時候
大家應該有發現 single issue 的設計有讓整個 pipeline 更好擴充
這次擴展 In Order CPU 把它變成 dual issue
rtl 的部分只是多了 rtl/tops/tiny5_dual_inorder.sv
順帶擴充了 systemC 的部分,讓他也支援 dual issue in order CPU
只加上 dual issue CPU 實作,會發現 cycle count 對不起來:
4: [PASS] random arithmetic seed 1 [normal] rtl_cycles=2984 systemc_cycles=3011 retired=256
4: [PASS] random arithmetic seed 1 [stalled] rtl_cycles=3133 systemc_cycles=3158 retired=256
4: [PASS] random arithmetic seed 2 [normal] rtl_cycles=2923 systemc_cycles=2949 retired=256
4: [PASS] random arithmetic seed 2 [stalled] rtl_cycles=3059 systemc_cycles=3082 retired=256
這次加上 systemC 的 dual issue C-model,就對得上了:
5: [PASS] random arithmetic seed 1 [normal] rtl_cycles=2984 systemc_cycles=2984 retired=256
5: [PASS] random arithmetic seed 1 [stalled] rtl_cycles=3133 systemc_cycles=3133 retired=256
5: [PASS] random arithmetic seed 2 [normal] rtl_cycles=2923 systemc_cycles=2923 retired=256
5: [PASS] random arithmetic seed 2 [stalled] rtl_cycles=3059 systemc_cycles=3059 retired=256
git link with tag: https://github.com/hsufit/TINY5_OOO/tree/ithome2026_D13