Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
Jesus89 committed Feb 14, 2017
2 parents 3ee961d + 740d4f0 commit 74396cf
Show file tree
Hide file tree
Showing 110 changed files with 7,101 additions and 3,873 deletions.
6 changes: 1 addition & 5 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,4 @@ cache
node_modules
bower_components

app/profile.json
app/_cache
app/_build
app/resources/locale/**/*.json
demo/*.v
**/locale/**/*.json
3 changes: 2 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ os:
before_install:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo dpkg --add-architecture i386; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get update -q; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install -y wine; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install -y wine nsis; fi

install:
- npm install
Expand All @@ -25,6 +25,7 @@ deploy:
file:
- dist/*.zip
- dist/*.dmg
- dist/*.exe
file_glob: true
skip_cleanup: true
on:
Expand Down
48 changes: 38 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,26 +24,42 @@ Supported operating systems:
* Windows
* Mac OS X

## Version 0.3.0-beta2 (latest)
## Version 0.3.0-beta3 (latest)

Documentation: http://icestudio.readthedocs.io/en/latest

### Installation

1. Install [Python 2.7](https://www.python.org)
* **GNU/Linux**

2. Download the [release](https://github.com/FPGAwars/icestudio/releases/tag/0.3.0-beta2), unzip and execute **icestudio**
1. Install [Python 2.7](https://www.python.org)
2. Download the [zipped release](https://github.com/FPGAwars/icestudio/releases/tag/0.3.0-beta3), unzip and execute **icestudio**

Documentation: http://icestudio.readthedocs.io/en/latest

NOTE: if you want to add blocks or examples, please contribute to [icestudio-blocks](https://github.com/FPGAwars/icestudio-blocks) or [icestudio-examples](https://github.com/FPGAwars/icestudio-examples).
NOTE: GNU/Linux users must have **xclip** installed to enable Copy/Paste.


* **Windows**

1. Download and execute the [Windows installer](https://github.com/FPGAwars/icestudio/releases/tag/0.3.0-beta3)


* **Mac OS X**

<img src="./doc/images/icestudio-0.3.0-beta2.png" width="700" align="center">
1. Install [Python 2.7](https://www.python.org)
2. Download and execute the [DMG package](https://github.com/FPGAwars/icestudio/releases/tag/0.3.0-beta3)

<img src="./doc/images/icestudio-0.3.0-beta3.png" width="700" align="center">

## Development

Install [Python 2.7](https://www.python.org/downloads/release/python-2711/) and [nodejs](https://github.com/nodejs/node).

Using [Atom](https://atom.io/) editor with [linter-jshint](https://atom.io/packages/linter-jshint).

NOTE: if you want to add blocks or examples, please contribute to [icestudio-blocks](https://github.com/FPGAwars/icestudio-blocks) or [icestudio-examples](https://github.com/FPGAwars/icestudio-examples).


##### Ubuntu

```bash
Expand Down Expand Up @@ -76,24 +92,36 @@ npm start
npm run dist
```

NOTE: in Mac OS X this command also generates a **dmg** package.
Output
* *GNU/Linux*: linux32.zip, linux64.zip, win32.zip, win64.zip, win32.exe, win64.exe.
* *Mac OS X*: osx32.zip, osx64.zip, osx64.dmg.

## Languages

| Language | Translated strings |
|:----------:|:------------------------------------------:|
| English | ![Progress](http://progressed.io/bar/100) |
| Spanish | ![Progress](http://progressed.io/bar/100) |
| Basque | ![Progress](http://progressed.io/bar/88) |
| French | ![Progress](http://progressed.io/bar/72) |
| Galician | ![Progress](http://progressed.io/bar/47) |
| Basque | ![Progress](http://progressed.io/bar/87) |
| French | ![Progress](http://progressed.io/bar/61) |
| Galician | ![Progress](http://progressed.io/bar/35) |

**Contribute**: add or update the [translations](https://github.com/FPGAwars/icestudio/tree/develop/app/resources/locale) by following the [next instructions](https://angular-gettext.rocketeer.be/dev-guide/translate/#poedit).

```bash
npm run gettext
```

## Troubleshooting

If you get this error `npm ERR! peerinvalid The package [email protected] does not satisfy its siblings' peerDependencies requirements!`, execute:

```bash
npm update -g
```

[More information](https://github.com/angular-fullstack/generator-angular-fullstack/issues/431)

## Roadmap

There is a [Wishlist](https://github.com/FPGAwars/icestudio/wiki/Wishlist:-proposed-features) in the wiki with the features proposed by the Community. If you want to contribute with new features and ideas write in the [Google Group](https://groups.google.com/forum/#!forum/fpga-wars-explorando-el-lado-libre).
Expand Down
37 changes: 20 additions & 17 deletions app/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -52,23 +52,26 @@
<script src="scripts/controllers/design.js"></script>
<script src="scripts/controllers/main.js"></script>
<script src="scripts/controllers/menu.js"></script>
<script src="scripts/factories/joint.factory.js"></script>
<script src="scripts/factories/node.factory.js"></script>
<script src="scripts/factories/window.factory.js"></script>
<script src="scripts/plugins/connectors/joint.connectors.js"></script>
<script src="scripts/plugins/dia/joint.dia.command.js"></script>
<script src="scripts/plugins/routers/joint.routers.js"></script>
<script src="scripts/plugins/shapes/joint.shapes.js"></script>
<script src="scripts/plugins/ui/joint.ui.js"></script>
<script src="scripts/services/blocks.service.js"></script>
<script src="scripts/services/boards.service.js"></script>
<script src="scripts/services/compiler.service.js"></script>
<script src="scripts/services/graph.service.js"></script>
<script src="scripts/services/profile.service.js"></script>
<script src="scripts/services/project.service.js"></script>
<script src="scripts/services/resources.service.js"></script>
<script src="scripts/services/tools.service.js"></script>
<script src="scripts/services/utils.service.js"></script>
<script src="scripts/directives/menutree.js"></script>
<script src="scripts/factories/joint.js"></script>
<script src="scripts/factories/node.js"></script>
<script src="scripts/factories/window.js"></script>
<script src="scripts/graphics/joint.command.js"></script>
<script src="scripts/graphics/joint.connectors.js"></script>
<script src="scripts/graphics/joint.routers.js"></script>
<script src="scripts/graphics/joint.selection.js"></script>
<script src="scripts/graphics/joint.shapes.js"></script>
<script src="scripts/services/blocks.js"></script>
<script src="scripts/services/boards.js"></script>
<script src="scripts/services/common.js"></script>
<script src="scripts/services/compiler.js"></script>
<script src="scripts/services/graph.js"></script>
<script src="scripts/services/profile.js"></script>
<script src="scripts/services/project.js"></script>
<script src="scripts/services/resources.js"></script>
<script src="scripts/services/shortcuts.js"></script>
<script src="scripts/services/tools.js"></script>
<script src="scripts/services/utils.js"></script>
<!-- endbuild -->
</body>

Expand Down
12 changes: 7 additions & 5 deletions app/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "icestudio",
"version": "0.3.0-beta2",
"version": "0.3.0-beta3",
"description": "Experimental graphic editor for open FPGAs",
"author": "Jesús Arroyo Torrens <[email protected]>",
"repository": "https://github.com/FPGAwars/icestudio",
Expand All @@ -18,13 +18,16 @@
"icon": "resources/images/icestudio-logo.png"
},
"apio": {
"min": "0.2.0",
"max": "0.2.1"
"min": "0.2.1.2",
"max": "0.2.2"
},
"engines": {
"node": ">= 0.10.0"
},
"dependencies": {
"adm-zip": "^0.4.7",
"angular-gettext-tools": "~2.3.3",
"copy-paste": "^1.3.0",
"fs-extra": "^1.0.0",
"glob": "^7.1.1",
"is-online": "^5.2.0",
Expand All @@ -38,8 +41,7 @@
"ssh-exec": "^2.0.0",
"sudo-prompt": "^6.2.0",
"svgo": "^0.7.1",
"tarball-extract": "0.0.3",
"unzip": "^0.1.11"
"tarball-extract": "0.0.3"
},
"readme": "../README.md",
"keywords": [
Expand Down
2 changes: 1 addition & 1 deletion app/resources/boards/_iCEblink40-HX1K/pinout.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
[{"name": "CLK", "value": "13"}, {"name": "LED1", "value": "59"}, {"name": "LED2", "value": "56"}, {"name": "LED3", "value": "53"}, {"name": "LED4", "value": "51"}, {"name": "BTN1", "value": "60"}, {"name": "BTN2", "value": "57"}, {"name": "BTN3", "value": "54"}, {"name": "BTN4", "value": "52"}, {"name": "J2U1", "value": "66"}, {"name": "J2U2", "value": "69"}, {"name": "J2U3", "value": "72"}, {"name": "J2U4", "value": "74"}, {"name": "J2U5", "value": "79"}, {"name": "J2U6", "value": "81"}, {"name": "J2U7", "value": "83"}, {"name": "J2U8", "value": "86"}, {"name": "J2D1", "value": "68"}, {"name": "J2D2", "value": "71"}, {"name": "J2D3", "value": "73"}, {"name": "J2D4", "value": "78"}, {"name": "J2D5", "value": "80"}, {"name": "J2D6", "value": "82"}, {"name": "J2D7", "value": "85"}, {"name": "J2D8", "value": "87"}, {"name": "J4U1", "value": "89"}, {"name": "J4U2", "value": "91"}, {"name": "J4U3", "value": "94"}, {"name": "J4U4", "value": "96"}, {"name": "J4U5", "value": "99"}, {"name": "J4U6", "value": "12"}, {"name": "J4U8", "value": "18"}, {"name": "J4D1", "value": "90"}, {"name": "J4D2", "value": "93"}, {"name": "J4D3", "value": "95"}, {"name": "J4D4", "value": "97"}, {"name": "J4D5", "value": "100"}, {"name": "J4D6", "value": "15"}, {"name": "J4D7", "value": "16"}, {"name": "J4D8", "value": "19"}, {"name": "D11", "value": "64"}, {"name": "D10", "value": "62"}, {"name": "D9", "value": "42"}, {"name": "D8", "value": "40"}, {"name": "D7", "value": "36"}, {"name": "D6", "value": "30"}, {"name": "D5", "value": "65"}, {"name": "D4", "value": "63"}, {"name": "D3", "value": "41"}, {"name": "D2", "value": "37"}, {"name": "D1", "value": "34"}, {"name": "D0", "value": "29"}, {"name": "J6R1", "value": "25"}, {"name": "J6R2", "value": "24"}, {"name": "J6R3", "value": "21"}, {"name": "J6R4", "value": "20"}, {"name": "J6L1", "value": "26"}, {"name": "J6L2", "value": "27"}, {"name": "J6L3", "value": "28"}, {"name": "J6L4", "value": "33"}, {"name": "J1R1", "value": "10"}, {"name": "J1R2", "value": "9"}, {"name": "J1R3", "value": "8"}, {"name": "J1R4", "value": "7"}, {"name": "J1L1", "value": "4"}, {"name": "J1L2", "value": "3"}, {"name": "J1L3", "value": "2"}, {"name": "J1L4", "value": "1"}, {"name": "SS", "value": "49"}, {"name": "SO", "value": "45"}, {"name": "SI", "value": "46"}, {"name": "SCK", "value": "48"}]
[{"type": "input", "name": "CLK", "value": "13"}, {"type": "output", "name": "LED1", "value": "59"}, {"type": "output", "name": "LED2", "value": "56"}, {"type": "output", "name": "LED3", "value": "53"}, {"type": "output", "name": "LED4", "value": "51"}, {"type": "input", "name": "BTN1", "value": "60"}, {"type": "input", "name": "BTN2", "value": "57"}, {"type": "input", "name": "BTN3", "value": "54"}, {"type": "input", "name": "BTN4", "value": "52"}, {"type": "inout", "name": "J2U1", "value": "66"}, {"type": "inout", "name": "J2U2", "value": "69"}, {"type": "inout", "name": "J2U3", "value": "72"}, {"type": "inout", "name": "J2U4", "value": "74"}, {"type": "inout", "name": "J2U5", "value": "79"}, {"type": "inout", "name": "J2U6", "value": "81"}, {"type": "inout", "name": "J2U7", "value": "83"}, {"type": "inout", "name": "J2U8", "value": "86"}, {"type": "inout", "name": "J2D1", "value": "68"}, {"type": "inout", "name": "J2D2", "value": "71"}, {"type": "inout", "name": "J2D3", "value": "73"}, {"type": "inout", "name": "J2D4", "value": "78"}, {"type": "inout", "name": "J2D5", "value": "80"}, {"type": "inout", "name": "J2D6", "value": "82"}, {"type": "inout", "name": "J2D7", "value": "85"}, {"type": "inout", "name": "J2D8", "value": "87"}, {"type": "inout", "name": "J4U1", "value": "89"}, {"type": "inout", "name": "J4U2", "value": "91"}, {"type": "inout", "name": "J4U3", "value": "94"}, {"type": "inout", "name": "J4U4", "value": "96"}, {"type": "inout", "name": "J4U5", "value": "99"}, {"type": "inout", "name": "J4U6", "value": "12"}, {"type": "inout", "name": "J4U8", "value": "18"}, {"type": "inout", "name": "J4D1", "value": "90"}, {"type": "inout", "name": "J4D2", "value": "93"}, {"type": "inout", "name": "J4D3", "value": "95"}, {"type": "inout", "name": "J4D4", "value": "97"}, {"type": "inout", "name": "J4D5", "value": "100"}, {"type": "inout", "name": "J4D6", "value": "15"}, {"type": "inout", "name": "J4D7", "value": "16"}, {"type": "inout", "name": "J4D8", "value": "19"}, {"type": "inout", "name": "D11", "value": "64"}, {"type": "inout", "name": "D10", "value": "62"}, {"type": "inout", "name": "D9", "value": "42"}, {"type": "inout", "name": "D8", "value": "40"}, {"type": "inout", "name": "D7", "value": "36"}, {"type": "inout", "name": "D6", "value": "30"}, {"type": "inout", "name": "D5", "value": "65"}, {"type": "inout", "name": "D4", "value": "63"}, {"type": "inout", "name": "D3", "value": "41"}, {"type": "inout", "name": "D2", "value": "37"}, {"type": "inout", "name": "D1", "value": "34"}, {"type": "inout", "name": "D0", "value": "29"}, {"type": "inout", "name": "J6R1", "value": "25"}, {"type": "inout", "name": "J6R2", "value": "24"}, {"type": "inout", "name": "J6R3", "value": "21"}, {"type": "inout", "name": "J6R4", "value": "20"}, {"type": "inout", "name": "J6L1", "value": "26"}, {"type": "inout", "name": "J6L2", "value": "27"}, {"type": "inout", "name": "J6L3", "value": "28"}, {"type": "inout", "name": "J6L4", "value": "33"}, {"type": "inout", "name": "J1R1", "value": "10"}, {"type": "inout", "name": "J1R2", "value": "9"}, {"type": "inout", "name": "J1R3", "value": "8"}, {"type": "inout", "name": "J1R4", "value": "7"}, {"type": "inout", "name": "J1L1", "value": "4"}, {"type": "inout", "name": "J1L2", "value": "3"}, {"type": "inout", "name": "J1L3", "value": "2"}, {"type": "inout", "name": "J1L4", "value": "1"}, {"type": "inout", "name": "SS", "value": "49"}, {"type": "inout", "name": "SO", "value": "45"}, {"type": "inout", "name": "SI", "value": "46"}, {"type": "inout", "name": "SCK", "value": "48"}]
18 changes: 9 additions & 9 deletions app/resources/boards/_iCEblink40-HX1K/pinout.pcf
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,19 @@


# -------------------------- System Clock -------------------------------------
set_io --warn-no-port CLK 13 # JP3.1 [Config: JP2.1 JP2.2 JP2.3 -> NCC=333kHz, NNN=3.33MHz, CCN=33.3MHz]
set_io --warn-no-port CLK 13 # input JP3.1 [Config: JP2.1 JP2.2 JP2.3 -> NCC=333kHz, NNN=3.33MHz, CCN=33.3MHz]

# ------------ User Leds ------------------------------------------------------
set_io --warn-no-port LED1 59 # J12.1
set_io --warn-no-port LED2 56 # J12.2
set_io --warn-no-port LED3 53 # J12.3
set_io --warn-no-port LED4 51 # J12.4
set_io --warn-no-port LED1 59 # output J12.1
set_io --warn-no-port LED2 56 # output J12.2
set_io --warn-no-port LED3 53 # output J12.3
set_io --warn-no-port LED4 51 # output J12.4

# ------------ Capacitive buttons ---------------------------------------------
set_io --warn-no-port BTN1 60 # Capacitive button 1
set_io --warn-no-port BTN2 57 # Capacitive button 2
set_io --warn-no-port BTN3 54 # Capacitive button 3
set_io --warn-no-port BTN4 52 # Capacitive button 4
set_io --warn-no-port BTN1 60 # input Capacitive button 1
set_io --warn-no-port BTN2 57 # input Capacitive button 2
set_io --warn-no-port BTN3 54 # input Capacitive button 3
set_io --warn-no-port BTN4 52 # input Capacitive button 4

# ----------------- Pins I/O --------------------------------------------------
set_io --warn-no-port J2U1 66 # J2.1
Expand Down
26 changes: 26 additions & 0 deletions app/resources/boards/_iCEblink40-HX1K/rules.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"input" : [
{
"port" : "clk",
"pin": "13"
}
],
"output": [
{
"pin": "59",
"bit": "0"
},
{
"pin": "56",
"bit": "0"
},
{
"pin": "53",
"bit": "0"
},
{
"pin": "51",
"bit": "0"
}
]
}
10 changes: 6 additions & 4 deletions app/resources/boards/generator.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
# -- This script generates a board json file from a pcf
# -- Author Jesús Arroyo (C) 2016
# -- Author Jesús Arroyo (C) 2016-2017
# -- Licence GPLv2

# set_io --warn-no-port LED1 C8 -> { "name": "LED1", "value": "C8" },
# set_io LED0 95 # output -> { "name": "LED0", "value": "95", "type": "output" }
# set_io --warn-no-port SW1 10 # input -> { "name": "SW1", "value": "10", "type": "input" }
# set_io --warn-no-port D13 144 -> { "name": "D13", "value": "144", "type": "inout" }

import os
import re
Expand All @@ -23,7 +25,7 @@
name = input('Insert board name: ') # eg. icoboard

# Regex pattern
pattern = 'set_io\s--warn-no-port\s(?P<name>.*?)\s+(?P<value>.*?)\s'
pattern = 'set_io\s+(--warn-no-port)?\s*(.*?)\s+(.*?)\s+(#+\s+(input|output))?'

# Open file
with open(os.path.join(name, 'pinout.pcf')) as file:
Expand All @@ -33,7 +35,7 @@
pinout = re.findall(pattern, data)
format_pinout = []
for item in pinout:
format_pinout += [{ 'name': item[0], 'value': item[1] }]
format_pinout += [{ 'name': item[1], 'value': item[2], 'type': item[4] or 'inout' }]

# Save json file
with open(os.path.join(name, 'pinout.json'), 'w') as outfile:
Expand Down
Loading

0 comments on commit 74396cf

Please sign in to comment.