diff --git a/litedram/core/bankmachine.py b/litedram/core/bankmachine.py index 55512bc..144929d 100644 --- a/litedram/core/bankmachine.py +++ b/litedram/core/bankmachine.py @@ -34,7 +34,10 @@ class _AddressSlicer: def col(self, address): split = self.colbits - self.address_align - return Cat(Replicate(0, self.address_align), address[:split]) + if self.colbits>10: # A10 is reserved for auto-precharge, this bit needs to be skipped for col addresses + return Cat(Replicate(0, self.address_align), address[:10-self.address_align], 0, address[10-self.address_align:split]) + else: + return Cat(Replicate(0, self.address_align), address[:split]) # BankMachine --------------------------------------------------------------------------------------