计数器
1、基于SpinalHDL的多端口仲裁的设计
》最低优先级调度
SpinalHDL中关于roundRobin的实现背后原理其实一开始困惑挺久,后来方慢慢理解。在讲解roundRobin之前,先来看看lowerFirst讲起。
假定N个端口,编号为0~N-1。在采用最低优先级调度时,当有任务到来时,优先取最低端口的任务调度。
如果将每个端口是否有任务用一个bit表示,那么最低优先级调度其实也就是寻求这个N bit数据的为1的最低bit位。而在之前的文章里,如何寻找一个二进制数据中为1的最低bit位的方式已经说明,这里不再阐述:
oneHotCode=symbol& ~(symbol-1)
》roundRobin
在对最低优先级调度有了一定的了解后,再来考虑roundRobin。对于roundRobin调度的目的。其无非是每个端口均能够“雨露均沾”的获取端口访问。在SpinalHDL中,该部分的核心代码为:
原作者:玉骐 Spinal FPGA
更多回帖