请问系统能力大赛cpu频率可以和访存频率不同吗?

如题,虽然大赛的soc框架不能修改,用于访存的也是cpu_clk, 但是可以在cpu_clk传入cpu后再次进行分频吗(将cpuclk设置为较高频率用于访存,在cpu中再次分频)?
已邀请:

邢金璋

赞同来自: XiaoLin

不能。
1.首先,很感谢你的提问。你的提问属于今年大赛的SoC环境里的一个漏洞。
 
2.今年的大赛axi ram具有固定延时,读操作25拍clock。如果按提问中的设计,可以完全将uncore部分的频率设置的很高,但CPU依然运行于低频,由于访存是25拍uncore部分的clk,这会大大降低访存延时。
  这会使得今年的axi ram固定延时失去意义,且给其他设计同时钟的参赛队伍带来了不公平性。
 
3.原本,我们是可以通过增加一个跨时钟域的AXI桥来完全规避这一漏洞:soc_clk固定为100MHz,soc_clk也作为访存的时钟,CPU使用cpu_clk,CPU AXI接口先连接一个cpu_clk到soc_clk的跨时钟域转换桥,再连接到SoC中,这样cpu_clk想定义多少MHz就是多少MHz。
  但是,这一机制会给大赛带来了很大的难度,大多数同学会难以理解跨时钟域,更重要的是:仿真调试,波形会看起特别乱,难以调试。
  综合考虑,我们决定,今年依然采用cpu和soc使用同一时钟的方法,不引入跨时钟域的设计。但是,这样也就导致了提问里出现的漏洞。
 
4.为了避免这一漏洞,我们对参赛队伍都做如下约束:SoC里PLL出来的cpu_clk必须是myCPU运行时的时钟,不允许内部分频后再使用,也就是说myCPU里各寄存器更新的clock一定直接是cpu_clk。如果提交的作品不满足这一要求,相应的功能测试或性能测试分数记为0分。
 
综上:今年大赛未引入跨时钟域的设计,因而存在漏洞:cpu_clk再分频使用可以大大降低访存延迟。为保证公平性,我们统一约定:各参赛队伍不允许将cpu_clk再分频后驱动myCPU。如果提交作品不满足这一要求,相应分数记为0分。

要回复问题请先登录注册