OpenCores
URL https://opencores.org/ocsvn/ssbcc/ssbcc/trunk

Subversion Repositories ssbcc

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /ssbcc
    from Rev 9 to Rev 10
    Reverse comparison

Rev 9 → Rev 10

/trunk/lib/9x8/cmp_8bit_uu.s
1,7 → 1,10
; Copyright 2013, Sinclair R.F., Inc.
; Copyright 2013, 2015, Sinclair R.F., Inc.
;
; 8-bit unsigned vs. unsigned comparison operators
 
.IFNDEF D__INCLUDED__CMP_8BIT_UU_S__
.define D__INCLUDED__CMP_8BIT_UU_S__
 
; Compare two unsigned 8-bit values for equality.
; ( u1 u2 - f"u1 = u2" )
.function cmp_8bit_uu_eq
56,3 → 59,5
&
; ( u1 uX - min(u1,u2) )
.return(+)
 
.ENDIF ; D__INCLUDED__CMP_8BIT_UU_S__
/trunk/lib/9x8/math.s
1,7 → 1,10
; Copyright 2014, Sinclair R.F., Inc.
; Copyright 2014-2015, Sinclair R.F., Inc.
;
; Unsigned arithmetic operations.
 
.IFNDEF D__INCLUDED__MATH_S__
.define D__INCLUDED__MATH_S__
 
; Notation:
; ux_n is the n'th byte of ux where n=0 is the LSB
; example: ( u0_0 u0_1 ) are the LSB and MSB of a 2-byte 16-bit value.
74,3 → 77,5
.function math__add_u32_u32_u32
>r .call(math__add_u32_u24_u32)
r> .return(+)
 
.ENDIF ; D__INCLUDED__MATH_S__
/trunk/lib/9x8/char.s
1,9 → 1,9
; Copyright 2013, Sinclair R.F., Inc.
; Copyright 2013, 2015, Sinclair R.F., Inc.
;
; Character manipulation functions
 
.IFNDEF C__INCLUDED__CHAR_S__
.constant C__INCLUDED__CHAR_S__ 0
.IFNDEF D__INCLUDED__CHAR_S__
.define D__INCLUDED__CHAR_S__
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
86,4 → 86,4
'f' over - 0x80 & .jumpc(error) ${ord('a')-10} - .return(0)
:error .return(0xFF)
 
.ENDIF ; C__INCLUDED__CHAR_S__
.ENDIF ; D__INCLUDED__CHAR_S__
/trunk/core/9x8/peripherals/monitor_stack.v
1,5 → 1,6
//
// monitor_stack peripheral
// Copyright 2013, Sinclair R.F., Inc.
//
// Note: The validity of N and T are not monitored for invalid operations. For
// example, if N is not valid and a "swap" is performed, then the data
/trunk/core/9x8/peripherals/timer.v
1,5 → 1,6
//
// PERIPHERAL timer: @NAME@
// Copyright 2013, Sinclair R.F., Inc.
//
localparam L__COUNT = @RATEMETHOD@-1;
localparam L__COUNT_NBITS = $clog2(L__COUNT);
/trunk/core/9x8/peripherals/stepper_motor.py
56,7 → 56,6
Or:\n
PERIPHERAL stepper_motor basename=name \\
master=mastername \\
outcontrol=O_name \\
outrecord=O_name \\
outrun=O_name \\
indone=I_name \\
74,6 → 73,8
specifies a preceding stepper_motor peripheral to use for the internal
clock and to use for the accleration, rate, angle accumulator, and mode
sizes
Note: The "outcontrol" port from the master peripheral is used to queue
the control words for its slaves.
outcontrol=O_name
specifies the port used to assemble 8-bit control values into the stepper
motor control word
290,7 → 291,6
periperal.\n
PERIPHERAL stepper_motor basename=slave \\
master=stepper \\
outcontrol=O_slave_control \\
outrecord=O_slave_wr \\
outrun=O_slave_go \\
indone=I_slave_done \\
337,6 → 337,7
'accumres',
'countwidth',
'modewidth',
'outcontrol',
'ratemethod',
'rateres',
'ratescale',
346,7 → 347,6
'basename',
'indone',
'inerror',
'outcontrol',
'outrecord',
'outrun',
)
394,10 → 394,11
config.AddIO('i_%s_error' % self.basename, 1, 'input', loc)
config.AddSignal('s__%s__done' % self.basename, 1, loc)
self.ix_outcontrol = config.NOutports()
config.AddOutport((self.outcontrol,
False,
# empty list
),loc)
if not hasattr(self,'master'):
config.AddOutport((self.outcontrol,
False,
# empty list
),loc)
self.ix_outrecord = config.NOutports()
config.AddOutport((self.outrecord,
True,
441,6 → 442,7
else:
body = re.sub(r'@OUTMODE_BEGIN@\n','',body)
body = re.sub(r'@OUTMODE_END@\n','',body)
masterBasename = self.basename if not hasattr(self,'master') else self.master.basename
for subpair in (
( r'@ACCEL_WIDTH@', str(self.accelwidth), ),
( r'@ACCEL_RES@', str(self.accelres), ),
469,7 → 471,8
( r'\bi__', 'i_%s_' % self.basename, ),
( r'\bo__', 'o_%s_' % self.basename, ),
( r'\bs__', 's__%s__' % self.basename, ),
( r'@S__CLK_EN@', 's__%s__clk_en' % (self.basename if not hasattr(self,'master') else self.master.basename), ),
( r'@S__CLK_EN@', 's__%s__clk_en' % masterBasename, ),
( r'@S__INPUT_CONTROL_WORD_PACKED@', 's__%s__input_control_word_packed' % masterBasename, ),
):
body = re.sub(subpair[0],subpair[1],body)
body = self.GenVerilogFinal(config,body)
/trunk/core/9x8/peripherals/AXI4_Lite_Slave_DualPortRAM.v
1,5 → 1,6
//
// PERIPHERAL: AXI4-Lite slave dual-port-RAM interface
// Copyright 2014, Sinclair R.F., Inc.
//
// Note: While the AXI4-Lite protocol allows simultaneous read and write
// operations, only one side of the dual-port RAM is available to the AXI4-lite
/trunk/core/9x8/peripherals/servo_motor.v
1,5 → 1,6
//
// PERIPHERAL servo_motor: @NAME@
// Copyright 2015, Sinclair R.F., Inc.
//
generate
reg [@NBITS_PWM@-1:0] s__pwm_count_init = @DEFAULT_PWM@;
/trunk/core/9x8/peripherals/PWM_8bit.v
1,5 → 1,6
//
// PERIPHERAL PWM_8bit: @NAME@
// Copyright 2013, Sinclair R.F., Inc.
//
localparam L__COUNT = @COUNT@-1;
localparam L__COUNT_NBITS = $clog2(L__COUNT+1);
/trunk/core/9x8/peripherals/latch.v
1,5 → 1,6
//
// latch peripheral for @INSIGNAL@
// Copyright 2013, Sinclair R.F., Inc.
//
generate
// Register the input signal when commanded.
/trunk/core/9x8/peripherals/AXI4_Lite_Master.v
1,5 → 1,6
//
// PERIPHERAL: AXI4-Lite Master
// Copyright 2014, Sinclair R.F., Inc.
//
generate
localparam L__ADDRESS_WIDTH = @ADDRESS_WIDTH@;
/trunk/core/9x8/peripherals/stepper_motor.v
2,11 → 2,10
// PERIPHERAL stepper_motor: @NAME@
// Copyright 2015, Sinclair R.F., Inc.
//
// Assemble the byes of the control word from the input bytes.
@MASTER_BEGIN@
localparam L__RATEMETHOD_MINUS_1 = @RATEMETHOD@ - 1;
localparam L__NBITS_RATEMETHOD = clog2(L__RATEMETHOD_MINUS_1);
@MASTER_END@
// Assemble the byes of the control word from the input bytes.
reg [@CONTROL_WIDTH@-1:0] s__input_control_word = {(@CONTROL_WIDTH@){1'b0}};
always @ (posedge i_clk)
if (i_rst)
23,6 → 22,7
, s__input_control_word[0+:@MODE_WIDTH@]
@OUTMODE_END@
};
@MASTER_END@
// Instantiate the control word FIFO and operate its input side.
reg s__FIFO_wr = 1'b0;
always @ (posedge i_clk)
39,7 → 39,7
reg [@CONTROL_WIDTH_PACKED@-1:0] s__FIFO[@FIFO_DEPTH@-1:0];
always @ (posedge i_clk)
if (s__FIFO_wr)
s__FIFO[s__FIFO_in_addr[0+:@NBITS_FIFO_DEPTH@]] <= s__input_control_word_packed;
s__FIFO[s__FIFO_in_addr[0+:@NBITS_FIFO_DEPTH@]] <= @S__INPUT_CONTROL_WORD_PACKED@;
// Operate the output side of the FIFO and translate the packed controls into
// individual signals.
reg s__FIFO_rd = 1'b0;
/trunk/core/9x8/peripherals/inFIFO_async.v
1,5 → 1,6
//
// PERIPHERAL inFIFO_async: @NAME@
// Copyright 2014, Sinclair R.F., Inc.
//
generate
// FIFO memory
/trunk/core/9x8/peripherals/outFIFO_async.v
1,5 → 1,6
//
// PERIPHERAL outFIFO_async: @NAME@
// Copyright 2014, Sinclair R.F., Inc.
//
generate
// FIFO memory
/trunk/ssbccConfig.py
640,7 → 640,7
alreadyUsed = [memName for memName in mems if self.IsCombined(memName)];
if alreadyUsed:
raise SSBCCException('"%s" already used in COMBINE configuration command before %s' % (alreadyUsed[0],loc,));
repeated = [mems[ix] for ix in range(len(mems)-1) if mems[ix] in mems[ix+1]];
repeated = [mems[ix] for ix in range(len(mems)-1) if mems[ix] in mems[ix+1:]];
if repeated:
raise SSBCCException('"%s" repeated in COMBINE configuration command on %s' % (repeated[0],loc,));
# Count the number of the different memory types being combined and validate the combination.

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.