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

Subversion Repositories ssbcc

[/] [ssbcc/] [trunk/] [todo] - Blame information for rev 2

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 sinclairrf
  BUGS:
2
 
3
  example
4
*   "<", ... operators for signed 8-bit values
5
 
6
  ssbcc
7
*   change "outstatus" to "outfull" for UART and UART_Tx
8
*   add size[variable_name]
9
    add "fetchvalueoffset(var,ix)" and "storevalueoffset(var,ix)"
10
    add r* to over-write either s_T or s_N?
11
*   accommodate Lattice Diamond synthesis and memory initialization
12
*   make "quiet" the default
13
*   ensure timer tolerance is non-zero
14
*   ensure all "raise" statements include the source line code number
15
*   write COMBINE MEMORY tests
16
?   bit-slice constants (similarly to parameters)
17
    handle ';' that aren't preceded by a space
18
    add fetch/store_valueoffset and fetch/store_vectoroffset
19
    use .IFNDEF instead of checking assembler check for previously included files
20
    add "rot" instruction?
21
    add address range validation for memory accesses
22
    add warning for unreachable code following .jump or .return instructions
23
    add "share memory" feature?
24
      for dual-port memories in slave peripherals (i.e., registers readable by the bus master)
25
      for peripherals such as adders where long chains of outputs and inports would have been required and .store+/- and .fetch+/- would be much more efficient code-wise
26
      how to accommodate multiple "shared memory" peripherals?
27
    finish interrupt handling, add monitor-interrupt peripheral to ensure correct re-enable from the interrupt handler
28
    remove dead parameters and dead code
29
    rework design as required to make it more robust
30
    documentation
31
      top-level overview, point to implemented cores
32
      required:  ARCHITECTURE and sizes, ASSEMBLY, and HDL
33
      I/O Ports
34
      INPORT and OUTPORT
35
      PERIPHERAL
36
        finish doc/peripheral.html
37
*     all error messages
38
    generate Altera SOPC/Qsys TCL script
39
    add VHDL
40
 
41
  core/9x8
42
    documentation
43
      update
44
      assembler
45
        directives
46
        instructions
47
          change "opcodes.html" to "instructions.html", ...
48
        parameters
49
        constants
50
        interrupts
51
      peripherals
52
      running the test benches
53
    core.v
54
      additional instructions?
55
        "invert" opcode in 6'b000100 group
56
        "tst&=" and "tst&<>" instructions -- replace T with the stated comparison based on the bitwise and of T and N
57
        "cmp=" and "cmp<>" instructions -- replace T with the statued comparison based on N-T
58
    asm
59
      require .memory directive to be repeated after other directives, EOF, etc.
60
      improve error message for missing input files
61
      add non-return-stack-alteration restriction to some optional macro arguments
62
      implement .abbr directive
63
      add .if(...) [.elif(...)]* [.else] .endif directive set
64
        avoid full parsing of false branches (accommodate other cores?)
65
        add symbol for current core -- is9x8 (?)
66
    peripherals
67
      INTERRUPT
68
      interrupt enable/disable (through INTERRUPT command)
69
      multi-byte adder
70
      multiplier
71
      PICK -- emulate the Forth operator?
72
        this can be done if the data stack is in its own dual-port memory, but that kinds of defeats the purpose of a small micro controller
73
      bus slave peripherals -- store external commands in a FIFO and statuses in dual-port RAM or shared RAM for external reads
74
        SPI_slave
75
        I2C_slave
76
      SoC Interconnects
77
        wishbone_slave
78
        avalon_slave
79
        wishbone_master
80
        avalon_master
81
        ARM_slave
82
    core.vhd
83
      do this once core.v is completed
84
 
85
  examples
86
*   Game-of-life
87
    add more examples
88
      "echo" program
89
      Jim Haberly -- accumulate 10 samples from an ADC
90
    JPEG compression example?
91
      Cast's JPEG-E core: http://www.cast-inc.com/ip-cores/images/jpeg-e/index.html (1343 slices, 170 MHz, 7 RAMB16, 9 DSP48)
92
 
93
  lib/9x8/math.s
94
    -- incorporate adder peripheral
95
    -- add_u8_u32__u32, ...
96
    -- sub_uX_uY__uZ, X,Y,Z \in {8,16,24,32}, Z \in min(X,Y)+{0,8}, Z<=32
97
    -- add signed versions
98
 
99
  lib/9x8/forth.s
100
    -- identify good instructions to include
101
      pick
102
 
103
  publicize
104
    - opencores
105
    - ssbcc.net
106
    - Programmable Planet
107
    - EETimes and other e-rags
108
    - add to web page

powered by: WebSVN 2.1.0

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