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

Subversion Repositories ssbcc

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

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

powered by: WebSVN 2.1.0

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