ELLA| Developer(s) | Royal Signals and Radar Establishment |
|---|
| Initial release | 1986; 37 years ago (1986) |
|---|
| Written in | ALGOL 68RS |
|---|
| Operating system | VMS |
|---|
| Platform | ICL 2900 Series, Multics, VAX |
|---|
| Available in | English |
|---|
| Type | Hardware description language |
|---|
| License | public domain (parts) |
|---|
ELLA is a hardware description language and support toolset, developed in the United Kingdom by the Royal Signals and Radar Establishment (RSRE) during the 1980s and 1990s, which also developed the compiler for the programming language, ALGOL 68RS, used to write ELLA.
ELLA has tools to perform:
- Design transformation
- Symbolic simulations
- Formal verification
ELLA is a winner of the 1989 Queen's Award for Technological Achievement.
Sample
Sample originally from ftp://ftp.dra.hmg.gb/pub/ella, public release.
Code for matrix multiplication hardware design verification:
MAC ZIP = ([INT n]TYPE t: vector1 vector2) -> [n][2]t:
[INT k = 1..n](vector1[k], vector2[k]).
MAC TRANSPOSE = ([INT n][INT m]TYPE t: matrix) -> [m][n]t:
[INT i = 1..m] [INT j = 1..n] matrix[j][i].
MAC INNER_PRODUCT{FN * = [2]TYPE t -> TYPE s, FN + = [2]s -> s}
= ([INT n][2]t: vector) -> s:
IF n = 1 THEN *vector[1]
ELSE *vector[1] + INNER_PRODUCT {*,+} vector[2..n]
FI.
MAC MATRIX_MULT {FN * = [2]TYPE t->TYPE s, FN + = [2]s->s} =
([INT n][INT m]t: matrix1, [m][INT p]t: matrix2) -> [n][p]s:
BEGIN
LET transposed_matrix2 = TRANSPOSE matrix2.
OUTPUT [INT i = 1..n][INT j = 1..p]
INNER_PRODUCT{*,+}ZIP(matrix1[i],transposed_matrix2[j])
END.
TYPE element = NEW elt/(1..20),
product = NEW prd/(1..1200).
FN PLUS = (product: integer1 integer2) -> product:
ARITH integer1 + integer2.
FN MULT = (element: integer1 integer2) -> product:
ARITH integer1 * integer2.
FN MULT_234 = ([2][3]element:matrix1, [3][4]element:matrix2) ->
[2][4]product:
MATRIX_MULT{MULT,PLUS}(matrix1, matrix2).
FN TEST = () -> [2][4]product:
( LET m1 = ((elt/2, elt/1, elt/1),
(elt/3, elt/6, elt/9)),
m2 = ((elt/6, elt/1, elt/3, elt/4),
(elt/9, elt/2, elt/8, elt/3),
(elt/6, elt/4, elt/1, elt/2)).
OUTPUT
MULT_234 (m1, m2)
).
COM test: just displaysignal MOC
References
- Morison, J. D.; Clarke, A. S. (1 October 1993). Ella 2000: A Language for Electronic System Design. McGraw Hill. ISBN 978-0077078218.
- Barringer, H.; Gough, G.; Monahan, B.; Williams, A.; Arcus, M.; Armstrong, A.; Hill, M. (1995). "A design and verification environment for ELLA". Design Automation Conference (DAC) 1995. pp. 685–690. doi:10.1109/ASPDAC.1995.486387. ISBN 4-930813-67-0.
- Morison, J. D.; Peeling, N. E.; Thorp, T. L.; Whiting, E. V. (1987). "EASE: A Design Support Environment for the HDDL ELLA". Design Automation Conference (DAC) 1987. pp. 741–749. doi:10.1145/37888.38006. ISBN 0-8186-0781-5.
External links
- ELLA source code including the ALGOL 68RS translator
Programmable logic |
|---|
| Concepts |
- ASIC
- SoC
- FPGA
- CPLD
- EPLD
- PLA
- PAL
- GAL
- PSoC
- Reconfigurable computing
- Soft microprocessor
- Circuit underutilization
- High-level synthesis
- Hardware acceleration
|
|---|
| Languages |
- Verilog
- VHDL
- SystemVerilog
- SystemC
- AHDL
- Handel-C
- PSL
- UPF
- PALASM
- ABEL
- CUPL
- OpenVera
- C to HDL
- Flow to HDL
- MyHDL
- JHDL
- ELLA
|
|---|
| Companies |
- Accellera
- Actel
- Achronix
- AMD
- Aldec
- Atmel
- Cadence
- Cypress
- Duolog
- Forte
- Intel
- Lattice
- National
- Mentor Graphics
- Microsemi
- Signetics
- Synopsys
- Texas Instruments
- Tabula
- Xilinx
|
|---|
| Products | | Hardware | |
|---|
| Software |
- Intel Quartus Prime
- Xilinx ISE
- Xilinx Vivado
- ModelSim
- VTR
- Simulators
|
|---|
| IP | | Proprietary |
- ARC
- ARM Cortex-M
- LEON
- LatticeMico8
- MicroBlaze
- PicoBlaze
- Nios
- Nios II
|
|---|
| Open-source |
- JOP
- LatticeMico32
- OpenCores
- OpenRISC
- RISC-V
- Zet
|
|---|
|
|---|
|
|---|
ALGOL programming |
|---|
| Implementations | Technical standards |
- ALGOL 58
- ALGOL 60
- ALGOL 68
|
|---|
| Dialects |
- ABC ALGOL
- ALCOR
- ALGOL N
- ALGOL W
- ALGOL X
- Burroughs ALGOL
- Dartmouth ALGOL 30
- DASK ALGOL
- DG/L
- Elliott ALGOL
- Executive Systems Problem Oriented Language (ESPOL)
- Kidsgrove Algol
- Mary
- S-algol, PS-algol, Napier88
- Small Machine ALGOL Like Language (SMALL)
- SMIL ALGOL
|
|---|
|
|---|
| Community | | Organizations | Professional associations |
- ALCOR Group
- Association for Computing Machinery (ACM)
- International Federation for Information Processing (IFIP) IFIP Working Group 2.1
|
|---|
| Business |
- Burroughs Corporation
- Elliott Brothers
- Regnecentralen
|
|---|
| Education |
- Case Institute of Technology
- University of Edinburgh
- University of St Andrews
- Manchester University
- Massachusetts Institute of Technology (MIT)
- Society of Applied Mathematics and Mechanics (GAMM)
|
|---|
|
|---|
| People | | ALGOL 58 |
- John Backus
- Hermann Bottenbruch
- Charles Katz
- Alan Perlis
- Heinz Rutishauser
- Klaus Samelson
- Joseph Henry Wegstein
|
|---|
| ALGOL 60 |
- Backus+
- Roland Carl Backhouse
- Friedrich L. Bauer
- Richard Bird
- Stephen R. Bourne
- Robert Dewar
- Edsger W. Dijkstra
- Andrey Ershov
- Robert W. Floyd
- Jeremy Gibbons
- Julien Green
- David Gries
- Eric Hehner
- Tony Hoare
- Katz+
- Peter Landin
- Tom Maibaum
- Conor McBride
- John McCarthy
- Carroll Morgan
- Peter Naur
- Maurice Nivat
- Perlis+
- Brian Randell
- Rutishauser
- Samelson+
- Jacob T. Schwartz
- Micha Sharir
- David Turner
- Bernard Vauquois
- Eiiti Wada
- Wegstein+
- Adriaan van Wijngaarden
- Michael Woodger
- + = full name and link in prior ALGOL version above
|
|---|
| ALGOL 68 |
- Bauer+
- Dijkstra+
- Gerhard Goos
- Hoare+
- Cornelis H. A. Koster
- Peter Landin
- Charles H. Lindsey
- Barry J. Mailloux
- McCarthy+
- Lambert Meertens
- Naur+
- John E. L. Peck
- Willem van der Poel
- Brian Randell
- Douglas T. Ross
- Samelson+
- Michel Sintzoff
- van Wijngaarden
- Niklaus Wirth
- Woodger+
- Nobuo Yoneda
- + = full name and link in prior ALGOL version above
|
|---|
- Hal Abelson
- Tony Brooker
- Jørn Jensen
- Ron Morrison
- John C. Reynolds
|
|---|
|
|---|
| Other |
ALGOL Bulletin
Jensen's Device
|
|---|
Category
Category
|
 | Original source: https://en.wikipedia.org/wiki/ELLA (programming language). Read more |