Пример #1
0
    def _impl(self) -> None:
        join = HsJoinPrioritized(self.INTF_CLS)
        join._updateParamsFrom(self)
        join.get_valid_signal = self.get_valid_signal
        join.get_ready_signal = self.get_ready_signal

        self.join = join

        # en override
        ens = [
            self._reg(f"en{i:d}", def_val=0) for i in range(len(self.dataIn))
        ]
        all_0 = ~Or(*ens)
        for en_flag, din, c_din in zip(ens, self.dataIn, self.join.dataIn):
            en = (all_0 | en_flag)
            vld = self.get_valid_signal(c_din)
            vld(en & self.get_valid_signal(din))
            rd = self.get_ready_signal(din)
            rd(en & self.get_ready_signal(c_din))
            self.dataConnectionExpr(din, c_din)
            If(rd & vld, en_flag(~din.last))
        self.dataOut(join.dataOut)
Пример #2
0
 def _declr(self):
     HsJoinPrioritized._declr(self)
     addClkRstn(self)
     if self.EXPORT_SELECTED:
         s = self.selectedOneHot = VldSynced()._m()
         s._replaceParam(s.DATA_WIDTH, self.INPUTS)
Пример #3
0
 def _config(self):
     HsJoinPrioritized._config(self)
     self.EXPORT_SELECTED = Param(True)
Пример #4
0
 def _declr(self):
     HsJoinPrioritized._declr(self)
     addClkRstn(self)
Пример #5
0
 def _declr(self):
     HsJoinPrioritized._declr(self)
     addClkRstn(self)
Пример #6
0
 def _declr(self):
     HsJoinPrioritized._declr(self)
     addClkRstn(self)
     if self.EXPORT_SELECTED:
         s = self.selectedOneHot = VldSynced()._m()
         s._replaceParam(s.DATA_WIDTH, self.INPUTS)
Пример #7
0
 def _config(self):
     HsJoinPrioritized._config(self)
     self.EXPORT_SELECTED = Param(True)
Пример #8
0
 def _declr(self) -> None:
     addClkRstn(self)
     HsJoinPrioritized._declr(self)