@@ -653,7 +653,7 @@ def read_dataflow_interleave(self, port, addr, length=1,
653653 data_cond = dtypes .make_condition (data_ack , last_ack )
654654 prev_data_cond = self .seq .Prev (data_cond , 1 )
655655
656- data_list = [self .m .TmpWireLike (ram .interfaces [port ].rdata )
656+ data_list = [self .m .TmpWireLike (ram .interfaces [port ].rdata , signed = True )
657657 for ram in self .rams ]
658658
659659 prev_data_list = [self .seq .Prev (data , 1 ) for data in data_list ]
@@ -683,7 +683,7 @@ def read_dataflow_interleave(self, port, addr, length=1,
683683 prev_patterns = [(prev_reg_bank_sel == i , data )
684684 for i , data in enumerate (prev_data_list )]
685685 prev_patterns .append ((None , 0 ))
686- data = self .m .TmpWire (self .orig_datawidth )
686+ data = self .m .TmpWire (self .orig_datawidth , signed = True )
687687 data .assign (vtypes .Mux (prev_data_cond ,
688688 vtypes .PatternMux (* patterns ),
689689 vtypes .PatternMux (* prev_patterns )))
@@ -784,7 +784,7 @@ def read_dataflow_pattern_interleave(self, port, addr, pattern,
784784 data_cond = dtypes .make_condition (data_ack , last_ack )
785785 prev_data_cond = self .seq .Prev (data_cond , 1 )
786786
787- data_list = [self .m .TmpWireLike (ram .interfaces [port ].rdata )
787+ data_list = [self .m .TmpWireLike (ram .interfaces [port ].rdata , signed = True )
788788 for ram in self .rams ]
789789
790790 prev_data_list = [self .seq .Prev (data , 1 ) for data in data_list ]
@@ -809,7 +809,7 @@ def read_dataflow_pattern_interleave(self, port, addr, pattern,
809809 prev_patterns = [(prev_reg_bank_sel == i , data )
810810 for i , data in enumerate (prev_data_list )]
811811 prev_patterns .append ((None , 0 ))
812- data = self .m .TmpWire (self .orig_datawidth )
812+ data = self .m .TmpWire (self .orig_datawidth , signed = True )
813813 data .assign (vtypes .Mux (prev_data_cond ,
814814 vtypes .PatternMux (* patterns ),
815815 vtypes .PatternMux (* prev_patterns )))
@@ -1361,7 +1361,7 @@ def read(self, fsm, global_addr):
13611361 else :
13621362 data , valid = ret
13631363
1364- rdata = self .m .TmpReg (self .datawidth , initval = 0 )
1364+ rdata = self .m .TmpReg (self .datawidth , initval = 0 , signed = True )
13651365 fsm .If (valid )(rdata (data ))
13661366 fsm .Then ().goto_next ()
13671367
@@ -1803,12 +1803,12 @@ def __init__(self, m, name, clk, rst, datawidth=32, addrwidth=32,
18031803 str (type (length )))
18041804
18051805 self .register = [self .m .Reg ('_' .join (['' , self .name , 'register' , '%d' % i ]),
1806- width = self .datawidth , initval = 0 )
1806+ width = self .datawidth , initval = 0 , signed = True )
18071807 for i in range (length )]
18081808 self .flag = [self .m .Reg ('_' .join (['' , self .name , 'flag' , '%d' % i ]), initval = 0 )
18091809 for i in range (length )]
18101810 self .resetval = [self .m .Reg ('_' .join (['' , self .name , 'resetval' , '%d' % i ]),
1811- width = self .datawidth , initval = 0 )
1811+ width = self .datawidth , initval = 0 , signed = True )
18121812 for i in range (length )]
18131813 self .length = length
18141814 self .maskwidth = self .m .Localparam ('_' .join (['' , self .name , 'maskwidth' ]),
@@ -1842,7 +1842,7 @@ def _setup_register_lite_fsm(self):
18421842 fsm .If (readvalid ).goto_from (init_state , read_state )
18431843 fsm .set_index (read_state )
18441844
1845- rdata = self .m .TmpWire (self .datawidth )
1845+ rdata = self .m .TmpWire (self .datawidth , signed = True )
18461846 pat = [(maskaddr == i , r ) for i , r in enumerate (self .register )]
18471847 pat .append ((None , vtypes .IntX ()))
18481848 rval = vtypes .PatternMux (pat )
@@ -1854,7 +1854,7 @@ def _setup_register_lite_fsm(self):
18541854 rval = vtypes .PatternMux (pat )
18551855 flag .assign (rval )
18561856
1857- resetval = self .m .TmpWire (self .datawidth )
1857+ resetval = self .m .TmpWire (self .datawidth , signed = True )
18581858 pat = [(maskaddr == i , r ) for i , r in enumerate (self .resetval )]
18591859 pat .append ((None , vtypes .IntX ()))
18601860 rval = vtypes .PatternMux (pat )
@@ -1905,7 +1905,7 @@ def _setup_register_full_fsm(self):
19051905 fsm .If (readvalid ).goto_from (init_state , read_state )
19061906 fsm .set_index (read_state )
19071907
1908- rdata = self .m .TmpWire (self .datawidth )
1908+ rdata = self .m .TmpWire (self .datawidth , signed = True )
19091909 pat = [(maskaddr == i , r ) for i , r in enumerate (self .register )]
19101910 pat .append ((None , vtypes .IntX ()))
19111911 rval = vtypes .PatternMux (pat )
@@ -1917,7 +1917,7 @@ def _setup_register_full_fsm(self):
19171917 rval = vtypes .PatternMux (pat )
19181918 flag .assign (rval )
19191919
1920- resetval = self .m .TmpWire (self .datawidth )
1920+ resetval = self .m .TmpWire (self .datawidth , signed = True )
19211921 pat = [(maskaddr == i , r ) for i , r in enumerate (self .resetval )]
19221922 pat .append ((None , vtypes .IntX ()))
19231923 rval = vtypes .PatternMux (pat )
0 commit comments