此次project因为电路图并不完整
所以有关branch之data dependent问题的实作可以不用考虑
而关于branch之control hazard可以用stall(不管branch有没有发生)
或flush(当branch发生)都可以,可能会引响到结果的cycle count
但只要不影响正确性就好 (report中需说明control hazard做法)
以下之范例
是有做branch的data forwarding
control hazard用flush实作的结果
我每个cycle都有把是否stall或是否flush印出来
大家可以参考
demo时只要结果对
cycle count如有不同, 只要说明合理就算对
http://140.112.31.138/temp/instruction.txt
http://140.112.31.138/temp/output.txt
补充:
PC, pipeline register为当start为1, posedge clock时写入,
Register file为 negedge clock写, always 读
Data Memory为posedge clock读写
Instruction Memory为posedge clock读
如果有不同的做法, 请写在你们的report中