diff --git a/README.md b/README.md index 44c4bd7ef..6314c08fe 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,26 @@ -[![Build Status](https://travis-ci.org/FPGAwars/icestudio.svg?branch=0.3.0)](https://travis-ci.org/FPGAwars/icestudio) -[![Version](https://img.shields.io/badge/version-v0.3.0-orange.svg)](https://github.com/FPGAwars/icestudio/releases) +[![Build Status](https://travis-ci.org/FPGAwars/icestudio.svg?branch=0.3.1)](https://travis-ci.org/FPGAwars/icestudio) +[![Version](https://img.shields.io/badge/version-v0.3.1-orange.svg)](https://github.com/FPGAwars/icestudio/releases) [![License](http://img.shields.io/:license-gpl-blue.svg)](http://opensource.org/licenses/GPL-2.0) [![Documentation Status](https://readthedocs.org/projects/icestudio/badge/?version=latest)](http://icestudio.readthedocs.io/en/latest) **Experimental** graphic editor for open FPGAs. Built on top of the [Icestorm project](http://www.clifford.at/icestorm/). - GUI -> JSON -> Verilog, PCF + Graphic design -> Verilog, PCF -> Bistream -> FPGA -Supported boards: +### Supported boards -* [IceZUM Alhambra](https://github.com/FPGAwars/icezum) -* [Kéfir I iCE40-HX4K](http://fpgalibre.sourceforge.net/Kefir/) -* [Nandland Go board](https://www.nandland.com/goboard/introduction.html) -* [iCE40-HX8K Breakout Board](http://www.latticesemi.com/Products/DevelopmentBoardsAndKits/iCE40HX8KBreakoutBoard.aspx) -* [iCEstick Evaluation Kit](http://www.pighixxx.com/test/portfolio-items/icestick/) -* [icoBOARD 1.0](http://icoboard.org/about-icoboard.html) +| Board name | GNU/Linux | Windows | Mac OS | +|:-|:-:|:-:|:-:| +| [IceZUM Alhambra](https://github.com/FPGAwars/icezum) | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [Kéfir I iCE40-HX4K](http://fpgalibre.sourceforge.net/Kefir/) | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [Nandland Go board](https://www.nandland.com/goboard/introduction.html) | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [iCE40-HX8K Breakout Board](http://www.latticesemi.com/Products/DevelopmentBoardsAndKits/iCE40HX8KBreakoutBoard.aspx) | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [iCEstick Evaluation Kit](http://www.pighixxx.com/test/portfolio-items/icestick/) | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| [icoBOARD 1.0](http://icoboard.org/about-icoboard.html) |   :white_check_mark: **\*** |   :white_check_mark: **\*** |   :white_check_mark: **\*** | -Supported operating systems: - -* GNU/Linux -* Windows -* Mac OS X +**\*** Use with Raspberry Pi ## Installation @@ -37,7 +35,7 @@ Supported operating systems: 1. Download and execute the [Windows installer](https://github.com/FPGAwars/icestudio/releases) -* **Mac OS X** +* **Mac OS** 1. Install [Python 2.7](https://www.python.org) and [Homebrew](https://brew.sh) 2. Download and execute the [DMG package](https://github.com/FPGAwars/icestudio/releases) @@ -83,29 +81,16 @@ npm install npm start ``` -### Package - -```bash -npm run dist -``` - -| OS | Development OS | Output files | -|:---:|:-------------:|:-----------------:| -| GNU/Linux | GNU/Linux | (linux32,linux64).zip, (linux32,linux64).AppImage | -| Windows | GNU/Linux | (win32,win64).zip, (win32,win64).exe | -| Mac OS X | Mac OS X | (osx32,osx64).zip, osx64.dmg | - - -## Languages +### Languages | Language | Translated strings | |:----------:|:------------------------------------------:| | English | ![Progress](http://progressed.io/bar/100) | | Spanish | ![Progress](http://progressed.io/bar/100) | -| French | ![Progress](http://progressed.io/bar/95) | -| Basque | ![Progress](http://progressed.io/bar/93) | -| Galician | ![Progress](http://progressed.io/bar/89) | -| Catalan | ![Progress](http://progressed.io/bar/89) | +| Basque | ![Progress](http://progressed.io/bar/98) | +| French | ![Progress](http://progressed.io/bar/94) | +| Galician | ![Progress](http://progressed.io/bar/88) | +| Catalan | ![Progress](http://progressed.io/bar/88) | **Contribute!** @@ -113,7 +98,19 @@ Add or update the [app translations](https://github.com/FPGAwars/icestudio/tree/ *Developer note*: use `npm run gettext` to extract the labels from the code. -## Troubleshooting +### Package + +```bash +npm run dist +``` + +| Target OS | Development OS | Output files | +|:---:|:-------------:|:-----------------:| +| GNU/Linux | GNU/Linux | (linux32,linux64).zip, (linux32,linux64).AppImage | +| Windows | GNU/Linux | (win32,win64).zip, (win32,win64).exe | +| Mac OS | Mac OS | (osx32,osx64).zip, osx64.dmg | + +### Troubleshooting If you get this error `npm ERR! peerinvalid The package grunt@1.0.1 does not satisfy its siblings' peerDependencies requirements!`, try to update your **[nodejs](https://github.com/nodejs/node)** or execute: diff --git a/app/package.json b/app/package.json index a5bb5a28f..702db1d19 100644 --- a/app/package.json +++ b/app/package.json @@ -1,6 +1,6 @@ { "name": "icestudio", - "version": "0.3.1-rc", + "version": "0.3.1", "description": "Experimental graphic editor for open FPGAs", "author": "Jesús Arroyo Torrens ", "repository": "https://github.com/FPGAwars/icestudio", diff --git a/app/resources/boards/_iCE40HX8K-EVB/info.json b/app/resources/boards/_iCE40HX8K-EVB/info.json new file mode 100644 index 000000000..bd0fb8948 --- /dev/null +++ b/app/resources/boards/_iCE40HX8K-EVB/info.json @@ -0,0 +1,9 @@ +{ + "label": "iCE40HX8K-EVB", + "datasheet": "https://github.com/OLIMEX/iCE40HX8K-EVB/raw/master/HARDWARE/REV-B/iCE40HX8K-EVB_Rev_B.pdf", + "FPGAResources": { + "pios": 206, + "plbs": 960, + "brams": 32 + } +} diff --git a/app/resources/boards/_iCE40HX8K-EVB/pinout.json b/app/resources/boards/_iCE40HX8K-EVB/pinout.json new file mode 100644 index 000000000..9ee493bc3 --- /dev/null +++ b/app/resources/boards/_iCE40HX8K-EVB/pinout.json @@ -0,0 +1 @@ +[{"type": "output", "name": "LED1", "value": "M12"}, {"type": "output", "name": "LED2", "value": "R16"}, {"type": "output", "name": "BUT1", "value": "K11"}, {"type": "output", "name": "BUT2", "value": "P13"}, {"type": "output", "name": "TX", "value": "J3"}, {"type": "input", "name": "RX", "value": "J3"}, {"type": "input", "name": "CLK", "value": "J3"}, {"type": "input", "name": "SYSCLK", "value": "J3"}, {"type": "input", "name": "RES", "value": "N11"}, {"type": "input", "name": "CRESET", "value": "N11"}, {"type": "output", "name": "DONE", "value": "M10"}, {"type": "output", "name": "CDONE", "value": "M10"}, {"type": "output", "name": "SS", "value": "R12"}, {"type": "output", "name": "SS_Bi", "value": "R12"}, {"type": "input", "name": "MISO", "value": "P12"}, {"type": "input", "name": "SDI", "value": "P12"}, {"type": "output", "name": "MOSI", "value": "P11"}, {"type": "output", "name": "SDO", "value": "P11"}, {"type": "output", "name": "SCK", "value": "R11"}, {"type": "inout", "name": "C14", "value": "C14"}, {"type": "inout", "name": "B15", "value": "B15"}, {"type": "inout", "name": "D13", "value": "D13"}, {"type": "inout", "name": "B14", "value": "B14"}, {"type": "inout", "name": "C12", "value": "C12"}, {"type": "inout", "name": "E11", "value": "E11"}, {"type": "inout", "name": "C13", "value": "C13"}, {"type": "inout", "name": "A16", "value": "A16"}, {"type": "inout", "name": "A15", "value": "A15"}, {"type": "inout", "name": "B13", "value": "B13"}, {"type": "inout", "name": "E10", "value": "E10"}, {"type": "inout", "name": "C11", "value": "C11"}, {"type": "inout", "name": "D11", "value": "D11"}, {"type": "inout", "name": "B12", "value": "B12"}, {"type": "inout", "name": "B10", "value": "B10"}, {"type": "inout", "name": "B11", "value": "B11"}, {"type": "inout", "name": "C10", "value": "C10"}, {"type": "inout", "name": "A10", "value": "A10"}, {"type": "inout", "name": "A11", "value": "A11"}, {"type": "inout", "name": "D10", "value": "D10"}, {"type": "inout", "name": "C9", "value": "C9"}, {"type": "inout", "name": "E9", "value": "E9"}, {"type": "inout", "name": "D9", "value": "D9"}, {"type": "inout", "name": "A9", "value": "A9"}, {"type": "inout", "name": "F9", "value": "F9"}, {"type": "inout", "name": "C8", "value": "C8"}, {"type": "inout", "name": "F7", "value": "F7"}, {"type": "inout", "name": "B9", "value": "B9"}, {"type": "inout", "name": "D8", "value": "D8"}, {"type": "inout", "name": "B8", "value": "B8"}, {"type": "inout", "name": "A7", "value": "A7"}, {"type": "inout", "name": "C7", "value": "C7"}, {"type": "inout", "name": "B6", "value": "B6"}, {"type": "inout", "name": "C6", "value": "C6"}, {"type": "inout", "name": "D7", "value": "D7"}, {"type": "inout", "name": "A6", "value": "A6"}, {"type": "inout", "name": "D6", "value": "D6"}, {"type": "inout", "name": "A5", "value": "A5"}, {"type": "inout", "name": "B5", "value": "B5"}, {"type": "inout", "name": "E6", "value": "E6"}, {"type": "inout", "name": "B4", "value": "B4"}, {"type": "inout", "name": "A2", "value": "A2"}, {"type": "inout", "name": "D5", "value": "D5"}, {"type": "inout", "name": "A1", "value": "A1"}, {"type": "inout", "name": "C5", "value": "C5"}, {"type": "inout", "name": "C4", "value": "C4"}, {"type": "inout", "name": "B3", "value": "B3"}, {"type": "inout", "name": "D4", "value": "D4"}, {"type": "inout", "name": "E5", "value": "E5"}, {"type": "inout", "name": "D3", "value": "D3"}, {"type": "inout", "name": "C3", "value": "C3"}, {"type": "inout", "name": "R14", "value": "R14"}, {"type": "inout", "name": "R15", "value": "R15"}, {"type": "inout", "name": "P14", "value": "P14"}, {"type": "inout", "name": "P15", "value": "P15"}, {"type": "inout", "name": "P16", "value": "P16"}, {"type": "inout", "name": "M13", "value": "M13"}, {"type": "inout", "name": "M14", "value": "M14"}, {"type": "inout", "name": "L12", "value": "L12"}, {"type": "inout", "name": "N16", "value": "N16"}, {"type": "inout", "name": "L13", "value": "L13"}, {"type": "inout", "name": "L14", "value": "L14"}, {"type": "inout", "name": "K12", "value": "K12"}, {"type": "inout", "name": "M16", "value": "M16"}, {"type": "inout", "name": "J10", "value": "J10"}, {"type": "inout", "name": "M15", "value": "M15"}, {"type": "inout", "name": "J11", "value": "J11"}, {"type": "inout", "name": "L16", "value": "L16"}, {"type": "inout", "name": "K13", "value": "K13"}, {"type": "inout", "name": "K14", "value": "K14"}, {"type": "inout", "name": "J15", "value": "J15"}, {"type": "inout", "name": "K15", "value": "K15"}, {"type": "inout", "name": "K16", "value": "K16"}, {"type": "inout", "name": "J14", "value": "J14"}, {"type": "inout", "name": "J12", "value": "J12"}, {"type": "inout", "name": "J13", "value": "J13"}, {"type": "inout", "name": "J16", "value": "J16"}, {"type": "inout", "name": "H13", "value": "H13"}, {"type": "inout", "name": "H11", "value": "H11"}, {"type": "inout", "name": "H16", "value": "H16"}, {"type": "inout", "name": "H14", "value": "H14"}, {"type": "inout", "name": "G16", "value": "G16"}, {"type": "inout", "name": "H12", "value": "H12"}, {"type": "inout", "name": "G15", "value": "G15"}, {"type": "inout", "name": "G10", "value": "G10"}, {"type": "inout", "name": "F16", "value": "F16"}, {"type": "inout", "name": "G11", "value": "G11"}, {"type": "inout", "name": "F15", "value": "F15"}, {"type": "inout", "name": "G14", "value": "G14"}, {"type": "inout", "name": "E16", "value": "E16"}, {"type": "inout", "name": "G13", "value": "G13"}, {"type": "inout", "name": "D16", "value": "D16"}, {"type": "inout", "name": "G12", "value": "G12"}, {"type": "inout", "name": "F14", "value": "F14"}, {"type": "inout", "name": "F12", "value": "F12"}, {"type": "inout", "name": "D15", "value": "D15"}, {"type": "inout", "name": "F11", "value": "F11"}, {"type": "inout", "name": "E14", "value": "E14"}, {"type": "inout", "name": "C16", "value": "C16"}, {"type": "inout", "name": "F13", "value": "F13"}, {"type": "inout", "name": "B16", "value": "B16"}, {"type": "inout", "name": "E13", "value": "E13"}, {"type": "inout", "name": "D14", "value": "D14"}, {"type": "inout", "name": "M11", "value": "M11"}, {"type": "inout", "name": "T13", "value": "T13"}, {"type": "inout", "name": "N12", "value": "N12"}, {"type": "inout", "name": "M12", "value": "M12"}, {"type": "inout", "name": "R16", "value": "R16"}, {"type": "inout", "name": "J1", "value": "J1"}, {"type": "inout", "name": "K1", "value": "K1"}, {"type": "inout", "name": "K3", "value": "K3"}, {"type": "inout", "name": "L4", "value": "L4"}, {"type": "inout", "name": "L1", "value": "L1"}, {"type": "inout", "name": "K4", "value": "K4"}, {"type": "inout", "name": "M1", "value": "M1"}, {"type": "inout", "name": "L6", "value": "L6"}, {"type": "inout", "name": "L3", "value": "L3"}, {"type": "inout", "name": "K5", "value": "K5"}, {"type": "inout", "name": "M2", "value": "M2"}, {"type": "inout", "name": "L7", "value": "L7"}, {"type": "inout", "name": "N2", "value": "N2"}, {"type": "inout", "name": "M6", "value": "M6"}, {"type": "inout", "name": "M3", "value": "M3"}, {"type": "inout", "name": "L5", "value": "L5"}, {"type": "inout", "name": "N3", "value": "N3"}, {"type": "inout", "name": "P1", "value": "P1"}, {"type": "inout", "name": "M4", "value": "M4"}, {"type": "inout", "name": "P2", "value": "P2"}, {"type": "inout", "name": "M5", "value": "M5"}, {"type": "inout", "name": "R1", "value": "R1"}, {"type": "inout", "name": "N4", "value": "N4"}] \ No newline at end of file diff --git a/app/resources/boards/_iCE40HX8K-EVB/pinout.pcf b/app/resources/boards/_iCE40HX8K-EVB/pinout.pcf new file mode 100644 index 000000000..4e171ea96 --- /dev/null +++ b/app/resources/boards/_iCE40HX8K-EVB/pinout.pcf @@ -0,0 +1,350 @@ +# ----------------------------------------------------------------------------- +#- iCE40HX8K-EVB constraint file (.pcf) +#- By Brian 'redbeard' Harrington +#- October 2017 +#- GPL license +#- Board info: +# - https://www.olimex.com/Products/FPGA/iCE40/iCE40HX8K-EVB/open-source-hardware +# - https://github.com/OLIMEX/iCE40HX8K-EVB + +#------------------------------ LEDS ------------------------------------------ + +set_io --warn-no-port LED1 M12 # output +set_io --warn-no-port LED2 R16 # output + +#----------------------------- BUTTONS ---------------------------------------- + +set_io --warn-no-port BUT1 K11 # output +set_io --warn-no-port BUT2 P13 # output + +#--------------------------- SERIAL COMMS ------------------------------------- + +set_io --warn-no-port TX J3 # output +set_io --warn-no-port RX J3 # input + + +# -------------------------- SYSTEM CLOCK ------------------------------------- + +set_io --warn-no-port CLK J3 # input +set_io --warn-no-port SYSCLK J3 # input + + +# ************************************ +# * * +# --------------------* Serigraphy of PCB *--------------------- +# * * +# ************************************ + +# ------------------------- Programming connector------------------------------ +# PGM1 +# ----------- +# OPEN 1---| 3V3 GND |---2 +# OPEN 3---| RX TX |---4 OPEN +# 5---| DONE RES |---6 +# 7---| MISO MOSI |---8 +# 9---| SCK SS_B |---10 +# ------------ + +set_io --warn-no-port RES N11 # input +set_io --warn-no-port CRESET N11 # input + +set_io --warn-no-port DONE M10 # output +set_io --warn-no-port CDONE M10 # output + +set_io --warn-no-port SS R12 # output +set_io --warn-no-port SS_Bi R12 # output + +set_io --warn-no-port MISO P12 # input +set_io --warn-no-port SDI P12 # input + +set_io --warn-no-port MOSI P11 # output +set_io --warn-no-port SDO P11 # output + +set_io --warn-no-port SCK R11 # output + +# ------------------------- GPIO1 connector ----------------------------------- +# GPIO1 +# -------- +# 1---| VCC GND |---2 +# 3---| 3V3 GND |---4 +# 5---| E4 EXT |---6 EXTCLK +# 7---| B2 GND |---8 +# 9---| F5 J2 |---10 +# --------- +# 11---| B1 H1 |---12 +# 13---| C1 G1 |---14 +# 15---| C2 J5 |---16 +# 17---| F4 H2 |---18 +# 19---| D2 J4 |---20 +# --------- +# 21---| G5 G2 |---22 +# 23---| D1 H4 |---24 +# 25---| G4 F1 |---26 +# 27---| E3 H6 |---28 +# 29---| H5 F2 |---30 +# --------- +# 31---| E2 H3 |---32 +# 33---| G3 F3 |---34 +# --------- + +# ------------------------- EXT1 connector ------------------------------------ +# +# +# +# J1 +# -------- +# 1---| VCC GND |---2 +# 3---| 3V3 GND |---4 +# 5---| 3V3 EXT |---6 EXTCLK +# 7---| C14 GND |---8 +# 9---| B15 B7 |---10 +# --------- +# 11---| D13 C7 |---12 +# 13---| B14 A7 |---14 +# 15---| C12 B8 |---16 +# 17---| E11 D8 |---18 +# 19---| C13 B9 |---20 +# --------- +# 21---| A16 F7 |---22 +# 23---| A15 C8 |---24 +# 25---| B13 F9 |---26 +# 27---| E10 A9 |---28 +# 29---| C11 D9 |---30 +# --------- +# 31---| D11 E9 |---32 +# 33---| B12 C9 |---34 +# 35---| B10 D10 |---36 +# 37---| B11 A11 |---38 +# 39---| C10 A10 |---40 +# --------- + +set_io --warn-no-port C14 C14 +set_io --warn-no-port B15 B15 +set_io --warn-no-port D13 D13 +set_io --warn-no-port B14 B14 +set_io --warn-no-port C12 C12 +set_io --warn-no-port E11 E11 +set_io --warn-no-port C13 C13 +set_io --warn-no-port A16 A16 +set_io --warn-no-port A15 A15 +set_io --warn-no-port B13 B13 +set_io --warn-no-port E10 E10 +set_io --warn-no-port C11 C11 +set_io --warn-no-port D11 D11 +set_io --warn-no-port B12 B12 +set_io --warn-no-port B10 B10 +set_io --warn-no-port B11 B11 +set_io --warn-no-port C10 C10 +set_io --warn-no-port A10 A10 +set_io --warn-no-port A11 A11 +set_io --warn-no-port D10 D10 +set_io --warn-no-port C9 C9 +set_io --warn-no-port E9 E9 +set_io --warn-no-port D9 D9 +set_io --warn-no-port A9 A9 +set_io --warn-no-port F9 F9 +set_io --warn-no-port C8 C8 +set_io --warn-no-port F7 F7 +set_io --warn-no-port B9 B9 +set_io --warn-no-port D8 D8 +set_io --warn-no-port B8 B8 +set_io --warn-no-port A7 A7 +set_io --warn-no-port C7 C7 + + +# ------------------------- EXT2 connector ------------------------------------ +# +# +# +# EXT2 +# -------- +# 1---| VCC GND |---2 +# 3---| 3V3 GND |---4 +# 5---| 3V3 EXT |---6 EXTCLK +# 7---| B6 GND |---8 +# 9---| C6 J10 |---10 +# --------- +# 11---| D7 M16 |---12 +# 13---| A6 K12 |---14 +# 15---| D6 L14 |---16 +# 17---| A5 L13 |---18 +# 19---| B5 N16 |---20 +# --------- +# 21---| E6 L12 |---22 +# 23---| B4 M14 |---24 +# 25---| A2 M13 |---26 +# 27---| D5 P16 |---28 +# 29---| A1 P15 |---30 +# --------- +# 31---| C5 P14 |---32 +# 33---| C4 R15 |---34 +# 35---| B3 R14 |---36 +# 37---| D4 C3 |---38 +# 39---| E5 D3 |---40 +# --------- + +set_io --warn-no-port B6 B6 +set_io --warn-no-port C6 C6 +set_io --warn-no-port D7 D7 +set_io --warn-no-port A6 A6 +set_io --warn-no-port D6 D6 +set_io --warn-no-port A5 A5 +set_io --warn-no-port B5 B5 +set_io --warn-no-port E6 E6 +set_io --warn-no-port B4 B4 +set_io --warn-no-port A2 A2 +set_io --warn-no-port D5 D5 +set_io --warn-no-port A1 A1 +set_io --warn-no-port C5 C5 +set_io --warn-no-port C4 C4 +set_io --warn-no-port B3 B3 +set_io --warn-no-port D4 D4 +set_io --warn-no-port E5 E5 +set_io --warn-no-port D3 D3 +set_io --warn-no-port C3 C3 +set_io --warn-no-port R14 R14 +set_io --warn-no-port R15 R15 +set_io --warn-no-port P14 P14 +set_io --warn-no-port P15 P15 +set_io --warn-no-port P16 P16 +set_io --warn-no-port M13 M13 +set_io --warn-no-port M14 M14 +set_io --warn-no-port L12 L12 +set_io --warn-no-port N16 N16 +set_io --warn-no-port L13 L13 +set_io --warn-no-port L14 L14 +set_io --warn-no-port K12 K12 +set_io --warn-no-port M16 M16 +set_io --warn-no-port J10 J10 + + +# ------------------------- EXT3 connector ------------------------------------ +# +# +# +# EXT3 +# -------- +# 1---| VCC GND |---2 +# 3---| 3V3 GND |---4 +# 5---| 3V3 EXT |---6 EXTCLK +# 7---| M15 GND |---8 +# 9---| J11 E14 |---10 +# --------- +# 11---| L16 F11 |---12 +# 13---| K13 D15 |---14 +# 15---| K14 F12 |---16 +# 17---| J15 F14 |---18 +# 19---| K15 G12 |---20 +# --------- +# 21---| K16 D16 |---22 +# 23---| J14 G13 |---24 +# 25---| J12 E16 |---26 +# 27---| J13 G14 |---28 +# 29---| J16 F15 |---30 +# --------- +# 31---| H13 G11 |---32 +# 33---| H11 F16 |---34 +# 35---| H16 G10 |---36 +# 37---| H14 G15 |---38 +# 39---| G16 H12 |---40 +# --------- + +set_io --warn-no-port M15 M15 +set_io --warn-no-port J11 J11 +set_io --warn-no-port L16 L16 +set_io --warn-no-port K13 K13 +set_io --warn-no-port K14 K14 +set_io --warn-no-port J15 J15 +set_io --warn-no-port K15 K15 +set_io --warn-no-port K16 K16 +set_io --warn-no-port J14 J14 +set_io --warn-no-port J12 J12 +set_io --warn-no-port J13 J13 +set_io --warn-no-port J16 J16 +set_io --warn-no-port H13 H13 +set_io --warn-no-port H11 H11 +set_io --warn-no-port H16 H16 +set_io --warn-no-port H14 H14 +set_io --warn-no-port G16 G16 +set_io --warn-no-port H12 H12 +set_io --warn-no-port G15 G15 +set_io --warn-no-port G10 G10 +set_io --warn-no-port F16 F16 +set_io --warn-no-port G11 G11 +set_io --warn-no-port F15 F15 +set_io --warn-no-port G14 G14 +set_io --warn-no-port E16 E16 +set_io --warn-no-port G13 G13 +set_io --warn-no-port D16 D16 +set_io --warn-no-port G12 G12 +set_io --warn-no-port F14 F14 +set_io --warn-no-port F12 F12 +set_io --warn-no-port D15 D15 +set_io --warn-no-port F11 F11 +set_io --warn-no-port E14 E14 + + +# ------------------------- EXT4 connector ------------------------------------ +# +# +# +# EXT4 +# -------- +# 1---| VCC GND |---2 +# 3---| 3V3 GND |---4 +# 5---| 3V3 EXT |---6 EXTCLK +# 7---| C16 GND |---8 +# 9---| F13 N4 |---10 +# --------- +# 11---| B16 R1 |---12 +# 13---| E13 M5 |---14 +# 15---| D14 P2 |---16 +# 17---| M11 M4 |---18 +# 19---| T13 P1 |---20 +# --------- +# 21---| N12 N3 |---22 +#LED1 23---| M12 L5 |---24 +#LED2 25---| R16 M3 |---26 +# 27---| J1 M6 |---28 +# 29---| K1 N2 |---30 +# --------- +# 31---| K3 L7 |---32 +# 33---| L4 M2 |---34 +# 35---| L1 K5 |---36 +# 37---| K4 L3 |---38 +# 39---| M1 L6 |---40 +# --------- + +set_io --warn-no-port C16 C16 +set_io --warn-no-port F13 F13 +set_io --warn-no-port B16 B16 +set_io --warn-no-port E13 E13 +set_io --warn-no-port D14 D14 +set_io --warn-no-port M11 M11 +set_io --warn-no-port T13 T13 +set_io --warn-no-port N12 N12 +set_io --warn-no-port M12 M12 #output +set_io --warn-no-port R16 R16 #output +set_io --warn-no-port J1 J1 +set_io --warn-no-port K1 K1 +set_io --warn-no-port K3 K3 +set_io --warn-no-port L4 L4 +set_io --warn-no-port L1 L1 +set_io --warn-no-port K4 K4 +set_io --warn-no-port M1 M1 +set_io --warn-no-port L6 L6 +set_io --warn-no-port L3 L3 +set_io --warn-no-port K5 K5 +set_io --warn-no-port M2 M2 +set_io --warn-no-port L7 L7 +set_io --warn-no-port N2 N2 +set_io --warn-no-port M6 M6 +set_io --warn-no-port M3 M3 +set_io --warn-no-port L5 L5 +set_io --warn-no-port N3 N3 +set_io --warn-no-port P1 P1 +set_io --warn-no-port M4 M4 +set_io --warn-no-port P2 P2 +set_io --warn-no-port M5 M5 +set_io --warn-no-port R1 R1 +set_io --warn-no-port N4 N4 diff --git a/app/resources/boards/_iCE40HX8K-EVB/rules.json b/app/resources/boards/_iCE40HX8K-EVB/rules.json new file mode 100644 index 000000000..19a357907 --- /dev/null +++ b/app/resources/boards/_iCE40HX8K-EVB/rules.json @@ -0,0 +1,18 @@ +{ + "input" : [ + { + "port" : "clk", + "pin": "J3" + } + ], + "output": [ + { + "pin": "M12", + "bit": "0" + }, + { + "pin": "M16", + "bit": "0" + } + ] +} diff --git a/app/resources/boards/go-board/info.json b/app/resources/boards/go-board/info.json index db4ce4cf4..4e46bfd93 100644 --- a/app/resources/boards/go-board/info.json +++ b/app/resources/boards/go-board/info.json @@ -1,4 +1,9 @@ { "label": "Nandland Go board", - "datasheet": "https://www.nandland.com/goboard/introduction.html" + "datasheet": "https://www.nandland.com/goboard/introduction.html", + "FPGAResources": { + "pios": 72, + "plbs": 160, + "brams": 16 + } } diff --git a/app/resources/boards/iCE40-HX8K/info.json b/app/resources/boards/iCE40-HX8K/info.json index a7fbb23de..4080c7d1b 100644 --- a/app/resources/boards/iCE40-HX8K/info.json +++ b/app/resources/boards/iCE40-HX8K/info.json @@ -1,4 +1,9 @@ { "label": "iCE40-HX8K Breakout Board", - "datasheet": "http://www.latticesemi.com/view_document?document_id=50373" + "datasheet": "http://www.latticesemi.com/view_document?document_id=50373", + "FPGAResources": { + "pios": 206, + "plbs": 960, + "brams": 32 + } } diff --git a/app/resources/boards/iCE40-HX8K/pinout.json b/app/resources/boards/iCE40-HX8K/pinout.json index e6d1cdc27..8bf823df9 100644 --- a/app/resources/boards/iCE40-HX8K/pinout.json +++ b/app/resources/boards/iCE40-HX8K/pinout.json @@ -1 +1 @@ -[{"type": "output", "name": "LED0", "value": "B5"}, {"type": "output", "name": "LED1", "value": "B4"}, {"type": "output", "name": "LED2", "value": "A2"}, {"type": "output", "name": "LED3", "value": "A1"}, {"type": "output", "name": "LED4", "value": "C5"}, {"type": "output", "name": "LED5", "value": "C4"}, {"type": "output", "name": "LED6", "value": "B3"}, {"type": "output", "name": "LED7", "value": "C3"}, {"type": "input", "name": "CLK", "value": "J3"}, {"type": "input", "name": "MISO", "value": "P12"}, {"type": "output", "name": "MOSI", "value": "P11"}, {"type": "output", "name": "SCK", "value": "R11"}, {"type": "output", "name": "SS", "value": "R12"}, {"type": "input", "name": "RTS", "value": "B13"}, {"type": "input", "name": "RESET", "value": "N11"}, {"type": "output", "name": "DONE", "value": "M10"}, {"type": "output", "name": "TX", "value": "B12"}, {"type": "input", "name": "RX", "value": "B10"}, {"type": "output", "name": "DCD", "value": "B15"}, {"type": "output", "name": "DSR", "value": "B14"}, {"type": "input", "name": "DTR", "value": "A16"}, {"type": "output", "name": "CTS", "value": "A15"}, {"type": "inout", "name": "A16", "value": "A16"}, {"type": "inout", "name": "A15", "value": "A15"}, {"type": "inout", "name": "B15", "value": "B15"}, {"type": "inout", "name": "B13", "value": "B13"}, {"type": "inout", "name": "B14", "value": "B14"}, {"type": "inout", "name": "B12", "value": "B12"}, {"type": "inout", "name": "B11", "value": "B11"}, {"type": "inout", "name": "A11", "value": "A11"}, {"type": "inout", "name": "B10", "value": "B10"}, {"type": "inout", "name": "A10", "value": "A10"}, {"type": "inout", "name": "C9", "value": "C9"}, {"type": "inout", "name": "A9", "value": "A9"}, {"type": "inout", "name": "B9", "value": "B9"}, {"type": "inout", "name": "B8", "value": "B8"}, {"type": "inout", "name": "A7", "value": "A7"}, {"type": "inout", "name": "B7", "value": "B7"}, {"type": "inout", "name": "C7", "value": "C7"}, {"type": "inout", "name": "A6", "value": "A6"}, {"type": "inout", "name": "C6", "value": "C6"}, {"type": "inout", "name": "B6", "value": "B6"}, {"type": "inout", "name": "C5", "value": "C5"}, {"type": "inout", "name": "A5", "value": "A5"}, {"type": "inout", "name": "C4", "value": "C4"}, {"type": "inout", "name": "B5", "value": "B5"}, {"type": "inout", "name": "C3", "value": "C3"}, {"type": "inout", "name": "B4", "value": "B4"}, {"type": "inout", "name": "B3", "value": "B3"}, {"type": "inout", "name": "A2", "value": "A2"}, {"type": "inout", "name": "A1", "value": "A1"}, {"type": "inout", "name": "R15", "value": "R15"}, {"type": "inout", "name": "P16", "value": "P16"}, {"type": "inout", "name": "P15", "value": "P15"}, {"type": "inout", "name": "N16", "value": "N16"}, {"type": "inout", "name": "M15", "value": "M15"}, {"type": "inout", "name": "M16", "value": "M16"}, {"type": "inout", "name": "L16", "value": "L16"}, {"type": "inout", "name": "K15", "value": "K15"}, {"type": "inout", "name": "K16", "value": "K16"}, {"type": "inout", "name": "K14", "value": "K14"}, {"type": "inout", "name": "J14", "value": "J14"}, {"type": "inout", "name": "G14", "value": "G14"}, {"type": "inout", "name": "F14", "value": "F14"}, {"type": "inout", "name": "J15", "value": "J15"}, {"type": "inout", "name": "H14", "value": "H14"}, {"type": "inout", "name": "H16", "value": "H16"}, {"type": "inout", "name": "G15", "value": "G15"}, {"type": "inout", "name": "G16", "value": "G16"}, {"type": "inout", "name": "F15", "value": "F15"}, {"type": "inout", "name": "F16", "value": "F16"}, {"type": "inout", "name": "E14", "value": "E14"}, {"type": "inout", "name": "E16", "value": "E16"}, {"type": "inout", "name": "D15", "value": "D15"}, {"type": "inout", "name": "D16", "value": "D16"}, {"type": "inout", "name": "D14", "value": "D14"}, {"type": "inout", "name": "C16", "value": "C16"}, {"type": "inout", "name": "B16", "value": "B16"}, {"type": "inout", "name": "R16", "value": "R16"}, {"type": "inout", "name": "T15", "value": "T15"}, {"type": "inout", "name": "T16", "value": "T16"}, {"type": "inout", "name": "T13", "value": "T13"}, {"type": "inout", "name": "T14", "value": "T14"}, {"type": "inout", "name": "N12", "value": "N12"}, {"type": "inout", "name": "P13", "value": "P13"}, {"type": "inout", "name": "N10", "value": "N10"}, {"type": "inout", "name": "M11", "value": "M11"}, {"type": "inout", "name": "T11", "value": "T11"}, {"type": "inout", "name": "P10", "value": "P10"}, {"type": "inout", "name": "T10", "value": "T10"}, {"type": "inout", "name": "R10", "value": "R10"}, {"type": "inout", "name": "P8", "value": "P8"}, {"type": "inout", "name": "P9", "value": "P9"}, {"type": "inout", "name": "T9", "value": "T9"}, {"type": "inout", "name": "R9", "value": "R9"}, {"type": "inout", "name": "T7", "value": "T7"}, {"type": "inout", "name": "T8", "value": "T8"}, {"type": "inout", "name": "T6", "value": "T6"}, {"type": "inout", "name": "R6", "value": "R6"}, {"type": "inout", "name": "T5", "value": "T5"}, {"type": "inout", "name": "R5", "value": "R5"}, {"type": "inout", "name": "R3", "value": "R3"}, {"type": "inout", "name": "R4", "value": "R4"}, {"type": "inout", "name": "R2", "value": "R2"}, {"type": "inout", "name": "T3", "value": "T3"}, {"type": "inout", "name": "T1", "value": "T1"}, {"type": "inout", "name": "T2", "value": "T2"}, {"type": "inout", "name": "R1", "value": "R1"}, {"type": "inout", "name": "P1", "value": "P1"}, {"type": "inout", "name": "P2", "value": "P2"}, {"type": "inout", "name": "N3", "value": "N3"}, {"type": "inout", "name": "N2", "value": "N2"}, {"type": "inout", "name": "M2", "value": "M2"}, {"type": "inout", "name": "M1", "value": "M1"}, {"type": "inout", "name": "L3", "value": "L3"}, {"type": "inout", "name": "L1", "value": "L1"}, {"type": "inout", "name": "K3", "value": "K3"}, {"type": "inout", "name": "K1", "value": "K1"}, {"type": "inout", "name": "J2", "value": "J2"}, {"type": "inout", "name": "J1", "value": "J1"}, {"type": "inout", "name": "H2", "value": "H2"}, {"type": "inout", "name": "J3", "value": "J3"}, {"type": "inout", "name": "G2", "value": "G2"}, {"type": "inout", "name": "H1", "value": "H1"}, {"type": "inout", "name": "F2", "value": "F2"}, {"type": "inout", "name": "G1", "value": "G1"}, {"type": "inout", "name": "E2", "value": "E2"}, {"type": "inout", "name": "F1", "value": "F1"}, {"type": "inout", "name": "D1", "value": "D1"}, {"type": "inout", "name": "D2", "value": "D2"}, {"type": "inout", "name": "C1", "value": "C1"}, {"type": "inout", "name": "C2", "value": "C2"}, {"type": "inout", "name": "B1", "value": "B1"}, {"type": "inout", "name": "B2", "value": "B2"}] \ No newline at end of file +[{"type": "output", "name": "LED0", "value": "B5"}, {"type": "output", "name": "LED1", "value": "B4"}, {"type": "output", "name": "LED2", "value": "A2"}, {"type": "output", "name": "LED3", "value": "A1"}, {"type": "output", "name": "LED4", "value": "C5"}, {"type": "output", "name": "LED5", "value": "C4"}, {"type": "output", "name": "LED6", "value": "B3"}, {"type": "output", "name": "LED7", "value": "C3"}, {"type": "input", "name": "CLK", "value": "J3"}, {"type": "input", "name": "MISO", "value": "P12"}, {"type": "output", "name": "MOSI", "value": "P11"}, {"type": "output", "name": "SCK", "value": "R11"}, {"type": "output", "name": "SS", "value": "R12"}, {"type": "input", "name": "RESET", "value": "N11"}, {"type": "output", "name": "DONE", "value": "M10"}, {"type": "output", "name": "TX", "value": "B12"}, {"type": "input", "name": "RX", "value": "B10"}, {"type": "output", "name": "DCD", "value": "B15"}, {"type": "output", "name": "DSR", "value": "B14"}, {"type": "input", "name": "DTR", "value": "A16"}, {"type": "output", "name": "CTS", "value": "A15"}, {"type": "input", "name": "RTS", "value": "B13"}, {"type": "inout", "name": "A16", "value": "A16"}, {"type": "inout", "name": "A15", "value": "A15"}, {"type": "inout", "name": "B15", "value": "B15"}, {"type": "inout", "name": "B13", "value": "B13"}, {"type": "inout", "name": "B14", "value": "B14"}, {"type": "inout", "name": "B12", "value": "B12"}, {"type": "inout", "name": "B11", "value": "B11"}, {"type": "inout", "name": "A11", "value": "A11"}, {"type": "inout", "name": "B10", "value": "B10"}, {"type": "inout", "name": "A10", "value": "A10"}, {"type": "inout", "name": "C9", "value": "C9"}, {"type": "inout", "name": "A9", "value": "A9"}, {"type": "inout", "name": "B9", "value": "B9"}, {"type": "inout", "name": "B8", "value": "B8"}, {"type": "inout", "name": "A7", "value": "A7"}, {"type": "inout", "name": "B7", "value": "B7"}, {"type": "inout", "name": "C7", "value": "C7"}, {"type": "inout", "name": "A6", "value": "A6"}, {"type": "inout", "name": "C6", "value": "C6"}, {"type": "inout", "name": "B6", "value": "B6"}, {"type": "inout", "name": "C5", "value": "C5"}, {"type": "inout", "name": "A5", "value": "A5"}, {"type": "inout", "name": "C4", "value": "C4"}, {"type": "inout", "name": "B5", "value": "B5"}, {"type": "inout", "name": "C3", "value": "C3"}, {"type": "inout", "name": "B4", "value": "B4"}, {"type": "inout", "name": "B3", "value": "B3"}, {"type": "inout", "name": "A2", "value": "A2"}, {"type": "inout", "name": "A1", "value": "A1"}, {"type": "inout", "name": "R15", "value": "R15"}, {"type": "inout", "name": "P16", "value": "P16"}, {"type": "inout", "name": "P15", "value": "P15"}, {"type": "inout", "name": "N16", "value": "N16"}, {"type": "inout", "name": "M15", "value": "M15"}, {"type": "inout", "name": "M16", "value": "M16"}, {"type": "inout", "name": "L16", "value": "L16"}, {"type": "inout", "name": "K15", "value": "K15"}, {"type": "inout", "name": "K16", "value": "K16"}, {"type": "inout", "name": "K14", "value": "K14"}, {"type": "inout", "name": "J14", "value": "J14"}, {"type": "inout", "name": "G14", "value": "G14"}, {"type": "inout", "name": "F14", "value": "F14"}, {"type": "inout", "name": "J15", "value": "J15"}, {"type": "inout", "name": "H14", "value": "H14"}, {"type": "inout", "name": "H16", "value": "H16"}, {"type": "inout", "name": "G15", "value": "G15"}, {"type": "inout", "name": "G16", "value": "G16"}, {"type": "inout", "name": "F15", "value": "F15"}, {"type": "inout", "name": "F16", "value": "F16"}, {"type": "inout", "name": "E14", "value": "E14"}, {"type": "inout", "name": "E16", "value": "E16"}, {"type": "inout", "name": "D15", "value": "D15"}, {"type": "inout", "name": "D16", "value": "D16"}, {"type": "inout", "name": "D14", "value": "D14"}, {"type": "inout", "name": "C16", "value": "C16"}, {"type": "inout", "name": "B16", "value": "B16"}, {"type": "inout", "name": "R16", "value": "R16"}, {"type": "inout", "name": "T15", "value": "T15"}, {"type": "inout", "name": "T16", "value": "T16"}, {"type": "inout", "name": "T13", "value": "T13"}, {"type": "inout", "name": "T14", "value": "T14"}, {"type": "inout", "name": "N12", "value": "N12"}, {"type": "inout", "name": "P13", "value": "P13"}, {"type": "inout", "name": "N10", "value": "N10"}, {"type": "inout", "name": "M11", "value": "M11"}, {"type": "inout", "name": "T11", "value": "T11"}, {"type": "inout", "name": "P10", "value": "P10"}, {"type": "inout", "name": "T10", "value": "T10"}, {"type": "inout", "name": "R10", "value": "R10"}, {"type": "inout", "name": "P8", "value": "P8"}, {"type": "inout", "name": "P9", "value": "P9"}, {"type": "inout", "name": "T9", "value": "T9"}, {"type": "inout", "name": "R9", "value": "R9"}, {"type": "inout", "name": "T7", "value": "T7"}, {"type": "inout", "name": "T8", "value": "T8"}, {"type": "inout", "name": "T6", "value": "T6"}, {"type": "inout", "name": "R6", "value": "R6"}, {"type": "inout", "name": "T5", "value": "T5"}, {"type": "inout", "name": "R5", "value": "R5"}, {"type": "inout", "name": "R3", "value": "R3"}, {"type": "inout", "name": "R4", "value": "R4"}, {"type": "inout", "name": "R2", "value": "R2"}, {"type": "inout", "name": "T3", "value": "T3"}, {"type": "inout", "name": "T1", "value": "T1"}, {"type": "inout", "name": "T2", "value": "T2"}, {"type": "inout", "name": "R1", "value": "R1"}, {"type": "inout", "name": "P1", "value": "P1"}, {"type": "inout", "name": "P2", "value": "P2"}, {"type": "inout", "name": "N3", "value": "N3"}, {"type": "inout", "name": "N2", "value": "N2"}, {"type": "inout", "name": "M2", "value": "M2"}, {"type": "inout", "name": "M1", "value": "M1"}, {"type": "inout", "name": "L3", "value": "L3"}, {"type": "inout", "name": "L1", "value": "L1"}, {"type": "inout", "name": "K3", "value": "K3"}, {"type": "inout", "name": "K1", "value": "K1"}, {"type": "inout", "name": "J2", "value": "J2"}, {"type": "inout", "name": "J1", "value": "J1"}, {"type": "inout", "name": "H2", "value": "H2"}, {"type": "inout", "name": "J3", "value": "J3"}, {"type": "inout", "name": "G2", "value": "G2"}, {"type": "inout", "name": "H1", "value": "H1"}, {"type": "inout", "name": "F2", "value": "F2"}, {"type": "inout", "name": "G1", "value": "G1"}, {"type": "inout", "name": "E2", "value": "E2"}, {"type": "inout", "name": "F1", "value": "F1"}, {"type": "inout", "name": "D1", "value": "D1"}, {"type": "inout", "name": "D2", "value": "D2"}, {"type": "inout", "name": "C1", "value": "C1"}, {"type": "inout", "name": "C2", "value": "C2"}, {"type": "inout", "name": "B1", "value": "B1"}, {"type": "inout", "name": "B2", "value": "B2"}] \ No newline at end of file diff --git a/app/resources/boards/iCE40-HX8K/pinout.pcf b/app/resources/boards/iCE40-HX8K/pinout.pcf index b3a92e13c..f5c79097b 100644 --- a/app/resources/boards/iCE40-HX8K/pinout.pcf +++ b/app/resources/boards/iCE40-HX8K/pinout.pcf @@ -26,7 +26,6 @@ set_io --warn-no-port MISO P12 # input set_io --warn-no-port MOSI P11 # output set_io --warn-no-port SCK R11 # output set_io --warn-no-port SS R12 # output #J7.1 -set_io --warn-no-port RTS B13 # input set_io --warn-no-port RESET N11 # input set_io --warn-no-port DONE M10 # output @@ -39,6 +38,7 @@ set_io --warn-no-port DCD B15 # output set_io --warn-no-port DSR B14 # output set_io --warn-no-port DTR A16 # input set_io --warn-no-port CTS A15 # output +set_io --warn-no-port RTS B13 # input # ************************************ diff --git a/app/resources/boards/iCE40-HX8K/pinout.svg b/app/resources/boards/iCE40-HX8K/pinout.svg new file mode 100644 index 000000000..dd27c7995 --- /dev/null +++ b/app/resources/boards/iCE40-HX8K/pinout.svg @@ -0,0 +1,20582 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + B5 + + + + + B4 + + + + + + A2 + + + GND + + + + + + + C3 + + + + + B3 + + + + + + A1 + + + GND + + + + + + + + + + + + + + + + E16 + + + D16 + + + + + C16 + + + GND + + + + + + D15 + + + + D14 + + + + + B16 + + + GND + + + + + + + A6 + + + + B6 + + + + + + A5 + + + GND + + + + + + + C6 + + + C5 + + + + + + C4 + + + GND + + + + + + + H16 + + + + G16 + + + + + F16 + + + GND + + + + + + + + G15 + + + F15 + + + + + E14 + + + GND + + + + + + + + G2 + + + + F2 + + + + + + + E2 + + + GND + + + + + + + H1 + + + + G1 + + + + + F1 + + + GND + + + + + + + T7 + + + + T6 + + + + + T5 + + + GND + + + + + + + T8 + + + + R6 + + + + + R5 + + + GND + + + + + + A9 + + + + B8 + + + + + + B7 + + + GND + + + + + + B9 + + + A7 + + + + + + C7 + + + GND + + + + + + + K14 + + + + G14 + + + + + J15 + + + GND + + + + + + + + J14 + + + F14 + + + + + H14 + + + GND + + + + + + K3 + + J2 + + + H2 + + + GND + + + + + + K1 + + + + J1 + + + + + J3 + + + GND + + + + + + + T10 + + + + P8 + + + + + T9 + + + GND + + + + + + + R10 + + + + P9 + + + + + R9 + + + GND + + + + + + B12 + + + A11 + + + + + A10 + + + GND + + + + + + B11 + + + B10 + + + + + C9 + + + GND + + + + + + N16 + + + M16 + + + + + K15 + + + GND + + + + + + M15 + + + L16 + + + + + K16 + + + GND + + + + + + + N3 + + + M2 + + + L3 + + + GND + + + + + + N2 + + + + M1 + + + + + L1 + + + GND + + + + + + + N12 + + + + N10 + + + + + T11 + + + GND + + + + + + + P13 + + + + M11 + + + + + P10 + + + GND + + + + + + A16 + + + A15 + + + + + B13 + + + GND + + + + + + VCCIO0 + + + B15 + + + + + B14 + + + GND + + + + + + 1.2V + + + 1.2V + + + + + P16 + + + GND + + + + + + + VCCIO1 + + + + R15 + + + + + P15 + + + GND + + + + + + 3.3V + + + 3.3V + + + + P1 + + + GND + + + + + VCCIO3 + + + + + R1 + + + + + P2 + + + GND + + + + + + R16 + + + + T15 + + + + + T13 + + + GND + + + + + + + VCCIO2 + + + + T16 + + + + + T14 + + + GND + + + + + + + + + + + + + + + + + + J2 + J1 + J3 + J4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 7 6 5 4 3 2 1 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lattice HX8K + breakout board + + + + + + + + + + + + USB + + + + + + + + + FTDI + + + + + Clock + 12Mhz + + + FPGA + + + Serial + + SPI + + + + + SPI + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + iCE40HX8K + Power + + + + GND + + + + Serial Pin + + Test point + + Control + + Physical Pin + + + + 051 + + LED7 + + + + + + + LED6 + + + + + + + LED5 + + + + + + + LED4 + + + + + + LED3 + + + + + + LED2 + + + + + + LED1 + + + + + + LED0 + + + + + + + + + + + + + + + 047 + + + 046 + + + 045 + + + 044 + + + 042 + + + 041 + + + 039 + + S02 + + R11 + + SCK + + S01 + + P11 + + SDI + + S00 + + P12 + + SDO + + S03 + + R12 + + SS + + + CDONE + + DONE + + + CREST + + REST + FTDI + + + + B10 + + 014 + + RX + + B12 + + 013 + + TX + + B13 + + 009 + + RTS + + A16 + + 007 + + DTR + + A15 + + 008 + + CTS + + B14 + + 003 + + DSR + + B15 + + 001 + + DCD + + FTDI + + + + + + + + + + + 20 OCT 2017 + ver 1 rev 1 + +   + + + + + FPGA + wars + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Inkscape + Made with + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + D1 + + + + C1 + + + + + B1 + + + GND + + + + + + + D2 + + + + C2 + + + + + B2 + + + GND + + + + + + + R3 + + + + R2 + + + + + T1 + + + GND + + + + + + + R4 + + + + T3 + + + + + T2 + + + GND + + + + + + The VCCIOx test pins are connected + through a resistor in series to 3.3V + They are used to measure PIO intensities. + Jumpers position to program the FLASH + Jumpers position to program the bit stream + + + + + + + + + diff --git a/app/resources/boards/icestick/info.json b/app/resources/boards/icestick/info.json index 740dc73a6..7c7a54d3f 100644 --- a/app/resources/boards/icestick/info.json +++ b/app/resources/boards/icestick/info.json @@ -1,4 +1,9 @@ { "label": "iCEstick Evaluation Kit", - "datasheet": "http://www.latticesemi.com/icestick" + "datasheet": "http://www.latticesemi.com/icestick", + "FPGAResources": { + "pios": 96, + "plbs": 160, + "brams": 16 + } } diff --git a/app/resources/boards/icezum/info.json b/app/resources/boards/icezum/info.json index 8e4c4239d..fcecb89d9 100644 --- a/app/resources/boards/icezum/info.json +++ b/app/resources/boards/icezum/info.json @@ -1,4 +1,9 @@ { "label": "IceZUM Alhambra", - "datasheet": "https://github.com/FPGAwars/icezum/wiki" + "datasheet": "https://github.com/FPGAwars/icezum/wiki", + "FPGAResources": { + "pios": 96, + "plbs": 160, + "brams": 16 + } } diff --git a/app/resources/boards/icoboard/info.json b/app/resources/boards/icoboard/info.json index bc2e39a50..902b4c8cd 100644 --- a/app/resources/boards/icoboard/info.json +++ b/app/resources/boards/icoboard/info.json @@ -1,4 +1,9 @@ { "label": "icoBOARD 1.0", - "datasheet": "http://icoboard.org/about-icoboard.html" + "datasheet": "http://icoboard.org/about-icoboard.html", + "FPGAResources": { + "pios": 206, + "plbs": 960, + "brams": 32 + } } diff --git a/app/resources/boards/kefir/info.json b/app/resources/boards/kefir/info.json index 0e521f54f..fa2679f3f 100644 --- a/app/resources/boards/kefir/info.json +++ b/app/resources/boards/kefir/info.json @@ -1,4 +1,9 @@ { "label": "Kéfir I iCE40-HX4K", - "datasheet": "http://fpgalibre.sourceforge.net/Kefir/" + "datasheet": "http://fpgalibre.sourceforge.net/Kefir/", + "FPGAResources": { + "pios": 107, + "plbs": 960, + "brams": 32 + } } diff --git a/app/resources/boards/kefir/pinout.json b/app/resources/boards/kefir/pinout.json index 1a9d46ba9..50a9e8daa 100644 --- a/app/resources/boards/kefir/pinout.json +++ b/app/resources/boards/kefir/pinout.json @@ -1 +1 @@ -[{"type": "input", "name": "BTN1", "value": "136"}, {"type": "input", "name": "BTN2", "value": "134"}, {"type": "input", "name": "BTN3", "value": "128"}, {"type": "input", "name": "BTN4", "value": "122"}, {"type": "output", "name": "LED1", "value": "137"}, {"type": "output", "name": "LED2", "value": "135"}, {"type": "output", "name": "LED3", "value": "129"}, {"type": "output", "name": "LED4", "value": "121"}, {"type": "input", "name": "CLK", "value": "49"}, {"type": "inout", "name": "SS_B", "value": "71"}, {"type": "inout", "name": "AD_CS", "value": "101"}, {"type": "inout", "name": "AD_Din", "value": "102"}, {"type": "inout", "name": "AD_Dout", "value": "104"}, {"type": "inout", "name": "AD_Clk", "value": "105"}, {"type": "inout", "name": "USB_Vp_o", "value": "112"}, {"type": "inout", "name": "USB_Vm_o", "value": "113"}, {"type": "inout", "name": "USB_Vm_i", "value": "114"}, {"type": "inout", "name": "USB_Vp_i", "value": "115"}, {"type": "inout", "name": "USB_nOE", "value": "116"}, {"type": "inout", "name": "ARDU00", "value": "138"}, {"type": "inout", "name": "ARDU01", "value": "141"}, {"type": "inout", "name": "ARDU02", "value": "143"}, {"type": "inout", "name": "ARDU03", "value": "1"}, {"type": "inout", "name": "RESET_P2", "value": "73"}, {"type": "inout", "name": "Milk_TXD", "value": "37"}, {"type": "inout", "name": "Milk_RXD", "value": "38"}] \ No newline at end of file +[{"type": "input", "name": "BTN1", "value": "136"}, {"type": "input", "name": "BTN2", "value": "134"}, {"type": "input", "name": "BTN3", "value": "128"}, {"type": "input", "name": "BTN4", "value": "122"}, {"type": "output", "name": "LED1", "value": "137"}, {"type": "output", "name": "LED2", "value": "135"}, {"type": "output", "name": "LED3", "value": "129"}, {"type": "output", "name": "LED4", "value": "121"}, {"type": "input", "name": "CLK", "value": "49"}, {"type": "inout", "name": "SS_B", "value": "71"}, {"type": "inout", "name": "ISP_RESET", "value": "117"}, {"type": "inout", "name": "ISP_SCK", "value": "118"}, {"type": "inout", "name": "ISP_MOSI", "value": "119"}, {"type": "inout", "name": "ISP_MISO", "value": "120"}, {"type": "output", "name": "AD_CS", "value": "101"}, {"type": "output", "name": "AD_Din", "value": "102"}, {"type": "input", "name": "AD_Dout", "value": "104"}, {"type": "output", "name": "AD_Clk", "value": "105"}, {"type": "output", "name": "USB_Vp_o", "value": "112"}, {"type": "output", "name": "USB_Vm_o", "value": "113"}, {"type": "input", "name": "USB_Vm_i", "value": "114"}, {"type": "input", "name": "USB_Vp_i", "value": "115"}, {"type": "output", "name": "USB_nOE", "value": "116"}, {"type": "inout", "name": "ARDU00", "value": "138"}, {"type": "inout", "name": "ARDU01", "value": "141"}, {"type": "inout", "name": "ARDU02", "value": "143"}, {"type": "inout", "name": "ARDU03", "value": "1"}, {"type": "inout", "name": "ARDU04", "value": "4"}, {"type": "inout", "name": "ARDU05", "value": "8"}, {"type": "inout", "name": "ARDU06", "value": "10"}, {"type": "inout", "name": "ARDU07", "value": "12"}, {"type": "inout", "name": "ARDU08", "value": "19"}, {"type": "inout", "name": "ARDU09", "value": "21"}, {"type": "inout", "name": "ARDU10", "value": "23"}, {"type": "inout", "name": "ARDU11", "value": "25"}, {"type": "inout", "name": "ARDU12", "value": "28"}, {"type": "inout", "name": "ARDU13", "value": "31"}, {"type": "inout", "name": "ARDU26", "value": "139"}, {"type": "inout", "name": "ARDU27", "value": "142"}, {"type": "inout", "name": "ARDU28", "value": "144"}, {"type": "inout", "name": "ARDU29", "value": "2"}, {"type": "inout", "name": "ARDU30", "value": "3"}, {"type": "inout", "name": "ARDU31", "value": "7"}, {"type": "inout", "name": "ARDU32", "value": "9"}, {"type": "inout", "name": "ARDU33", "value": "11"}, {"type": "inout", "name": "ARDU34", "value": "20"}, {"type": "inout", "name": "ARDU35", "value": "22"}, {"type": "inout", "name": "ARDU36", "value": "24"}, {"type": "inout", "name": "ARDU37", "value": "26"}, {"type": "inout", "name": "ARDU38", "value": "29"}, {"type": "inout", "name": "ARDU39", "value": "32"}, {"type": "inout", "name": "ARDU40", "value": "33"}, {"type": "inout", "name": "ARDU41", "value": "34"}, {"type": "inout", "name": "RESET_P2", "value": "73"}, {"type": "inout", "name": "Milk_TXD", "value": "37"}, {"type": "inout", "name": "Milk_RXD", "value": "38"}, {"type": "inout", "name": "Milk_RTS", "value": "39"}, {"type": "inout", "name": "Milk_CTS", "value": "41"}, {"type": "inout", "name": "Milk_DTR", "value": "42"}, {"type": "inout", "name": "Milk_DSR", "value": "43"}, {"type": "inout", "name": "Milk_DCD", "value": "44"}, {"type": "inout", "name": "Milk_RI", "value": "45"}, {"type": "inout", "name": "PMA0", "value": "74"}, {"type": "inout", "name": "PMA1", "value": "75"}, {"type": "inout", "name": "PMA2", "value": "76"}, {"type": "inout", "name": "PMA3", "value": "78"}, {"type": "inout", "name": "PMA4", "value": "79"}, {"type": "inout", "name": "PMA5", "value": "80"}, {"type": "inout", "name": "PMA6", "value": "81"}, {"type": "inout", "name": "PMA7", "value": "87"}, {"type": "inout", "name": "PMB0", "value": "88"}, {"type": "inout", "name": "PMB1", "value": "90"}, {"type": "inout", "name": "PMB2", "value": "91"}, {"type": "inout", "name": "PMB3", "value": "95"}, {"type": "inout", "name": "PMB4", "value": "96"}, {"type": "inout", "name": "PMB5", "value": "97"}, {"type": "inout", "name": "PMB6", "value": "98"}, {"type": "inout", "name": "PMB7", "value": "99"}] \ No newline at end of file diff --git a/app/resources/boards/kefir/pinout.pcf b/app/resources/boards/kefir/pinout.pcf index 610078356..51480bac4 100644 --- a/app/resources/boards/kefir/pinout.pcf +++ b/app/resources/boards/kefir/pinout.pcf @@ -20,23 +20,55 @@ set_io --warn-no-port CLK 49 # input # SPI Flash enable control set_io --warn-no-port SS_B 71 +# ISP SPI +set_io --warn-no-port ISP_RESET 117 +set_io --warn-no-port ISP_SCK 118 +set_io --warn-no-port ISP_MOSI 119 +set_io --warn-no-port ISP_MISO 120 + # MCP3008 A/D -set_io --warn-no-port AD_CS 101 -set_io --warn-no-port AD_Din 102 -set_io --warn-no-port AD_Dout 104 -set_io --warn-no-port AD_Clk 105 +set_io --warn-no-port AD_CS 101 # output +set_io --warn-no-port AD_Din 102 # output +set_io --warn-no-port AD_Dout 104 # input +set_io --warn-no-port AD_Clk 105 # output # USB -set_io --warn-no-port USB_Vp_o 112 -set_io --warn-no-port USB_Vm_o 113 -set_io --warn-no-port USB_Vm_i 114 -set_io --warn-no-port USB_Vp_i 115 -set_io --warn-no-port USB_nOE 116 +set_io --warn-no-port USB_Vp_o 112 # output +set_io --warn-no-port USB_Vm_o 113 # output +set_io --warn-no-port USB_Vm_i 114 # input +set_io --warn-no-port USB_Vp_i 115 # input +set_io --warn-no-port USB_nOE 116 # output set_io --warn-no-port ARDU00 138 set_io --warn-no-port ARDU01 141 set_io --warn-no-port ARDU02 143 set_io --warn-no-port ARDU03 1 +set_io --warn-no-port ARDU04 4 +set_io --warn-no-port ARDU05 8 +set_io --warn-no-port ARDU06 10 +set_io --warn-no-port ARDU07 12 +set_io --warn-no-port ARDU08 19 +set_io --warn-no-port ARDU09 21 +set_io --warn-no-port ARDU10 23 +set_io --warn-no-port ARDU11 25 +set_io --warn-no-port ARDU12 28 +set_io --warn-no-port ARDU13 31 +set_io --warn-no-port ARDU26 139 +set_io --warn-no-port ARDU27 142 +set_io --warn-no-port ARDU28 144 +set_io --warn-no-port ARDU29 2 +set_io --warn-no-port ARDU30 3 +set_io --warn-no-port ARDU31 7 +set_io --warn-no-port ARDU32 9 +set_io --warn-no-port ARDU33 11 +set_io --warn-no-port ARDU34 20 +set_io --warn-no-port ARDU35 22 +set_io --warn-no-port ARDU36 24 +set_io --warn-no-port ARDU37 26 +set_io --warn-no-port ARDU38 29 +set_io --warn-no-port ARDU39 32 +set_io --warn-no-port ARDU40 33 +set_io --warn-no-port ARDU41 34 # Arduino Power (P2) # Active low RESET @@ -45,3 +77,30 @@ set_io --warn-no-port RESET_P2 73 # Milk channel A set_io --warn-no-port Milk_TXD 37 set_io --warn-no-port Milk_RXD 38 +set_io --warn-no-port Milk_RTS 39 +set_io --warn-no-port Milk_CTS 41 +set_io --warn-no-port Milk_DTR 42 +set_io --warn-no-port Milk_DSR 43 +set_io --warn-no-port Milk_DCD 44 +set_io --warn-no-port Milk_RI 45 + +# PMOD A +set_io --warn-no-port PMA0 74 +set_io --warn-no-port PMA1 75 +set_io --warn-no-port PMA2 76 +set_io --warn-no-port PMA3 78 +set_io --warn-no-port PMA4 79 +set_io --warn-no-port PMA5 80 +set_io --warn-no-port PMA6 81 +set_io --warn-no-port PMA7 87 + +# PMOD B +set_io --warn-no-port PMB0 88 +set_io --warn-no-port PMB1 90 +set_io --warn-no-port PMB2 91 +set_io --warn-no-port PMB3 95 +set_io --warn-no-port PMB4 96 +set_io --warn-no-port PMB5 97 +set_io --warn-no-port PMB6 98 +set_io --warn-no-port PMB7 99 + diff --git a/app/resources/locale/ca_ES/ca_ES.po b/app/resources/locale/ca_ES/ca_ES.po index c804a7c00..32a2f7234 100644 --- a/app/resources/locale/ca_ES/ca_ES.po +++ b/app/resources/locale/ca_ES/ca_ES.po @@ -12,11 +12,11 @@ msgstr "" "X-Generator: Poedit 1.8.7.1\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app/scripts/services/drivers.js:211 app/scripts/services/drivers.js:87 +#: app/scripts/services/drivers.js:210 app/scripts/services/drivers.js:87 msgid "Unplug and reconnect the board" msgstr "Desconnecta i connecta la placa" -#: app/scripts/services/drivers.js:195 +#: app/scripts/services/drivers.js:194 msgid "" "

FTDI driver installation instructions

  1. Connect the FPGA " "board
  2. Replace the (Interface 0) driver of the board by " @@ -26,7 +26,7 @@ msgstr "" "placa FPGA
  3. Reemplaça el driver de la (Interface 0) de la " "placa por libusbK
  4. Desconnecta i connecta la placa
" -#: app/scripts/services/drivers.js:218 +#: app/scripts/services/drivers.js:217 msgid "" "

FTDI driver uninstallation instructions

  1. Find the FPGA USB " "Device
  2. Select the board interface and uninstall the driver
" @@ -35,15 +35,15 @@ msgstr "" "dispositiu USB de la FPGA
  • Selecciona la interfície de la placa i " "desinstal·la el driver
  • " -#: app/views/menu.html:322 +#: app/views/menu.html:329 msgid "About Icestudio" msgstr "Quant a Icestudio" -#: app/views/menu.html:276 +#: app/views/menu.html:283 msgid "Add" msgstr "Afegir" -#: app/scripts/controllers/menu.js:562 +#: app/scripts/controllers/menu.js:574 msgid "Add a block to start" msgstr "Afegeix un bloc per a iniciar" @@ -51,11 +51,11 @@ msgstr "Afegeix un bloc per a iniciar" msgid "Add as block" msgstr "Afegeix com a bloc" -#: app/scripts/services/tools.js:1036 +#: app/scripts/services/tools.js:1059 msgid "All collections removed" msgstr "Col·leccions eliminades" -#: app/scripts/controllers/menu.js:586 +#: app/scripts/controllers/menu.js:598 msgid "All stored collections will be lost. Do you want to continue?" msgstr "Totes les col·leccions emmagatzemades es perdran. Vols continuar?" @@ -63,7 +63,7 @@ msgstr "Totes les col·leccions emmagatzemades es perdran. Vols continuar?" msgid "Author" msgstr "Autor" -#: app/views/menu.html:333 +#: app/views/menu.html:340 msgid "Basic" msgstr "Bàsic" @@ -86,7 +86,7 @@ msgstr "Bloc {{name}} importat" msgid "Blocks" msgstr "Blocs" -#: app/views/menu.html:183 +#: app/views/menu.html:190 msgid "Board" msgstr "Placa" @@ -94,27 +94,27 @@ msgstr "Placa" msgid "Board rules" msgstr "Regles de la placa" -#: app/scripts/controllers/menu.js:371 +#: app/scripts/controllers/menu.js:379 msgid "Board rules disabled" msgstr "Regles de la placa inhabilitades" -#: app/scripts/controllers/menu.js:366 +#: app/scripts/controllers/menu.js:374 msgid "Board rules enabled" msgstr "Regles de la placa habilitades" -#: app/scripts/services/tools.js:333 +#: app/scripts/services/tools.js:340 msgid "Board {{name}} not detected" msgstr "Placa {{name}} no detectada" -#: app/scripts/controllers/menu.js:510 +#: app/scripts/controllers/menu.js:522 msgid "Board {{name}} selected" msgstr "Placa {{name}} seleccionada" -#: app/views/menu.html:222 +#: app/views/menu.html:229 msgid "Build" msgstr "Sintetitza" -#: app/scripts/controllers/menu.js:531 +#: app/scripts/controllers/menu.js:541 msgid "Build done" msgstr "Sintetitzat realitzat" @@ -126,37 +126,37 @@ msgstr "Cancel·la" msgid "Catalan" msgstr "Català" -#: app/scripts/services/tools.js:727 +#: app/scripts/services/tools.js:743 msgid "Check Internet connection..." msgstr "Comprovant connexió a Internet..." -#: app/scripts/services/tools.js:737 +#: app/scripts/services/tools.js:753 msgid "Check Python..." msgstr "Comprovant Python" -#: app/scripts/services/tools.js:819 +#: app/scripts/services/tools.js:847 msgid "Click here to setup the drivers" msgstr "" -#: app/scripts/services/drivers.js:110 app/scripts/services/drivers.js:203 -#: app/scripts/services/drivers.js:225 app/scripts/services/tools.js:132 -#: app/scripts/services/tools.js:246 +#: app/scripts/services/drivers.js:109 app/scripts/services/drivers.js:202 +#: app/scripts/services/drivers.js:224 app/scripts/services/tools.js:139 +#: app/scripts/services/tools.js:253 msgid "Click here to install it" msgstr "" -#: app/scripts/controllers/menu.js:326 +#: app/scripts/controllers/menu.js:334 msgid "Click here to view" msgstr "" -#: app/scripts/controllers/menu.js:247 +#: app/scripts/controllers/menu.js:252 msgid "Close" msgstr "" -#: app/views/menu.html:347 +#: app/views/menu.html:353 msgid "Code" msgstr "Codi" -#: app/views/menu.html:194 +#: app/views/menu.html:201 msgid "Collection" msgstr "Col·lecció" @@ -164,39 +164,43 @@ msgstr "Col·lecció" msgid "Collection info" msgstr "" -#: app/scripts/controllers/menu.js:468 +#: app/scripts/controllers/menu.js:480 msgid "Collection {{collection}} info not defined" msgstr "" -#: app/scripts/services/tools.js:920 +#: app/scripts/services/tools.js:943 msgid "Collection {{name}} added" msgstr "Col·lecció {{name}} afegida" -#: app/scripts/services/tools.js:914 +#: app/scripts/services/tools.js:937 msgid "Collection {{name}} not replaced" msgstr "Col·lecció {{name}} no reemplaçada" -#: app/scripts/services/tools.js:1030 +#: app/scripts/services/tools.js:1053 msgid "Collection {{name}} removed" msgstr "Col·lecció {{name}} eliminada" -#: app/scripts/services/tools.js:910 +#: app/scripts/services/tools.js:933 msgid "Collection {{name}} replaced" msgstr "Col·lecció {{name}} reemplaçada" -#: app/scripts/controllers/menu.js:476 +#: app/scripts/controllers/menu.js:488 msgid "Collection {{name}} selected" msgstr "Col·lecció {{name}} seleccionada" -#: app/views/menu.html:272 +#: app/views/menu.html:279 msgid "Collections" msgstr "Col·leccions" -#: app/views/menu.html:318 +#: app/views/menu.html:325 msgid "Community forum" msgstr "Fòrum de la comunitat" -#: app/views/menu.html:344 +#: app/scripts/services/tools.js:348 +msgid "Configuration not completed" +msgstr "" + +#: app/views/menu.html:350 msgid "Constant" msgstr "Constant" @@ -216,11 +220,11 @@ msgstr "Retalla" msgid "Datasheet" msgstr "Full de dades" -#: app/views/menu.html:199 +#: app/views/menu.html:206 msgid "Default" msgstr "Per defecte" -#: app/scripts/services/tools.js:603 +#: app/scripts/services/tools.js:610 msgid "" "Default toolchain not found. Toolchain will be downloaded. This operation " "requires Internet connection. Do you want to continue?" @@ -232,39 +236,39 @@ msgstr "" msgid "Description" msgstr "Descripció" -#: app/views/menu.html:138 app/views/menu.html:265 +#: app/views/menu.html:138 app/views/menu.html:272 msgid "Disable" msgstr "Inhabilita" -#: app/scripts/controllers/menu.js:250 +#: app/scripts/controllers/menu.js:256 msgid "Do you want to close the application?" msgstr "Vols tancar l'aplicació?" -#: app/scripts/controllers/menu.js:576 +#: app/scripts/controllers/menu.js:588 msgid "Do you want to remove the {{name}} collection?" msgstr "Vols eliminar la col·lecció {{name}}?" -#: app/scripts/services/tools.js:906 +#: app/scripts/services/tools.js:929 msgid "Do you want to replace it?" msgstr "Vols reemplaçar-la?" -#: app/views/menu.html:311 +#: app/views/menu.html:318 msgid "Documentation" msgstr "Documentació" -#: app/views/menu.html:256 +#: app/views/menu.html:263 msgid "Drivers" msgstr "Drivers" -#: app/scripts/services/drivers.js:134 app/scripts/services/drivers.js:72 +#: app/scripts/services/drivers.js:133 app/scripts/services/drivers.js:72 msgid "Drivers disabled" msgstr "Drivers inhabilitats" -#: app/scripts/services/drivers.js:126 app/scripts/services/drivers.js:63 +#: app/scripts/services/drivers.js:125 app/scripts/services/drivers.js:63 msgid "Drivers enabled" msgstr "Drivers habilitats" -#: app/scripts/services/tools.js:344 +#: app/scripts/services/tools.js:357 msgid "Duplicated FPGA I/O ports" msgstr "Ports d'E/S de la FPGA duplicats" @@ -276,11 +280,11 @@ msgstr "Atributs de bloc duplicats" msgid "Edit" msgstr "Edita" -#: app/scripts/services/tools.js:895 +#: app/scripts/services/tools.js:918 msgid "Edit the collection name" msgstr "" -#: app/views/menu.html:133 app/views/menu.html:260 +#: app/views/menu.html:133 app/views/menu.html:267 msgid "Enable" msgstr "Habilita" @@ -312,11 +316,11 @@ msgstr "Introdueix els ports de sortida" msgid "Enter the parameters" msgstr "Introdueix els paràmetres" -#: app/scripts/controllers/menu.js:358 +#: app/scripts/controllers/menu.js:366 msgid "Enter the remote hostname user@host (experimental)" msgstr "Introdueix el nom del host remot usuari@host" -#: app/scripts/services/tools.js:626 +#: app/scripts/services/tools.js:639 msgid "Error: default toolchain not found in '{{dir}}'" msgstr "Error: toolchain per defecte no trobada en '{{dir}}'" @@ -324,7 +328,7 @@ msgstr "Error: toolchain per defecte no trobada en '{{dir}}'" msgid "Error: {{error}}" msgstr "Error: {{error}}" -#: app/scripts/services/tools.js:418 +#: app/scripts/services/tools.js:431 msgid "Errors detected in the design" msgstr "" @@ -332,7 +336,7 @@ msgstr "" msgid "Examples" msgstr "Exemples" -#: app/scripts/services/tools.js:275 +#: app/scripts/services/tools.js:282 msgid "Execute remote {{label}} ..." msgstr "Executa {{label}} remot..." @@ -340,19 +344,19 @@ msgstr "Executa {{label}} remot..." msgid "Export" msgstr "Exporta" -#: app/scripts/services/tools.js:762 +#: app/scripts/services/tools.js:778 msgid "Extract default apio files..." msgstr "Extreu fitxers de apio..." -#: app/scripts/services/tools.js:772 +#: app/scripts/services/tools.js:788 msgid "Extract default apio packages..." msgstr "Extreu paquets de apio..." -#: app/scripts/services/tools.js:750 +#: app/scripts/services/tools.js:766 msgid "Extract virtual env files..." msgstr "Extreu fitxers de l'entorn virtual" -#: app/scripts/services/tools.js:341 +#: app/scripts/services/tools.js:354 msgid "FPGA I/O ports not defined" msgstr "Ports d'E/S de la FPGA no definits" @@ -361,6 +365,10 @@ msgstr "Ports d'E/S de la FPGA no definits" msgid "FPGA pin" msgstr "FPGA pin" +#: app/views/menu.html:179 +msgid "FPGA resources" +msgstr "" + #: app/views/menu.html:29 msgid "File" msgstr "Fitxer" @@ -372,7 +380,7 @@ msgstr "" "El fitxer {{file}} ja existeix en el directori del projecte. Vols reemplaçar-" "lo?" -#: app/scripts/services/tools.js:214 +#: app/scripts/services/tools.js:221 msgid "File {{file}} does not exist" msgstr "El fitxer {{file}} no existeix" @@ -392,7 +400,7 @@ msgstr "Francès" msgid "Galician" msgstr "Gallec" -#: app/views/menu.html:301 +#: app/views/menu.html:308 msgid "Help" msgstr "Ajuda" @@ -400,35 +408,35 @@ msgstr "Ajuda" msgid "Image" msgstr "Imatge" -#: app/scripts/controllers/menu.js:735 +#: app/scripts/controllers/menu.js:753 msgid "Image {{name}} saved" msgstr "Imatge {{name}} desada" -#: app/views/menu.html:350 +#: app/views/menu.html:356 msgid "Information" msgstr "Informació" -#: app/views/menu.html:338 +#: app/views/menu.html:344 msgid "Input" msgstr "Entrada" -#: app/views/menu.html:233 +#: app/views/menu.html:240 msgid "Install" msgstr "Instal·lar" -#: app/scripts/services/tools.js:767 +#: app/scripts/services/tools.js:783 msgid "Install default apio..." msgstr "Instal·lar apio" -#: app/scripts/services/tools.js:816 +#: app/scripts/services/tools.js:832 msgid "Installation completed" msgstr "Instal·lació completada" -#: app/scripts/services/tools.js:657 app/scripts/services/tools.js:692 +#: app/scripts/services/tools.js:673 app/scripts/services/tools.js:708 msgid "Installing toolchain" msgstr "Instal·lant la toolchain" -#: app/scripts/services/drivers.js:118 app/scripts/services/tools.js:731 +#: app/scripts/services/drivers.js:117 app/scripts/services/tools.js:747 msgid "Internet connection required" msgstr "És necessari connexió a Internet" @@ -446,7 +454,7 @@ msgstr "" msgid "Invalid block connection:
    Pull up already connected" msgstr "Connexió de blocs no vàlida:
    Pull up connectada" -#: app/scripts/services/tools.js:926 +#: app/scripts/services/tools.js:949 msgid "Invalid collection {{name}}" msgstr "Col·lecció {{name}} invàlida" @@ -467,7 +475,7 @@ msgstr "Connexions d'entrada múltiple no vàlides" msgid "Invalid project format" msgstr "" -#: app/scripts/services/drivers.js:196 +#: app/scripts/services/drivers.js:195 msgid "It is recommended to use USB 2.0 ports" msgstr "" @@ -483,7 +491,7 @@ msgstr "" msgid "Local parameter" msgstr "Paràmetre local" -#: app/scripts/services/tools.js:755 +#: app/scripts/services/tools.js:771 msgid "Make virtual env..." msgstr "Crear entorn virtual" @@ -503,11 +511,11 @@ msgstr "Nou" msgid "New project {{name}} created" msgstr "Nou projecte {{name}} creat" -#: app/scripts/controllers/menu.js:594 +#: app/scripts/controllers/menu.js:606 msgid "No collections stored" msgstr "Cap col·lecció emmagatzemada" -#: app/scripts/controllers/main.js:15 app/scripts/controllers/menu.js:260 +#: app/scripts/controllers/main.js:15 app/scripts/controllers/menu.js:266 #: app/scripts/services/project.js:145 msgid "OK" msgstr "D'acord" @@ -528,7 +536,7 @@ msgstr "Obre SVG" msgid "Original file {{file}} does not exist" msgstr "El fitxer original {{file}} no existeix" -#: app/views/menu.html:341 +#: app/views/menu.html:347 msgid "Output" msgstr "Eixida" @@ -548,7 +556,7 @@ msgstr "Preferències" msgid "Project information" msgstr "Informació del projecte" -#: app/scripts/controllers/menu.js:326 app/scripts/controllers/menu.js:340 +#: app/scripts/controllers/menu.js:334 app/scripts/controllers/menu.js:348 msgid "Project information updated" msgstr "" @@ -560,7 +568,7 @@ msgstr "Projecte {{name}} carregat" msgid "Project {{name}} saved" msgstr "Projecte {{name}} desat" -#: app/scripts/services/tools.js:744 +#: app/scripts/services/tools.js:760 msgid "Python 2.7 is required" msgstr "És necessari Python 2.7" @@ -576,7 +584,7 @@ msgstr "Només lectura" msgid "Redo" msgstr "Refés" -#: app/scripts/services/tools.js:453 +#: app/scripts/services/tools.js:466 msgid "Remote host {{name}} not connected" msgstr "Host remot {{name}} no connectat" @@ -584,11 +592,11 @@ msgstr "Host remot {{name}} no connectat" msgid "Remote hostname" msgstr "Nom del host remot" -#: app/views/menu.html:241 app/views/menu.html:280 +#: app/views/menu.html:248 app/views/menu.html:287 msgid "Remove" msgstr "Suprimir" -#: app/views/menu.html:292 +#: app/views/menu.html:299 msgid "Remove all" msgstr "Suprimir tot" @@ -596,7 +604,7 @@ msgstr "Suprimir tot" msgid "Reset SVG" msgstr "Reseteja SVG" -#: app/views/menu.html:246 +#: app/views/menu.html:253 msgid "Reset default" msgstr "Resetejar els valors per defecte" @@ -612,7 +620,7 @@ msgstr "Desa SVG" msgid "Save as" msgstr "Anomena i desa" -#: app/views/menu.html:180 +#: app/views/menu.html:187 msgid "Select" msgstr "Selecciona" @@ -624,7 +632,7 @@ msgstr "Selecciona tot" msgid "Show clock" msgstr "Mostra rellotge" -#: app/views/menu.html:314 +#: app/views/menu.html:321 msgid "Source code" msgstr "Codi font" @@ -632,19 +640,19 @@ msgstr "Codi font" msgid "Spanish" msgstr "Espanyol" -#: app/scripts/controllers/menu.js:530 +#: app/scripts/controllers/menu.js:540 msgid "Start build" msgstr "Iniciar sintetitzat" -#: app/scripts/controllers/menu.js:542 +#: app/scripts/controllers/menu.js:553 msgid "Start upload" msgstr "Iniciar càrrega" -#: app/scripts/controllers/menu.js:518 +#: app/scripts/controllers/menu.js:530 msgid "Start verification" msgstr "Iniciar verificació" -#: app/scripts/services/tools.js:264 +#: app/scripts/services/tools.js:271 msgid "Synchronize remote files ..." msgstr "Sincronitza fitxers remots" @@ -652,11 +660,11 @@ msgstr "Sincronitza fitxers remots" msgid "Testbench" msgstr "Testbench" -#: app/scripts/services/tools.js:905 +#: app/scripts/services/tools.js:928 msgid "The collection {{name}} already exists." msgstr "La col·leccio {{name}} ja existeix" -#: app/scripts/controllers/menu.js:497 +#: app/scripts/controllers/menu.js:509 msgid "" "The current FPGA I/O configuration will be lost. Do you want to change to " "{{name}} board?" @@ -664,15 +672,15 @@ msgstr "" "La configuració actual d'E/S de la FPGA es perdrà. Vols canviar a la placa " "{{name}}?" -#: app/scripts/services/tools.js:631 +#: app/scripts/services/tools.js:647 msgid "The toolchain will be removed. Do you want to continue?" msgstr "La toolchain serà eliminada. Vols continuar?" -#: app/scripts/services/tools.js:619 +#: app/scripts/services/tools.js:632 msgid "The toolchain will be restored to default. Do you want to continue?" msgstr "La toolchain serà restaurada als valors per defecte. Vols continuar?" -#: app/scripts/services/tools.js:611 +#: app/scripts/services/tools.js:621 msgid "" "The toolchain will be updated. This operation requires Internet connection. " "Do you want to continue?" @@ -692,28 +700,28 @@ msgstr "" msgid "This project is designed for the {{name}} board." msgstr "Aquest projecte està dissenyat per a la placa {{name}}" -#: app/views/menu.html:229 +#: app/views/menu.html:236 msgid "Toolchain" msgstr "Toolchain" -#: app/scripts/services/tools.js:818 +#: app/scripts/services/tools.js:834 msgid "Toolchain installed" msgstr "Toolchain instal·lada" -#: app/scripts/services/drivers.js:203 app/scripts/services/drivers.js:225 -#: app/scripts/services/tools.js:132 app/scripts/services/tools.js:834 +#: app/scripts/services/drivers.js:202 app/scripts/services/drivers.js:224 +#: app/scripts/services/tools.js:139 app/scripts/services/tools.js:839 msgid "Toolchain not installed" msgstr "La toolchain no està instal·lada" -#: app/scripts/services/tools.js:636 +#: app/scripts/services/tools.js:652 msgid "Toolchain removed" msgstr "Toolchain eliminada" -#: app/scripts/services/tools.js:246 +#: app/scripts/services/tools.js:253 msgid "Toolchain version does not match" msgstr "" -#: app/views/menu.html:216 +#: app/views/menu.html:223 msgid "Tools" msgstr "Eines" @@ -721,7 +729,7 @@ msgstr "Eines" msgid "Undo" msgstr "Desfés" -#: app/scripts/services/tools.js:336 +#: app/scripts/services/tools.js:343 msgid "Unknown board" msgstr "Placa desconeguda" @@ -729,7 +737,7 @@ msgstr "Placa desconeguda" msgid "Untitled" msgstr "Sense títol" -#: app/views/menu.html:236 +#: app/views/menu.html:243 msgid "Update" msgstr "Actualitzar" @@ -738,23 +746,23 @@ msgstr "Actualitzar" msgid "Update the block name" msgstr "Actualitza el nom del bloc" -#: app/views/menu.html:225 +#: app/views/menu.html:232 msgid "Upload" msgstr "Carrega" -#: app/scripts/controllers/menu.js:543 +#: app/scripts/controllers/menu.js:554 msgid "Upload done" msgstr "Càrrega realitzada" -#: app/scripts/controllers/menu.js:519 +#: app/scripts/controllers/menu.js:531 msgid "Verification done" msgstr "Verificació realitzada" -#: app/views/menu.html:219 +#: app/views/menu.html:226 msgid "Verify" msgstr "Verifica" -#: app/scripts/services/utils.js:531 app/views/menu.html:307 +#: app/scripts/services/utils.js:531 app/views/menu.html:314 msgid "Version" msgstr "Versió" @@ -762,11 +770,11 @@ msgstr "Versió" msgid "View" msgstr "Visualitza" -#: app/views/menu.html:304 +#: app/views/menu.html:311 msgid "View license" msgstr "Visualitzar llicència" -#: app/scripts/services/tools.js:421 +#: app/scripts/services/tools.js:434 msgid "Warnings detected in the design" msgstr "" @@ -792,7 +800,7 @@ msgstr "Nom del port incorrecte" msgid "Wrong project format: {{name}}" msgstr "Format de projecte incorrecte: {{name}}" -#: app/scripts/services/tools.js:450 +#: app/scripts/services/tools.js:463 msgid "Wrong remote hostname {{name}}" msgstr "Nom del host remot incorrecte {{name}}" @@ -800,7 +808,7 @@ msgstr "Nom del host remot incorrecte {{name}}" msgid "You can load it as it is or convert it for the {{name}} board." msgstr "" -#: app/scripts/controllers/menu.js:251 +#: app/scripts/controllers/menu.js:257 msgid "Your changes will be lost if you don’t save them" msgstr "Els teus canvis es perdran si no els deses" @@ -808,23 +816,23 @@ msgstr "Els teus canvis es perdran si no els deses" msgid "back" msgstr "enrere" -#: app/scripts/services/drivers.js:109 app/scripts/services/utils.js:862 +#: app/scripts/services/drivers.js:108 app/scripts/services/utils.js:862 msgid "{{app}} is required." msgstr "" -#: app/scripts/controllers/menu.js:430 +#: app/scripts/controllers/menu.js:438 msgid "{{board}} datasheet not defined" msgstr "Full de dades de {{board}} no definit" -#: app/scripts/controllers/menu.js:420 +#: app/scripts/controllers/menu.js:428 msgid "{{board}} pinout not defined" msgstr "{{board}} pinout no definit" -#: app/scripts/controllers/menu.js:449 +#: app/scripts/controllers/menu.js:457 msgid "{{board}} rules not defined" msgstr "Regles de {{board}} no definides" -#: app/scripts/controllers/menu.js:201 app/scripts/controllers/menu.js:224 +#: app/scripts/controllers/menu.js:204 app/scripts/controllers/menu.js:228 msgid "{{name}} exported" msgstr "" diff --git a/app/resources/locale/en/en.po b/app/resources/locale/en/en.po index 87876ba53..177d0dac8 100644 --- a/app/resources/locale/en/en.po +++ b/app/resources/locale/en/en.po @@ -12,11 +12,11 @@ msgstr "" "X-Generator: Poedit 1.8.7.1\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app/scripts/services/drivers.js:211 app/scripts/services/drivers.js:87 +#: app/scripts/services/drivers.js:210 app/scripts/services/drivers.js:87 msgid "Unplug and reconnect the board" msgstr "Unplug and reconnect the board" -#: app/scripts/services/drivers.js:195 +#: app/scripts/services/drivers.js:194 msgid "" "

    FTDI driver installation instructions

    1. Connect the FPGA " "board
    2. Replace the (Interface 0) driver of the board by " @@ -26,7 +26,7 @@ msgstr "" "board
    3. Replace the (Interface 0) driver of the board by " "libusbK
    4. Unplug and reconnect the board
    " -#: app/scripts/services/drivers.js:218 +#: app/scripts/services/drivers.js:217 msgid "" "

    FTDI driver uninstallation instructions

    1. Find the FPGA USB " "Device
    2. Select the board interface and uninstall the driver
    " @@ -34,15 +34,15 @@ msgstr "" "

    FTDI driver uninstallation instructions

    1. Find the FPGA USB " "Device
    2. Select the board interface and uninstall the driver
    " -#: app/views/menu.html:322 +#: app/views/menu.html:329 msgid "About Icestudio" msgstr "About Icestudio" -#: app/views/menu.html:276 +#: app/views/menu.html:283 msgid "Add" msgstr "Add" -#: app/scripts/controllers/menu.js:562 +#: app/scripts/controllers/menu.js:574 msgid "Add a block to start" msgstr "Add a block to start" @@ -50,11 +50,11 @@ msgstr "Add a block to start" msgid "Add as block" msgstr "Add as block" -#: app/scripts/services/tools.js:1036 +#: app/scripts/services/tools.js:1059 msgid "All collections removed" msgstr "All collections removed" -#: app/scripts/controllers/menu.js:586 +#: app/scripts/controllers/menu.js:598 msgid "All stored collections will be lost. Do you want to continue?" msgstr "All stored collections will be lost. Do you want to continue?" @@ -62,7 +62,7 @@ msgstr "All stored collections will be lost. Do you want to continue?" msgid "Author" msgstr "Author" -#: app/views/menu.html:333 +#: app/views/menu.html:340 msgid "Basic" msgstr "Basic" @@ -85,7 +85,7 @@ msgstr "Block {{name}} imported" msgid "Blocks" msgstr "Blocks" -#: app/views/menu.html:183 +#: app/views/menu.html:190 msgid "Board" msgstr "Board" @@ -93,27 +93,27 @@ msgstr "Board" msgid "Board rules" msgstr "Board rules" -#: app/scripts/controllers/menu.js:371 +#: app/scripts/controllers/menu.js:379 msgid "Board rules disabled" msgstr "Board rules disabled" -#: app/scripts/controllers/menu.js:366 +#: app/scripts/controllers/menu.js:374 msgid "Board rules enabled" msgstr "Board rules enabled" -#: app/scripts/services/tools.js:333 +#: app/scripts/services/tools.js:340 msgid "Board {{name}} not detected" msgstr "Board {{name}} not detected" -#: app/scripts/controllers/menu.js:510 +#: app/scripts/controllers/menu.js:522 msgid "Board {{name}} selected" msgstr "Board {{name}} selected" -#: app/views/menu.html:222 +#: app/views/menu.html:229 msgid "Build" msgstr "Build" -#: app/scripts/controllers/menu.js:531 +#: app/scripts/controllers/menu.js:541 msgid "Build done" msgstr "Build done" @@ -125,37 +125,37 @@ msgstr "Cancel" msgid "Catalan" msgstr "Catalan" -#: app/scripts/services/tools.js:727 +#: app/scripts/services/tools.js:743 msgid "Check Internet connection..." msgstr "Check Internet connection..." -#: app/scripts/services/tools.js:737 +#: app/scripts/services/tools.js:753 msgid "Check Python..." msgstr "Check Python..." -#: app/scripts/services/tools.js:819 +#: app/scripts/services/tools.js:847 msgid "Click here to setup the drivers" msgstr "Click here to setup the drivers" -#: app/scripts/services/drivers.js:110 app/scripts/services/drivers.js:203 -#: app/scripts/services/drivers.js:225 app/scripts/services/tools.js:132 -#: app/scripts/services/tools.js:246 +#: app/scripts/services/drivers.js:109 app/scripts/services/drivers.js:202 +#: app/scripts/services/drivers.js:224 app/scripts/services/tools.js:139 +#: app/scripts/services/tools.js:253 msgid "Click here to install it" msgstr "Click here to install it" -#: app/scripts/controllers/menu.js:326 +#: app/scripts/controllers/menu.js:334 msgid "Click here to view" msgstr "Click here to view" -#: app/scripts/controllers/menu.js:247 +#: app/scripts/controllers/menu.js:252 msgid "Close" msgstr "Close" -#: app/views/menu.html:347 +#: app/views/menu.html:353 msgid "Code" msgstr "Code" -#: app/views/menu.html:194 +#: app/views/menu.html:201 msgid "Collection" msgstr "Collection" @@ -163,39 +163,43 @@ msgstr "Collection" msgid "Collection info" msgstr "Collection info" -#: app/scripts/controllers/menu.js:468 +#: app/scripts/controllers/menu.js:480 msgid "Collection {{collection}} info not defined" msgstr "Collection {{collection}} info not defined" -#: app/scripts/services/tools.js:920 +#: app/scripts/services/tools.js:943 msgid "Collection {{name}} added" msgstr "Collection {{name}} added" -#: app/scripts/services/tools.js:914 +#: app/scripts/services/tools.js:937 msgid "Collection {{name}} not replaced" msgstr "Collection {{name}} not replaced" -#: app/scripts/services/tools.js:1030 +#: app/scripts/services/tools.js:1053 msgid "Collection {{name}} removed" msgstr "Collection {{name}} removed" -#: app/scripts/services/tools.js:910 +#: app/scripts/services/tools.js:933 msgid "Collection {{name}} replaced" msgstr "Collection {{name}} replaced" -#: app/scripts/controllers/menu.js:476 +#: app/scripts/controllers/menu.js:488 msgid "Collection {{name}} selected" msgstr "Collection {{name}} selected" -#: app/views/menu.html:272 +#: app/views/menu.html:279 msgid "Collections" msgstr "Collections" -#: app/views/menu.html:318 +#: app/views/menu.html:325 msgid "Community forum" msgstr "Community forum" -#: app/views/menu.html:344 +#: app/scripts/services/tools.js:348 +msgid "Configuration not completed" +msgstr "Configuration not completed" + +#: app/views/menu.html:350 msgid "Constant" msgstr "Constant" @@ -215,11 +219,11 @@ msgstr "Cut" msgid "Datasheet" msgstr "Datasheet" -#: app/views/menu.html:199 +#: app/views/menu.html:206 msgid "Default" msgstr "Default" -#: app/scripts/services/tools.js:603 +#: app/scripts/services/tools.js:610 msgid "" "Default toolchain not found. Toolchain will be downloaded. This operation " "requires Internet connection. Do you want to continue?" @@ -231,39 +235,39 @@ msgstr "" msgid "Description" msgstr "Description" -#: app/views/menu.html:138 app/views/menu.html:265 +#: app/views/menu.html:138 app/views/menu.html:272 msgid "Disable" msgstr "Disable" -#: app/scripts/controllers/menu.js:250 +#: app/scripts/controllers/menu.js:256 msgid "Do you want to close the application?" msgstr "Do you want to close the application?" -#: app/scripts/controllers/menu.js:576 +#: app/scripts/controllers/menu.js:588 msgid "Do you want to remove the {{name}} collection?" msgstr "Do you want to remove the {{name}} collection?" -#: app/scripts/services/tools.js:906 +#: app/scripts/services/tools.js:929 msgid "Do you want to replace it?" msgstr "Do you want to replace it?" -#: app/views/menu.html:311 +#: app/views/menu.html:318 msgid "Documentation" msgstr "Documentation" -#: app/views/menu.html:256 +#: app/views/menu.html:263 msgid "Drivers" msgstr "Drivers" -#: app/scripts/services/drivers.js:134 app/scripts/services/drivers.js:72 +#: app/scripts/services/drivers.js:133 app/scripts/services/drivers.js:72 msgid "Drivers disabled" msgstr "Drivers disabled" -#: app/scripts/services/drivers.js:126 app/scripts/services/drivers.js:63 +#: app/scripts/services/drivers.js:125 app/scripts/services/drivers.js:63 msgid "Drivers enabled" msgstr "Drivers enabled" -#: app/scripts/services/tools.js:344 +#: app/scripts/services/tools.js:357 msgid "Duplicated FPGA I/O ports" msgstr "Duplicated FPGA I/O ports" @@ -275,11 +279,11 @@ msgstr "Duplicated block attributes" msgid "Edit" msgstr "Edit" -#: app/scripts/services/tools.js:895 +#: app/scripts/services/tools.js:918 msgid "Edit the collection name" msgstr "Edit the collection name" -#: app/views/menu.html:133 app/views/menu.html:260 +#: app/views/menu.html:133 app/views/menu.html:267 msgid "Enable" msgstr "Enable" @@ -311,11 +315,11 @@ msgstr "Enter the output ports" msgid "Enter the parameters" msgstr "Enter the parameters" -#: app/scripts/controllers/menu.js:358 +#: app/scripts/controllers/menu.js:366 msgid "Enter the remote hostname user@host (experimental)" msgstr "Enter the remote hostname user@host (experimental)" -#: app/scripts/services/tools.js:626 +#: app/scripts/services/tools.js:639 msgid "Error: default toolchain not found in '{{dir}}'" msgstr "Error: default toolchain not found in '{{dir}}'" @@ -323,7 +327,7 @@ msgstr "Error: default toolchain not found in '{{dir}}'" msgid "Error: {{error}}" msgstr "Error: {{error}}" -#: app/scripts/services/tools.js:418 +#: app/scripts/services/tools.js:431 msgid "Errors detected in the design" msgstr "Errors detected in the design" @@ -331,7 +335,7 @@ msgstr "Errors detected in the design" msgid "Examples" msgstr "Examples" -#: app/scripts/services/tools.js:275 +#: app/scripts/services/tools.js:282 msgid "Execute remote {{label}} ..." msgstr "Execute remote {{label}} ..." @@ -339,19 +343,19 @@ msgstr "Execute remote {{label}} ..." msgid "Export" msgstr "Export" -#: app/scripts/services/tools.js:762 +#: app/scripts/services/tools.js:778 msgid "Extract default apio files..." msgstr "Extract default apio files..." -#: app/scripts/services/tools.js:772 +#: app/scripts/services/tools.js:788 msgid "Extract default apio packages..." msgstr "Extract default apio packages..." -#: app/scripts/services/tools.js:750 +#: app/scripts/services/tools.js:766 msgid "Extract virtual env files..." msgstr "Extract virtual env files..." -#: app/scripts/services/tools.js:341 +#: app/scripts/services/tools.js:354 msgid "FPGA I/O ports not defined" msgstr "FPGA I/O ports not defined" @@ -360,6 +364,10 @@ msgstr "FPGA I/O ports not defined" msgid "FPGA pin" msgstr "FPGA pin" +#: app/views/menu.html:179 +msgid "FPGA resources" +msgstr "FPGA resources" + #: app/views/menu.html:29 msgid "File" msgstr "File" @@ -370,7 +378,7 @@ msgid "" msgstr "" "File {{file}} already exists in the project path. Do you want to replace it?" -#: app/scripts/services/tools.js:214 +#: app/scripts/services/tools.js:221 msgid "File {{file}} does not exist" msgstr "File {{file}} does not exist" @@ -390,7 +398,7 @@ msgstr "French" msgid "Galician" msgstr "Galician" -#: app/views/menu.html:301 +#: app/views/menu.html:308 msgid "Help" msgstr "Help" @@ -398,35 +406,35 @@ msgstr "Help" msgid "Image" msgstr "Image" -#: app/scripts/controllers/menu.js:735 +#: app/scripts/controllers/menu.js:753 msgid "Image {{name}} saved" msgstr "Image {{name}} saved" -#: app/views/menu.html:350 +#: app/views/menu.html:356 msgid "Information" msgstr "Information" -#: app/views/menu.html:338 +#: app/views/menu.html:344 msgid "Input" msgstr "Input" -#: app/views/menu.html:233 +#: app/views/menu.html:240 msgid "Install" msgstr "Install" -#: app/scripts/services/tools.js:767 +#: app/scripts/services/tools.js:783 msgid "Install default apio..." msgstr "Install default apio..." -#: app/scripts/services/tools.js:816 +#: app/scripts/services/tools.js:832 msgid "Installation completed" msgstr "Installation completed" -#: app/scripts/services/tools.js:657 app/scripts/services/tools.js:692 +#: app/scripts/services/tools.js:673 app/scripts/services/tools.js:708 msgid "Installing toolchain" msgstr "Installing toolchain" -#: app/scripts/services/drivers.js:118 app/scripts/services/tools.js:731 +#: app/scripts/services/drivers.js:117 app/scripts/services/tools.js:747 msgid "Internet connection required" msgstr "Internet connection required" @@ -442,7 +450,7 @@ msgstr "Invalid Pull up connection:
    only Input blocks allowed" msgid "Invalid block connection:
    Pull up already connected" msgstr "Invalid block connection:
    Pull up already connected" -#: app/scripts/services/tools.js:926 +#: app/scripts/services/tools.js:949 msgid "Invalid collection {{name}}" msgstr "Invalid collection {{name}}" @@ -463,7 +471,7 @@ msgstr "Invalid multiple input connections" msgid "Invalid project format" msgstr "Invalid project format" -#: app/scripts/services/drivers.js:196 +#: app/scripts/services/drivers.js:195 msgid "It is recommended to use USB 2.0 ports" msgstr "It is recommended to use USB 2.0 ports" @@ -479,7 +487,7 @@ msgstr "Load" msgid "Local parameter" msgstr "Local parameter" -#: app/scripts/services/tools.js:755 +#: app/scripts/services/tools.js:771 msgid "Make virtual env..." msgstr "Make virtual env..." @@ -499,11 +507,11 @@ msgstr "New" msgid "New project {{name}} created" msgstr "New project {{name}} created" -#: app/scripts/controllers/menu.js:594 +#: app/scripts/controllers/menu.js:606 msgid "No collections stored" msgstr "No collections stored" -#: app/scripts/controllers/main.js:15 app/scripts/controllers/menu.js:260 +#: app/scripts/controllers/main.js:15 app/scripts/controllers/menu.js:266 #: app/scripts/services/project.js:145 msgid "OK" msgstr "OK" @@ -524,7 +532,7 @@ msgstr "Open SVG" msgid "Original file {{file}} does not exist" msgstr "Original file {{file}} does not exist" -#: app/views/menu.html:341 +#: app/views/menu.html:347 msgid "Output" msgstr "Output" @@ -544,7 +552,7 @@ msgstr "Preferences" msgid "Project information" msgstr "Project information" -#: app/scripts/controllers/menu.js:326 app/scripts/controllers/menu.js:340 +#: app/scripts/controllers/menu.js:334 app/scripts/controllers/menu.js:348 msgid "Project information updated" msgstr "Project information updated" @@ -556,7 +564,7 @@ msgstr "Project {{name}} loaded" msgid "Project {{name}} saved" msgstr "Project {{name}} saved" -#: app/scripts/services/tools.js:744 +#: app/scripts/services/tools.js:760 msgid "Python 2.7 is required" msgstr "Python 2.7 is required" @@ -572,7 +580,7 @@ msgstr "Read only" msgid "Redo" msgstr "Redo" -#: app/scripts/services/tools.js:453 +#: app/scripts/services/tools.js:466 msgid "Remote host {{name}} not connected" msgstr "Remote host {{name}} not connected" @@ -580,11 +588,11 @@ msgstr "Remote host {{name}} not connected" msgid "Remote hostname" msgstr "Remote hostname" -#: app/views/menu.html:241 app/views/menu.html:280 +#: app/views/menu.html:248 app/views/menu.html:287 msgid "Remove" msgstr "Remove" -#: app/views/menu.html:292 +#: app/views/menu.html:299 msgid "Remove all" msgstr "Remove all" @@ -592,7 +600,7 @@ msgstr "Remove all" msgid "Reset SVG" msgstr "Reset SVG" -#: app/views/menu.html:246 +#: app/views/menu.html:253 msgid "Reset default" msgstr "Reset default" @@ -608,7 +616,7 @@ msgstr "Save SVG" msgid "Save as" msgstr "Save as" -#: app/views/menu.html:180 +#: app/views/menu.html:187 msgid "Select" msgstr "Select" @@ -620,7 +628,7 @@ msgstr "Select all" msgid "Show clock" msgstr "Show clock" -#: app/views/menu.html:314 +#: app/views/menu.html:321 msgid "Source code" msgstr "Source code" @@ -628,19 +636,19 @@ msgstr "Source code" msgid "Spanish" msgstr "Spanish" -#: app/scripts/controllers/menu.js:530 +#: app/scripts/controllers/menu.js:540 msgid "Start build" msgstr "Start build" -#: app/scripts/controllers/menu.js:542 +#: app/scripts/controllers/menu.js:553 msgid "Start upload" msgstr "Start upload" -#: app/scripts/controllers/menu.js:518 +#: app/scripts/controllers/menu.js:530 msgid "Start verification" msgstr "Start verification" -#: app/scripts/services/tools.js:264 +#: app/scripts/services/tools.js:271 msgid "Synchronize remote files ..." msgstr "Synchronize remote files ..." @@ -648,11 +656,11 @@ msgstr "Synchronize remote files ..." msgid "Testbench" msgstr "Testbench" -#: app/scripts/services/tools.js:905 +#: app/scripts/services/tools.js:928 msgid "The collection {{name}} already exists." msgstr "The collection {{name}} already exists." -#: app/scripts/controllers/menu.js:497 +#: app/scripts/controllers/menu.js:509 msgid "" "The current FPGA I/O configuration will be lost. Do you want to change to " "{{name}} board?" @@ -660,15 +668,15 @@ msgstr "" "The current FPGA I/O configuration will be lost. Do you want to change to " "{{name}} board?" -#: app/scripts/services/tools.js:631 +#: app/scripts/services/tools.js:647 msgid "The toolchain will be removed. Do you want to continue?" msgstr "The toolchain will be removed. Do you want to continue?" -#: app/scripts/services/tools.js:619 +#: app/scripts/services/tools.js:632 msgid "The toolchain will be restored to default. Do you want to continue?" msgstr "The toolchain will be restored to default. Do you want to continue?" -#: app/scripts/services/tools.js:611 +#: app/scripts/services/tools.js:621 msgid "" "The toolchain will be updated. This operation requires Internet connection. " "Do you want to continue?" @@ -688,28 +696,28 @@ msgstr "" msgid "This project is designed for the {{name}} board." msgstr "This project is designed for the {{name}} board." -#: app/views/menu.html:229 +#: app/views/menu.html:236 msgid "Toolchain" msgstr "Toolchain" -#: app/scripts/services/tools.js:818 +#: app/scripts/services/tools.js:834 msgid "Toolchain installed" msgstr "Toolchain installed" -#: app/scripts/services/drivers.js:203 app/scripts/services/drivers.js:225 -#: app/scripts/services/tools.js:132 app/scripts/services/tools.js:834 +#: app/scripts/services/drivers.js:202 app/scripts/services/drivers.js:224 +#: app/scripts/services/tools.js:139 app/scripts/services/tools.js:839 msgid "Toolchain not installed" msgstr "Toolchain not installed" -#: app/scripts/services/tools.js:636 +#: app/scripts/services/tools.js:652 msgid "Toolchain removed" msgstr "Toolchain removed" -#: app/scripts/services/tools.js:246 +#: app/scripts/services/tools.js:253 msgid "Toolchain version does not match" msgstr "Toolchain version does not match" -#: app/views/menu.html:216 +#: app/views/menu.html:223 msgid "Tools" msgstr "Tools" @@ -717,7 +725,7 @@ msgstr "Tools" msgid "Undo" msgstr "Undo" -#: app/scripts/services/tools.js:336 +#: app/scripts/services/tools.js:343 msgid "Unknown board" msgstr "Unknown board" @@ -725,7 +733,7 @@ msgstr "Unknown board" msgid "Untitled" msgstr "Untitled" -#: app/views/menu.html:236 +#: app/views/menu.html:243 msgid "Update" msgstr "Update" @@ -734,23 +742,23 @@ msgstr "Update" msgid "Update the block name" msgstr "Update the block name" -#: app/views/menu.html:225 +#: app/views/menu.html:232 msgid "Upload" msgstr "Upload" -#: app/scripts/controllers/menu.js:543 +#: app/scripts/controllers/menu.js:554 msgid "Upload done" msgstr "Upload done" -#: app/scripts/controllers/menu.js:519 +#: app/scripts/controllers/menu.js:531 msgid "Verification done" msgstr "Verification done" -#: app/views/menu.html:219 +#: app/views/menu.html:226 msgid "Verify" msgstr "Verify" -#: app/scripts/services/utils.js:531 app/views/menu.html:307 +#: app/scripts/services/utils.js:531 app/views/menu.html:314 msgid "Version" msgstr "Version" @@ -758,11 +766,11 @@ msgstr "Version" msgid "View" msgstr "View" -#: app/views/menu.html:304 +#: app/views/menu.html:311 msgid "View license" msgstr "View license" -#: app/scripts/services/tools.js:421 +#: app/scripts/services/tools.js:434 msgid "Warnings detected in the design" msgstr "Warnings detected in the design" @@ -788,7 +796,7 @@ msgstr "Wrong port name {{name}}" msgid "Wrong project format: {{name}}" msgstr "Wrong project format: {{name}}" -#: app/scripts/services/tools.js:450 +#: app/scripts/services/tools.js:463 msgid "Wrong remote hostname {{name}}" msgstr "Wrong remote hostname {{name}}" @@ -796,7 +804,7 @@ msgstr "Wrong remote hostname {{name}}" msgid "You can load it as it is or convert it for the {{name}} board." msgstr "You can load it as it is or convert it for the {{name}} board." -#: app/scripts/controllers/menu.js:251 +#: app/scripts/controllers/menu.js:257 msgid "Your changes will be lost if you don’t save them" msgstr "Your changes will be lost if you don’t save them" @@ -804,23 +812,23 @@ msgstr "Your changes will be lost if you don’t save them" msgid "back" msgstr "back" -#: app/scripts/services/drivers.js:109 app/scripts/services/utils.js:862 +#: app/scripts/services/drivers.js:108 app/scripts/services/utils.js:862 msgid "{{app}} is required." msgstr "{{app}} is required." -#: app/scripts/controllers/menu.js:430 +#: app/scripts/controllers/menu.js:438 msgid "{{board}} datasheet not defined" msgstr "{{board}} datasheet not defined" -#: app/scripts/controllers/menu.js:420 +#: app/scripts/controllers/menu.js:428 msgid "{{board}} pinout not defined" msgstr "{{board}} pinout not defined" -#: app/scripts/controllers/menu.js:449 +#: app/scripts/controllers/menu.js:457 msgid "{{board}} rules not defined" msgstr "{{board}} rules not defined" -#: app/scripts/controllers/menu.js:201 app/scripts/controllers/menu.js:224 +#: app/scripts/controllers/menu.js:204 app/scripts/controllers/menu.js:228 msgid "{{name}} exported" msgstr "{{name}} exported" diff --git a/app/resources/locale/es_ES/es_ES.po b/app/resources/locale/es_ES/es_ES.po index 41cf483e5..ceb836119 100644 --- a/app/resources/locale/es_ES/es_ES.po +++ b/app/resources/locale/es_ES/es_ES.po @@ -12,11 +12,11 @@ msgstr "" "X-Generator: Poedit 1.8.7.1\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app/scripts/services/drivers.js:211 app/scripts/services/drivers.js:87 +#: app/scripts/services/drivers.js:210 app/scripts/services/drivers.js:87 msgid "Unplug and reconnect the board" msgstr "Desconecta y conecta la placa" -#: app/scripts/services/drivers.js:195 +#: app/scripts/services/drivers.js:194 msgid "" "

    FTDI driver installation instructions

    1. Connect the FPGA " "board
    2. Replace the (Interface 0) driver of the board by " @@ -26,7 +26,7 @@ msgstr "" "placa FPGA
    3. Reemplaza el driver de la (Interface 0) de la " "placa por libusbK
    4. Desconecta y conecta la placa
    " -#: app/scripts/services/drivers.js:218 +#: app/scripts/services/drivers.js:217 msgid "" "

    FTDI driver uninstallation instructions

    1. Find the FPGA USB " "Device
    2. Select the board interface and uninstall the driver
    " @@ -35,15 +35,15 @@ msgstr "" "dispositivo USB FPGA
  • Selecciona la interfaz de la placa y desinstala " "el driver
  • " -#: app/views/menu.html:322 +#: app/views/menu.html:329 msgid "About Icestudio" msgstr "Sobre Icestudio" -#: app/views/menu.html:276 +#: app/views/menu.html:283 msgid "Add" msgstr "Añadir" -#: app/scripts/controllers/menu.js:562 +#: app/scripts/controllers/menu.js:574 msgid "Add a block to start" msgstr "Añade un bloque para comenzar" @@ -51,11 +51,11 @@ msgstr "Añade un bloque para comenzar" msgid "Add as block" msgstr "Añadir como bloque" -#: app/scripts/services/tools.js:1036 +#: app/scripts/services/tools.js:1059 msgid "All collections removed" msgstr "Colecciones eliminadas" -#: app/scripts/controllers/menu.js:586 +#: app/scripts/controllers/menu.js:598 msgid "All stored collections will be lost. Do you want to continue?" msgstr "Todas las colecciones almacenadas se perderán. ¿Deseas continuar?" @@ -63,7 +63,7 @@ msgstr "Todas las colecciones almacenadas se perderán. ¿Deseas continuar?" msgid "Author" msgstr "Autor" -#: app/views/menu.html:333 +#: app/views/menu.html:340 msgid "Basic" msgstr "Básico" @@ -86,7 +86,7 @@ msgstr "Bloque {{name}} importado" msgid "Blocks" msgstr "Bloques" -#: app/views/menu.html:183 +#: app/views/menu.html:190 msgid "Board" msgstr "Placa" @@ -94,27 +94,27 @@ msgstr "Placa" msgid "Board rules" msgstr "Reglas de la placa" -#: app/scripts/controllers/menu.js:371 +#: app/scripts/controllers/menu.js:379 msgid "Board rules disabled" msgstr "Reglas de la placa deshabilitadas" -#: app/scripts/controllers/menu.js:366 +#: app/scripts/controllers/menu.js:374 msgid "Board rules enabled" msgstr "Reglas de la placa habilitadas" -#: app/scripts/services/tools.js:333 +#: app/scripts/services/tools.js:340 msgid "Board {{name}} not detected" msgstr "Placa {{name}} no detectada" -#: app/scripts/controllers/menu.js:510 +#: app/scripts/controllers/menu.js:522 msgid "Board {{name}} selected" msgstr "Placa {{name}} seleccionada" -#: app/views/menu.html:222 +#: app/views/menu.html:229 msgid "Build" msgstr "Sintetizar" -#: app/scripts/controllers/menu.js:531 +#: app/scripts/controllers/menu.js:541 msgid "Build done" msgstr "Sintetizado realizado" @@ -126,37 +126,37 @@ msgstr "Cancelar" msgid "Catalan" msgstr "Catalán" -#: app/scripts/services/tools.js:727 +#: app/scripts/services/tools.js:743 msgid "Check Internet connection..." msgstr "Comprobando conexión a Internet..." -#: app/scripts/services/tools.js:737 +#: app/scripts/services/tools.js:753 msgid "Check Python..." msgstr "Comprobando Python..." -#: app/scripts/services/tools.js:819 +#: app/scripts/services/tools.js:847 msgid "Click here to setup the drivers" msgstr "Haz clic aquí para configurar los drivers" -#: app/scripts/services/drivers.js:110 app/scripts/services/drivers.js:203 -#: app/scripts/services/drivers.js:225 app/scripts/services/tools.js:132 -#: app/scripts/services/tools.js:246 +#: app/scripts/services/drivers.js:109 app/scripts/services/drivers.js:202 +#: app/scripts/services/drivers.js:224 app/scripts/services/tools.js:139 +#: app/scripts/services/tools.js:253 msgid "Click here to install it" msgstr "Haz clic aquí para instalarlo" -#: app/scripts/controllers/menu.js:326 +#: app/scripts/controllers/menu.js:334 msgid "Click here to view" msgstr "Haz clic aquí para ver" -#: app/scripts/controllers/menu.js:247 +#: app/scripts/controllers/menu.js:252 msgid "Close" msgstr "Cerrar" -#: app/views/menu.html:347 +#: app/views/menu.html:353 msgid "Code" msgstr "Código" -#: app/views/menu.html:194 +#: app/views/menu.html:201 msgid "Collection" msgstr "Colección" @@ -164,39 +164,43 @@ msgstr "Colección" msgid "Collection info" msgstr "Información de la colección" -#: app/scripts/controllers/menu.js:468 +#: app/scripts/controllers/menu.js:480 msgid "Collection {{collection}} info not defined" msgstr "Información de la colección {{collection}} no definida" -#: app/scripts/services/tools.js:920 +#: app/scripts/services/tools.js:943 msgid "Collection {{name}} added" msgstr "Colección {{name}} añadida" -#: app/scripts/services/tools.js:914 +#: app/scripts/services/tools.js:937 msgid "Collection {{name}} not replaced" msgstr "Colección {{name}} no reemplazada" -#: app/scripts/services/tools.js:1030 +#: app/scripts/services/tools.js:1053 msgid "Collection {{name}} removed" msgstr "Colección {{name}} eliminada" -#: app/scripts/services/tools.js:910 +#: app/scripts/services/tools.js:933 msgid "Collection {{name}} replaced" msgstr "Colección {{name}} reemplazada" -#: app/scripts/controllers/menu.js:476 +#: app/scripts/controllers/menu.js:488 msgid "Collection {{name}} selected" msgstr "Colección {{name}} seleccionada" -#: app/views/menu.html:272 +#: app/views/menu.html:279 msgid "Collections" msgstr "Colecciones" -#: app/views/menu.html:318 +#: app/views/menu.html:325 msgid "Community forum" msgstr "Foro de la comunidad" -#: app/views/menu.html:344 +#: app/scripts/services/tools.js:348 +msgid "Configuration not completed" +msgstr "Configuración no completada" + +#: app/views/menu.html:350 msgid "Constant" msgstr "Constante" @@ -216,11 +220,11 @@ msgstr "Cortar" msgid "Datasheet" msgstr "Datasheet" -#: app/views/menu.html:199 +#: app/views/menu.html:206 msgid "Default" msgstr "Por defecto" -#: app/scripts/services/tools.js:603 +#: app/scripts/services/tools.js:610 msgid "" "Default toolchain not found. Toolchain will be downloaded. This operation " "requires Internet connection. Do you want to continue?" @@ -232,39 +236,39 @@ msgstr "" msgid "Description" msgstr "Descripción" -#: app/views/menu.html:138 app/views/menu.html:265 +#: app/views/menu.html:138 app/views/menu.html:272 msgid "Disable" msgstr "Deshabilitar" -#: app/scripts/controllers/menu.js:250 +#: app/scripts/controllers/menu.js:256 msgid "Do you want to close the application?" msgstr "¿Deseas cerrar la aplicación?" -#: app/scripts/controllers/menu.js:576 +#: app/scripts/controllers/menu.js:588 msgid "Do you want to remove the {{name}} collection?" msgstr "¿Deseas eliminar la colección {{name}}?" -#: app/scripts/services/tools.js:906 +#: app/scripts/services/tools.js:929 msgid "Do you want to replace it?" msgstr "¿Deseas reemplazarla?" -#: app/views/menu.html:311 +#: app/views/menu.html:318 msgid "Documentation" msgstr "Documentación" -#: app/views/menu.html:256 +#: app/views/menu.html:263 msgid "Drivers" msgstr "Drivers" -#: app/scripts/services/drivers.js:134 app/scripts/services/drivers.js:72 +#: app/scripts/services/drivers.js:133 app/scripts/services/drivers.js:72 msgid "Drivers disabled" msgstr "Drivers deshabilitados" -#: app/scripts/services/drivers.js:126 app/scripts/services/drivers.js:63 +#: app/scripts/services/drivers.js:125 app/scripts/services/drivers.js:63 msgid "Drivers enabled" msgstr "Drivers habilitados" -#: app/scripts/services/tools.js:344 +#: app/scripts/services/tools.js:357 msgid "Duplicated FPGA I/O ports" msgstr "Puertos E/S de la FPGA duplicados" @@ -276,11 +280,11 @@ msgstr "Atributos del bloque duplicados" msgid "Edit" msgstr "Editar" -#: app/scripts/services/tools.js:895 +#: app/scripts/services/tools.js:918 msgid "Edit the collection name" msgstr "Edita el nombre de la colección" -#: app/views/menu.html:133 app/views/menu.html:260 +#: app/views/menu.html:133 app/views/menu.html:267 msgid "Enable" msgstr "Habilitar" @@ -312,11 +316,11 @@ msgstr "Introduce los puertos de salida" msgid "Enter the parameters" msgstr "Introduce los parámetros" -#: app/scripts/controllers/menu.js:358 +#: app/scripts/controllers/menu.js:366 msgid "Enter the remote hostname user@host (experimental)" msgstr "Introduce el nombre del host remoto usuario@host (experimental)" -#: app/scripts/services/tools.js:626 +#: app/scripts/services/tools.js:639 msgid "Error: default toolchain not found in '{{dir}}'" msgstr "Error: toolchain por defecto no encontrada en '{{dir}}'" @@ -324,7 +328,7 @@ msgstr "Error: toolchain por defecto no encontrada en '{{dir}}'" msgid "Error: {{error}}" msgstr "Error: {{error}}" -#: app/scripts/services/tools.js:418 +#: app/scripts/services/tools.js:431 msgid "Errors detected in the design" msgstr "Errores detectados en el diseño" @@ -332,7 +336,7 @@ msgstr "Errores detectados en el diseño" msgid "Examples" msgstr "Ejemplos" -#: app/scripts/services/tools.js:275 +#: app/scripts/services/tools.js:282 msgid "Execute remote {{label}} ..." msgstr "Ejecutar {{label}} remoto ..." @@ -340,19 +344,19 @@ msgstr "Ejecutar {{label}} remoto ..." msgid "Export" msgstr "Exportar" -#: app/scripts/services/tools.js:762 +#: app/scripts/services/tools.js:778 msgid "Extract default apio files..." msgstr "Extraer ficheros de apio..." -#: app/scripts/services/tools.js:772 +#: app/scripts/services/tools.js:788 msgid "Extract default apio packages..." msgstr "Extraer paquetes de apio..." -#: app/scripts/services/tools.js:750 +#: app/scripts/services/tools.js:766 msgid "Extract virtual env files..." msgstr "Extraer ficheros del virtual env" -#: app/scripts/services/tools.js:341 +#: app/scripts/services/tools.js:354 msgid "FPGA I/O ports not defined" msgstr "Puertos E/S de la FPGA no definidos" @@ -361,6 +365,10 @@ msgstr "Puertos E/S de la FPGA no definidos" msgid "FPGA pin" msgstr "FPGA pin" +#: app/views/menu.html:179 +msgid "FPGA resources" +msgstr "Recursos de la FPGA" + #: app/views/menu.html:29 msgid "File" msgstr "Archivo" @@ -372,7 +380,7 @@ msgstr "" "El archivo {{file}} ya existe en el directorio del proyecto. ¿Deseas " "reemplazarlo?" -#: app/scripts/services/tools.js:214 +#: app/scripts/services/tools.js:221 msgid "File {{file}} does not exist" msgstr "El archivo {{file}} no existe" @@ -392,7 +400,7 @@ msgstr "Francés" msgid "Galician" msgstr "Gallego" -#: app/views/menu.html:301 +#: app/views/menu.html:308 msgid "Help" msgstr "Ayuda" @@ -400,35 +408,35 @@ msgstr "Ayuda" msgid "Image" msgstr "Imagen" -#: app/scripts/controllers/menu.js:735 +#: app/scripts/controllers/menu.js:753 msgid "Image {{name}} saved" msgstr "Imagen {{name}} guardada" -#: app/views/menu.html:350 +#: app/views/menu.html:356 msgid "Information" msgstr "Información" -#: app/views/menu.html:338 +#: app/views/menu.html:344 msgid "Input" msgstr "Entrada" -#: app/views/menu.html:233 +#: app/views/menu.html:240 msgid "Install" msgstr "Instalar" -#: app/scripts/services/tools.js:767 +#: app/scripts/services/tools.js:783 msgid "Install default apio..." msgstr "Instalar apio..." -#: app/scripts/services/tools.js:816 +#: app/scripts/services/tools.js:832 msgid "Installation completed" msgstr "Instalación completada" -#: app/scripts/services/tools.js:657 app/scripts/services/tools.js:692 +#: app/scripts/services/tools.js:673 app/scripts/services/tools.js:708 msgid "Installing toolchain" msgstr "Instalando la toolchain" -#: app/scripts/services/drivers.js:118 app/scripts/services/tools.js:731 +#: app/scripts/services/drivers.js:117 app/scripts/services/tools.js:747 msgid "Internet connection required" msgstr "Es necesario conexión a Internet" @@ -446,7 +454,7 @@ msgstr "" msgid "Invalid block connection:
    Pull up already connected" msgstr "Conexión de bloque no válida:
    hay un Pull up conectado" -#: app/scripts/services/tools.js:926 +#: app/scripts/services/tools.js:949 msgid "Invalid collection {{name}}" msgstr "Colección {{name}} no válida" @@ -467,7 +475,7 @@ msgstr "Conexiones de entrada múltiple no válidas" msgid "Invalid project format" msgstr "Formato de proyecto no válido" -#: app/scripts/services/drivers.js:196 +#: app/scripts/services/drivers.js:195 msgid "It is recommended to use USB 2.0 ports" msgstr "Se recomienda utilizar puertos USB 2.0" @@ -483,7 +491,7 @@ msgstr "Cargar" msgid "Local parameter" msgstr "Parámetro local" -#: app/scripts/services/tools.js:755 +#: app/scripts/services/tools.js:771 msgid "Make virtual env..." msgstr "Crear virtual env..." @@ -503,11 +511,11 @@ msgstr "Nuevo" msgid "New project {{name}} created" msgstr "Nuevo proyecto {{name}} creado" -#: app/scripts/controllers/menu.js:594 +#: app/scripts/controllers/menu.js:606 msgid "No collections stored" msgstr "Ninguna colección almacenada" -#: app/scripts/controllers/main.js:15 app/scripts/controllers/menu.js:260 +#: app/scripts/controllers/main.js:15 app/scripts/controllers/menu.js:266 #: app/scripts/services/project.js:145 msgid "OK" msgstr "OK" @@ -528,7 +536,7 @@ msgstr "Abrir SVG" msgid "Original file {{file}} does not exist" msgstr "El archivo original {{file}} no existe" -#: app/views/menu.html:341 +#: app/views/menu.html:347 msgid "Output" msgstr "Salida" @@ -548,7 +556,7 @@ msgstr "Preferencias" msgid "Project information" msgstr "Información del proyecto" -#: app/scripts/controllers/menu.js:326 app/scripts/controllers/menu.js:340 +#: app/scripts/controllers/menu.js:334 app/scripts/controllers/menu.js:348 msgid "Project information updated" msgstr "Información del proyecto actualizada" @@ -560,7 +568,7 @@ msgstr "Proyecto {{name}} cargado" msgid "Project {{name}} saved" msgstr "Proyecto {{name}} guardado" -#: app/scripts/services/tools.js:744 +#: app/scripts/services/tools.js:760 msgid "Python 2.7 is required" msgstr "Es necesario Python 2.7" @@ -576,7 +584,7 @@ msgstr "Solo lectura" msgid "Redo" msgstr "Rehacer" -#: app/scripts/services/tools.js:453 +#: app/scripts/services/tools.js:466 msgid "Remote host {{name}} not connected" msgstr "Host remoto {{name}} no conectado" @@ -584,11 +592,11 @@ msgstr "Host remoto {{name}} no conectado" msgid "Remote hostname" msgstr "Nombre del host remoto" -#: app/views/menu.html:241 app/views/menu.html:280 +#: app/views/menu.html:248 app/views/menu.html:287 msgid "Remove" msgstr "Eliminar" -#: app/views/menu.html:292 +#: app/views/menu.html:299 msgid "Remove all" msgstr "Eliminar todo" @@ -596,7 +604,7 @@ msgstr "Eliminar todo" msgid "Reset SVG" msgstr "Resetear SVG" -#: app/views/menu.html:246 +#: app/views/menu.html:253 msgid "Reset default" msgstr "Reset default" @@ -612,7 +620,7 @@ msgstr "Guardar SVG" msgid "Save as" msgstr "Guardar como" -#: app/views/menu.html:180 +#: app/views/menu.html:187 msgid "Select" msgstr "Seleccionar" @@ -624,7 +632,7 @@ msgstr "Seleccionar todo" msgid "Show clock" msgstr "Mostrar reloj" -#: app/views/menu.html:314 +#: app/views/menu.html:321 msgid "Source code" msgstr "Código fuente" @@ -632,19 +640,19 @@ msgstr "Código fuente" msgid "Spanish" msgstr "Español" -#: app/scripts/controllers/menu.js:530 +#: app/scripts/controllers/menu.js:540 msgid "Start build" msgstr "Comenzar sintetizado" -#: app/scripts/controllers/menu.js:542 +#: app/scripts/controllers/menu.js:553 msgid "Start upload" msgstr "Comenzar carga" -#: app/scripts/controllers/menu.js:518 +#: app/scripts/controllers/menu.js:530 msgid "Start verification" msgstr "Comenzar verificación" -#: app/scripts/services/tools.js:264 +#: app/scripts/services/tools.js:271 msgid "Synchronize remote files ..." msgstr "Sincronizando ficheros remotos ..." @@ -652,11 +660,11 @@ msgstr "Sincronizando ficheros remotos ..." msgid "Testbench" msgstr "Testbench" -#: app/scripts/services/tools.js:905 +#: app/scripts/services/tools.js:928 msgid "The collection {{name}} already exists." msgstr "La colección {{name}} ya existe." -#: app/scripts/controllers/menu.js:497 +#: app/scripts/controllers/menu.js:509 msgid "" "The current FPGA I/O configuration will be lost. Do you want to change to " "{{name}} board?" @@ -664,16 +672,16 @@ msgstr "" "La configuración actual de E/S de la FPGA se perderá. ¿Deseas cambiar a la " "placa {{name}}?" -#: app/scripts/services/tools.js:631 +#: app/scripts/services/tools.js:647 msgid "The toolchain will be removed. Do you want to continue?" msgstr "La toolchain será eliminada. ¿Deseas continuar?" -#: app/scripts/services/tools.js:619 +#: app/scripts/services/tools.js:632 msgid "The toolchain will be restored to default. Do you want to continue?" msgstr "" "La toolchain será restaurada a los valores por defecto: ¿Deseas continuar?" -#: app/scripts/services/tools.js:611 +#: app/scripts/services/tools.js:621 msgid "" "The toolchain will be updated. This operation requires Internet connection. " "Do you want to continue?" @@ -693,28 +701,28 @@ msgstr "" msgid "This project is designed for the {{name}} board." msgstr "Este proyecto está diseñado para la placa {{name}}." -#: app/views/menu.html:229 +#: app/views/menu.html:236 msgid "Toolchain" msgstr "Toolchain" -#: app/scripts/services/tools.js:818 +#: app/scripts/services/tools.js:834 msgid "Toolchain installed" msgstr "Toolchain instalada" -#: app/scripts/services/drivers.js:203 app/scripts/services/drivers.js:225 -#: app/scripts/services/tools.js:132 app/scripts/services/tools.js:834 +#: app/scripts/services/drivers.js:202 app/scripts/services/drivers.js:224 +#: app/scripts/services/tools.js:139 app/scripts/services/tools.js:839 msgid "Toolchain not installed" msgstr "La toolchain no está instalada" -#: app/scripts/services/tools.js:636 +#: app/scripts/services/tools.js:652 msgid "Toolchain removed" msgstr "Toolchain eliminada" -#: app/scripts/services/tools.js:246 +#: app/scripts/services/tools.js:253 msgid "Toolchain version does not match" msgstr "La versión de la toolchain no coincide" -#: app/views/menu.html:216 +#: app/views/menu.html:223 msgid "Tools" msgstr "Herramientas" @@ -722,7 +730,7 @@ msgstr "Herramientas" msgid "Undo" msgstr "Deshacer" -#: app/scripts/services/tools.js:336 +#: app/scripts/services/tools.js:343 msgid "Unknown board" msgstr "Placa desconocida" @@ -730,7 +738,7 @@ msgstr "Placa desconocida" msgid "Untitled" msgstr "Sin título" -#: app/views/menu.html:236 +#: app/views/menu.html:243 msgid "Update" msgstr "Actualizar" @@ -739,23 +747,23 @@ msgstr "Actualizar" msgid "Update the block name" msgstr "Actualiza el nombre del bloque" -#: app/views/menu.html:225 +#: app/views/menu.html:232 msgid "Upload" msgstr "Cargar" -#: app/scripts/controllers/menu.js:543 +#: app/scripts/controllers/menu.js:554 msgid "Upload done" msgstr "Carga realizada" -#: app/scripts/controllers/menu.js:519 +#: app/scripts/controllers/menu.js:531 msgid "Verification done" msgstr "Verificación realizada" -#: app/views/menu.html:219 +#: app/views/menu.html:226 msgid "Verify" msgstr "Verificar" -#: app/scripts/services/utils.js:531 app/views/menu.html:307 +#: app/scripts/services/utils.js:531 app/views/menu.html:314 msgid "Version" msgstr "Versión" @@ -763,11 +771,11 @@ msgstr "Versión" msgid "View" msgstr "Ver" -#: app/views/menu.html:304 +#: app/views/menu.html:311 msgid "View license" msgstr "Ver licencia" -#: app/scripts/services/tools.js:421 +#: app/scripts/services/tools.js:434 msgid "Warnings detected in the design" msgstr "Advertencias detectadas en el diseño" @@ -793,7 +801,7 @@ msgstr "Nombre del puerto {{name}} incorrecto" msgid "Wrong project format: {{name}}" msgstr "Formato de proyecto incorrecto: {{name}}" -#: app/scripts/services/tools.js:450 +#: app/scripts/services/tools.js:463 msgid "Wrong remote hostname {{name}}" msgstr "Nombre del host remoto incorrecto {{name}}" @@ -801,7 +809,7 @@ msgstr "Nombre del host remoto incorrecto {{name}}" msgid "You can load it as it is or convert it for the {{name}} board." msgstr "Puedes cargarlo como está o convertirlo para la placa {{name}}." -#: app/scripts/controllers/menu.js:251 +#: app/scripts/controllers/menu.js:257 msgid "Your changes will be lost if you don’t save them" msgstr "Tus cambios se perderán si no los guardas" @@ -809,23 +817,23 @@ msgstr "Tus cambios se perderán si no los guardas" msgid "back" msgstr "volver" -#: app/scripts/services/drivers.js:109 app/scripts/services/utils.js:862 +#: app/scripts/services/drivers.js:108 app/scripts/services/utils.js:862 msgid "{{app}} is required." msgstr "Es necesario {{app}}." -#: app/scripts/controllers/menu.js:430 +#: app/scripts/controllers/menu.js:438 msgid "{{board}} datasheet not defined" msgstr "{{board}} datasheet no definido" -#: app/scripts/controllers/menu.js:420 +#: app/scripts/controllers/menu.js:428 msgid "{{board}} pinout not defined" msgstr "{{board}} pinout no definido" -#: app/scripts/controllers/menu.js:449 +#: app/scripts/controllers/menu.js:457 msgid "{{board}} rules not defined" msgstr "Reglas de {{board}} no definidas" -#: app/scripts/controllers/menu.js:201 app/scripts/controllers/menu.js:224 +#: app/scripts/controllers/menu.js:204 app/scripts/controllers/menu.js:228 msgid "{{name}} exported" msgstr "{{name}} exportado" diff --git a/app/resources/locale/eu_ES/eu_ES.po b/app/resources/locale/eu_ES/eu_ES.po index 68edcfa8f..d8aec9f55 100644 --- a/app/resources/locale/eu_ES/eu_ES.po +++ b/app/resources/locale/eu_ES/eu_ES.po @@ -12,11 +12,11 @@ msgstr "" "X-Generator: Poedit 1.8.7.1\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app/scripts/services/drivers.js:211 app/scripts/services/drivers.js:87 +#: app/scripts/services/drivers.js:210 app/scripts/services/drivers.js:87 msgid "Unplug and reconnect the board" msgstr "Txartela deskonektatu eta konekta ezazu berriro" -#: app/scripts/services/drivers.js:195 +#: app/scripts/services/drivers.js:194 msgid "" "

    FTDI driver installation instructions

    1. Connect the FPGA " "board
    2. Replace the (Interface 0) driver of the board by " @@ -27,7 +27,7 @@ msgstr "" "jar ezazu honakoa: libusbK
    3. Txartela deskonektatu eta konekta " "ezazu berriro
    " -#: app/scripts/services/drivers.js:218 +#: app/scripts/services/drivers.js:217 msgid "" "

    FTDI driver uninstallation instructions

    1. Find the FPGA USB " "Device
    2. Select the board interface and uninstall the driver
    " @@ -36,15 +36,15 @@ msgstr "" "gailua bila ezazu
  • Txartelaren interfazea hauta ezazu eta driver-a " "desinstalatu
  • " -#: app/views/menu.html:322 +#: app/views/menu.html:329 msgid "About Icestudio" msgstr "Icestudio-ri buruz..." -#: app/views/menu.html:276 +#: app/views/menu.html:283 msgid "Add" msgstr "Gehitu" -#: app/scripts/controllers/menu.js:562 +#: app/scripts/controllers/menu.js:574 msgid "Add a block to start" msgstr "Gehi ezazu bloke bat hasteko" @@ -52,11 +52,11 @@ msgstr "Gehi ezazu bloke bat hasteko" msgid "Add as block" msgstr "Blokea sortu" -#: app/scripts/services/tools.js:1036 +#: app/scripts/services/tools.js:1059 msgid "All collections removed" msgstr "Bildumak ezabatu dira" -#: app/scripts/controllers/menu.js:586 +#: app/scripts/controllers/menu.js:598 msgid "All stored collections will be lost. Do you want to continue?" msgstr "Gordetako bildumak galduko dira. Jarraitu nahi al duzu?" @@ -64,7 +64,7 @@ msgstr "Gordetako bildumak galduko dira. Jarraitu nahi al duzu?" msgid "Author" msgstr "Egilea" -#: app/views/menu.html:333 +#: app/views/menu.html:340 msgid "Basic" msgstr "Oinarrizkoa" @@ -87,7 +87,7 @@ msgstr "{{name}} blokea inportatu duzu" msgid "Blocks" msgstr "Blokeak" -#: app/views/menu.html:183 +#: app/views/menu.html:190 msgid "Board" msgstr "Txartela" @@ -95,27 +95,27 @@ msgstr "Txartela" msgid "Board rules" msgstr "Txartelaren arauak" -#: app/scripts/controllers/menu.js:371 +#: app/scripts/controllers/menu.js:379 msgid "Board rules disabled" msgstr "Txartelaren arauak desgaituta" -#: app/scripts/controllers/menu.js:366 +#: app/scripts/controllers/menu.js:374 msgid "Board rules enabled" msgstr "Txartelaren arauak gaituta" -#: app/scripts/services/tools.js:333 +#: app/scripts/services/tools.js:340 msgid "Board {{name}} not detected" msgstr "{{name}} txartela ez da aurkitu" -#: app/scripts/controllers/menu.js:510 +#: app/scripts/controllers/menu.js:522 msgid "Board {{name}} selected" msgstr "{{name}} txartela hautatu duzu" -#: app/views/menu.html:222 +#: app/views/menu.html:229 msgid "Build" msgstr "Sintetizatu" -#: app/scripts/controllers/menu.js:531 +#: app/scripts/controllers/menu.js:541 msgid "Build done" msgstr "Sintetizatua egin da" @@ -127,37 +127,37 @@ msgstr "Utzi" msgid "Catalan" msgstr "Katalan" -#: app/scripts/services/tools.js:727 +#: app/scripts/services/tools.js:743 msgid "Check Internet connection..." msgstr "Interneteko sarbidea egiaztatu..." -#: app/scripts/services/tools.js:737 +#: app/scripts/services/tools.js:753 msgid "Check Python..." msgstr "Python egiaztatu..." -#: app/scripts/services/tools.js:819 +#: app/scripts/services/tools.js:847 msgid "Click here to setup the drivers" -msgstr "" +msgstr "Klik egizu hemen driverrak eguneratzeko" -#: app/scripts/services/drivers.js:110 app/scripts/services/drivers.js:203 -#: app/scripts/services/drivers.js:225 app/scripts/services/tools.js:132 -#: app/scripts/services/tools.js:246 +#: app/scripts/services/drivers.js:109 app/scripts/services/drivers.js:202 +#: app/scripts/services/drivers.js:224 app/scripts/services/tools.js:139 +#: app/scripts/services/tools.js:253 msgid "Click here to install it" msgstr "Instalatzeko hemen klik egin" -#: app/scripts/controllers/menu.js:326 +#: app/scripts/controllers/menu.js:334 msgid "Click here to view" -msgstr "" +msgstr "Klik egizu ikusteko" -#: app/scripts/controllers/menu.js:247 +#: app/scripts/controllers/menu.js:252 msgid "Close" -msgstr "" +msgstr "Itxi" -#: app/views/menu.html:347 +#: app/views/menu.html:353 msgid "Code" msgstr "Kodea" -#: app/views/menu.html:194 +#: app/views/menu.html:201 msgid "Collection" msgstr "Bilduma" @@ -165,45 +165,49 @@ msgstr "Bilduma" msgid "Collection info" msgstr "Bildumaren informazioa" -#: app/scripts/controllers/menu.js:468 +#: app/scripts/controllers/menu.js:480 msgid "Collection {{collection}} info not defined" msgstr "{{collection}} bildumaren informazioa zehaztuta gabe dago" -#: app/scripts/services/tools.js:920 +#: app/scripts/services/tools.js:943 msgid "Collection {{name}} added" msgstr "{{name}} bilduma gehitu da" -#: app/scripts/services/tools.js:914 +#: app/scripts/services/tools.js:937 msgid "Collection {{name}} not replaced" msgstr "{{name}} bilduma ez da ordeztu" -#: app/scripts/services/tools.js:1030 +#: app/scripts/services/tools.js:1053 msgid "Collection {{name}} removed" msgstr "{{name}} bilduma ezabatu da" -#: app/scripts/services/tools.js:910 +#: app/scripts/services/tools.js:933 msgid "Collection {{name}} replaced" msgstr "{{name}} bilduma ordeztu da" -#: app/scripts/controllers/menu.js:476 +#: app/scripts/controllers/menu.js:488 msgid "Collection {{name}} selected" msgstr "{{name}} bilduma hautatu da" -#: app/views/menu.html:272 +#: app/views/menu.html:279 msgid "Collections" msgstr "Bildumak" -#: app/views/menu.html:318 +#: app/views/menu.html:325 msgid "Community forum" msgstr "Komunitatearen foroa" -#: app/views/menu.html:344 +#: app/scripts/services/tools.js:348 +msgid "Configuration not completed" +msgstr "" + +#: app/views/menu.html:350 msgid "Constant" msgstr "Konstantea" #: app/scripts/services/project.js:108 msgid "Convert" -msgstr "" +msgstr "Bihurtu" #: app/views/menu.html:104 msgid "Copy" @@ -217,11 +221,11 @@ msgstr "Ebaki" msgid "Datasheet" msgstr "Datu-fitxa" -#: app/views/menu.html:199 +#: app/views/menu.html:206 msgid "Default" msgstr "Lehenetsia" -#: app/scripts/services/tools.js:603 +#: app/scripts/services/tools.js:610 msgid "" "Default toolchain not found. Toolchain will be downloaded. This operation " "requires Internet connection. Do you want to continue?" @@ -233,39 +237,39 @@ msgstr "" msgid "Description" msgstr "Azalpena" -#: app/views/menu.html:138 app/views/menu.html:265 +#: app/views/menu.html:138 app/views/menu.html:272 msgid "Disable" msgstr "Desgaitu" -#: app/scripts/controllers/menu.js:250 +#: app/scripts/controllers/menu.js:256 msgid "Do you want to close the application?" msgstr "Aplikazioa itxi nahi al duzu?" -#: app/scripts/controllers/menu.js:576 +#: app/scripts/controllers/menu.js:588 msgid "Do you want to remove the {{name}} collection?" msgstr "{{name}} bilduma ezabatu nahi al duzu?" -#: app/scripts/services/tools.js:906 +#: app/scripts/services/tools.js:929 msgid "Do you want to replace it?" msgstr "Ordeztu nahi al duzu?" -#: app/views/menu.html:311 +#: app/views/menu.html:318 msgid "Documentation" msgstr "Dokumentazioa" -#: app/views/menu.html:256 +#: app/views/menu.html:263 msgid "Drivers" msgstr "Driverrak" -#: app/scripts/services/drivers.js:134 app/scripts/services/drivers.js:72 +#: app/scripts/services/drivers.js:133 app/scripts/services/drivers.js:72 msgid "Drivers disabled" msgstr "Driverrak desgaitu dira" -#: app/scripts/services/drivers.js:126 app/scripts/services/drivers.js:63 +#: app/scripts/services/drivers.js:125 app/scripts/services/drivers.js:63 msgid "Drivers enabled" msgstr "Driverrak gaitu dira" -#: app/scripts/services/tools.js:344 +#: app/scripts/services/tools.js:357 msgid "Duplicated FPGA I/O ports" msgstr "FPGAren E/S portuak bikoiztu dira" @@ -277,11 +281,11 @@ msgstr "Blokearen ezaugarriak bikoiztu dira" msgid "Edit" msgstr "Aldatu" -#: app/scripts/services/tools.js:895 +#: app/scripts/services/tools.js:918 msgid "Edit the collection name" msgstr "Bildumaren izena aldatu" -#: app/views/menu.html:133 app/views/menu.html:260 +#: app/views/menu.html:133 app/views/menu.html:267 msgid "Enable" msgstr "Onartu" @@ -313,12 +317,12 @@ msgstr "Irteerako portuak sar itzazu" msgid "Enter the parameters" msgstr "Parametroak sar itzazu" -#: app/scripts/controllers/menu.js:358 +#: app/scripts/controllers/menu.js:366 msgid "Enter the remote hostname user@host (experimental)" msgstr "" "Urrutiko ostalariaren izena sar ezazu erabiltzailea@host (esperimentala)" -#: app/scripts/services/tools.js:626 +#: app/scripts/services/tools.js:639 msgid "Error: default toolchain not found in '{{dir}}'" msgstr "Errorea: Toolchain lehenetsia ez da '{{dir}}'-en aurkitu" @@ -326,15 +330,15 @@ msgstr "Errorea: Toolchain lehenetsia ez da '{{dir}}'-en aurkitu" msgid "Error: {{error}}" msgstr "Errorea: {{error}}" -#: app/scripts/services/tools.js:418 +#: app/scripts/services/tools.js:431 msgid "Errors detected in the design" -msgstr "" +msgstr "Akatsak daude diseinuan" #: app/views/menu.html:42 msgid "Examples" msgstr "Adibideak" -#: app/scripts/services/tools.js:275 +#: app/scripts/services/tools.js:282 msgid "Execute remote {{label}} ..." msgstr "Exekutatu urrutiko {{label}} ..." @@ -342,19 +346,19 @@ msgstr "Exekutatu urrutiko {{label}} ..." msgid "Export" msgstr "Esportatu" -#: app/scripts/services/tools.js:762 +#: app/scripts/services/tools.js:778 msgid "Extract default apio files..." msgstr "Apio fitxategiak atera..." -#: app/scripts/services/tools.js:772 +#: app/scripts/services/tools.js:788 msgid "Extract default apio packages..." msgstr "Apio pakete lehenetsiak atera..." -#: app/scripts/services/tools.js:750 +#: app/scripts/services/tools.js:766 msgid "Extract virtual env files..." msgstr "Env birtualaren fitxategiak atera..." -#: app/scripts/services/tools.js:341 +#: app/scripts/services/tools.js:354 msgid "FPGA I/O ports not defined" msgstr "FPGAren E/S portuak definitu gabe daude" @@ -363,6 +367,10 @@ msgstr "FPGAren E/S portuak definitu gabe daude" msgid "FPGA pin" msgstr "FPGA pina" +#: app/views/menu.html:179 +msgid "FPGA resources" +msgstr "" + #: app/views/menu.html:29 msgid "File" msgstr "Fitxategia" @@ -374,7 +382,7 @@ msgstr "" "Proiektuaren direktorioan {{file}} fitxategia dagoeneko bada. Fitxategia " "ordeztu nahi al duzu?" -#: app/scripts/services/tools.js:214 +#: app/scripts/services/tools.js:221 msgid "File {{file}} does not exist" msgstr "Ez dago {{file}} izeneko fitxategirik" @@ -394,7 +402,7 @@ msgstr "Frantsesa" msgid "Galician" msgstr "Galegoa" -#: app/views/menu.html:301 +#: app/views/menu.html:308 msgid "Help" msgstr "Laguntza" @@ -402,35 +410,35 @@ msgstr "Laguntza" msgid "Image" msgstr "Irudia" -#: app/scripts/controllers/menu.js:735 +#: app/scripts/controllers/menu.js:753 msgid "Image {{name}} saved" msgstr "{{name}} izeneko irudia gorde da" -#: app/views/menu.html:350 +#: app/views/menu.html:356 msgid "Information" msgstr "Informazioa" -#: app/views/menu.html:338 +#: app/views/menu.html:344 msgid "Input" msgstr "Sarrera" -#: app/views/menu.html:233 +#: app/views/menu.html:240 msgid "Install" msgstr "Instalatu" -#: app/scripts/services/tools.js:767 +#: app/scripts/services/tools.js:783 msgid "Install default apio..." msgstr "Apio lehenetsia instalatu..." -#: app/scripts/services/tools.js:816 +#: app/scripts/services/tools.js:832 msgid "Installation completed" msgstr "Instalazioa amaitu da" -#: app/scripts/services/tools.js:657 app/scripts/services/tools.js:692 +#: app/scripts/services/tools.js:673 app/scripts/services/tools.js:708 msgid "Installing toolchain" msgstr "Toolchain-a instalatzen ari da" -#: app/scripts/services/drivers.js:118 app/scripts/services/tools.js:731 +#: app/scripts/services/drivers.js:117 app/scripts/services/tools.js:747 msgid "Internet connection required" msgstr "Interneteko sarbidea behar da" @@ -449,7 +457,7 @@ msgid "Invalid block connection:
    Pull up already connected" msgstr "" "Bloke konexio baliogabeak:
    Pull up -a dagoeneko konektatua dago" -#: app/scripts/services/tools.js:926 +#: app/scripts/services/tools.js:949 msgid "Invalid collection {{name}}" msgstr "{{name}} bilduma baliogabea" @@ -468,9 +476,9 @@ msgstr "Sarrerako konexio anitzak baliogabeak" #: app/scripts/services/utils.js:259 msgid "Invalid project format" -msgstr "" +msgstr "Proiektuaren formatua baliogabea da" -#: app/scripts/services/drivers.js:196 +#: app/scripts/services/drivers.js:195 msgid "It is recommended to use USB 2.0 ports" msgstr "USB 2.0 atakak erabiltzea gomendatzen da" @@ -480,19 +488,19 @@ msgstr "Hizkuntza" #: app/scripts/services/project.js:107 msgid "Load" -msgstr "" +msgstr "Kargatu" #: app/scripts/services/blocks.js:186 app/scripts/services/blocks.js:866 msgid "Local parameter" msgstr "Parametro lokala" -#: app/scripts/services/tools.js:755 +#: app/scripts/services/tools.js:771 msgid "Make virtual env..." msgstr "Env birtuala sortu..." #: app/scripts/services/utils.js:758 msgid "Maximum bus size: 96 bits" -msgstr "" +msgstr "Busaren tamaina maximoa: 96 bit" #: app/scripts/services/utils.js:530 msgid "Name" @@ -506,11 +514,11 @@ msgstr "Berria" msgid "New project {{name}} created" msgstr "{{name}} proiektua sortu da" -#: app/scripts/controllers/menu.js:594 +#: app/scripts/controllers/menu.js:606 msgid "No collections stored" msgstr "Ez dago gordeta bildumarik" -#: app/scripts/controllers/main.js:15 app/scripts/controllers/menu.js:260 +#: app/scripts/controllers/main.js:15 app/scripts/controllers/menu.js:266 #: app/scripts/services/project.js:145 msgid "OK" msgstr "Ok" @@ -531,7 +539,7 @@ msgstr "SVGa ireki" msgid "Original file {{file}} does not exist" msgstr "Jatorrizko {{file}} fitxategia ez dago" -#: app/views/menu.html:341 +#: app/views/menu.html:347 msgid "Output" msgstr "Irteera" @@ -551,9 +559,9 @@ msgstr "Lehentasunak" msgid "Project information" msgstr "Proiektuaren informazioa" -#: app/scripts/controllers/menu.js:326 app/scripts/controllers/menu.js:340 +#: app/scripts/controllers/menu.js:334 app/scripts/controllers/menu.js:348 msgid "Project information updated" -msgstr "" +msgstr "Proiektuaren informazioa eguneratu da" #: app/scripts/services/project.js:133 msgid "Project {{name}} loaded" @@ -563,7 +571,7 @@ msgstr "{{name}} proiektua kargatu da" msgid "Project {{name}} saved" msgstr "{{name}} proiektua gorde da" -#: app/scripts/services/tools.js:744 +#: app/scripts/services/tools.js:760 msgid "Python 2.7 is required" msgstr "Python 2.7 behar da" @@ -579,7 +587,7 @@ msgstr "Irakurtzeko soilik" msgid "Redo" msgstr "Berregin" -#: app/scripts/services/tools.js:453 +#: app/scripts/services/tools.js:466 msgid "Remote host {{name}} not connected" msgstr "{{name}} urrutiko ostalaria ez dago konektatua" @@ -587,11 +595,11 @@ msgstr "{{name}} urrutiko ostalaria ez dago konektatua" msgid "Remote hostname" msgstr "Urrutiko ostalariaren izena" -#: app/views/menu.html:241 app/views/menu.html:280 +#: app/views/menu.html:248 app/views/menu.html:287 msgid "Remove" msgstr "Ezabatu" -#: app/views/menu.html:292 +#: app/views/menu.html:299 msgid "Remove all" msgstr "Dena ezabatu" @@ -599,7 +607,7 @@ msgstr "Dena ezabatu" msgid "Reset SVG" msgstr "SVGa berrezarri" -#: app/views/menu.html:246 +#: app/views/menu.html:253 msgid "Reset default" msgstr "Jatorrizkoa berrezarri" @@ -615,7 +623,7 @@ msgstr "SVGa gorde" msgid "Save as" msgstr "Gorde honela" -#: app/views/menu.html:180 +#: app/views/menu.html:187 msgid "Select" msgstr "Hautatu" @@ -627,7 +635,7 @@ msgstr "Dena hautatu" msgid "Show clock" msgstr "Ordularia erakutsi" -#: app/views/menu.html:314 +#: app/views/menu.html:321 msgid "Source code" msgstr "Iturburu kodea" @@ -635,19 +643,19 @@ msgstr "Iturburu kodea" msgid "Spanish" msgstr "Gaztelera" -#: app/scripts/controllers/menu.js:530 +#: app/scripts/controllers/menu.js:540 msgid "Start build" msgstr "Sintetizatua hasi" -#: app/scripts/controllers/menu.js:542 +#: app/scripts/controllers/menu.js:553 msgid "Start upload" msgstr "Karga hasi" -#: app/scripts/controllers/menu.js:518 +#: app/scripts/controllers/menu.js:530 msgid "Start verification" msgstr "Egiaztapena hasi" -#: app/scripts/services/tools.js:264 +#: app/scripts/services/tools.js:271 msgid "Synchronize remote files ..." msgstr "Urrutiko fitxategiak sinkronizatu..." @@ -655,27 +663,27 @@ msgstr "Urrutiko fitxategiak sinkronizatu..." msgid "Testbench" msgstr "Testbench " -#: app/scripts/services/tools.js:905 +#: app/scripts/services/tools.js:928 msgid "The collection {{name}} already exists." msgstr "{{name}} bilduma badago" -#: app/scripts/controllers/menu.js:497 +#: app/scripts/controllers/menu.js:509 msgid "" "The current FPGA I/O configuration will be lost. Do you want to change to " "{{name}} board?" msgstr "" "FPGAaren E/S konfigurazioa galduko da. {{name}} txartela aldatu nahi al duzu?" -#: app/scripts/services/tools.js:631 +#: app/scripts/services/tools.js:647 msgid "The toolchain will be removed. Do you want to continue?" msgstr "Toolchain-a ezabatuko da. Jarraitu nahi al duzu?" -#: app/scripts/services/tools.js:619 +#: app/scripts/services/tools.js:632 msgid "The toolchain will be restored to default. Do you want to continue?" msgstr "" "Toolchain-aren jatorrizko balioak berrezarriko dira. Jarraitu nahi al duzu?" -#: app/scripts/services/tools.js:611 +#: app/scripts/services/tools.js:621 msgid "" "The toolchain will be updated. This operation requires Internet connection. " "Do you want to continue?" @@ -695,28 +703,28 @@ msgstr "" msgid "This project is designed for the {{name}} board." msgstr "Proiektua {{name}} txartelarentzat diseinatu da." -#: app/views/menu.html:229 +#: app/views/menu.html:236 msgid "Toolchain" msgstr "Toolchain" -#: app/scripts/services/tools.js:818 +#: app/scripts/services/tools.js:834 msgid "Toolchain installed" msgstr "Toolchain-a instalatu da" -#: app/scripts/services/drivers.js:203 app/scripts/services/drivers.js:225 -#: app/scripts/services/tools.js:132 app/scripts/services/tools.js:834 +#: app/scripts/services/drivers.js:202 app/scripts/services/drivers.js:224 +#: app/scripts/services/tools.js:139 app/scripts/services/tools.js:839 msgid "Toolchain not installed" msgstr "Toolchain-a ez da instalatu" -#: app/scripts/services/tools.js:636 +#: app/scripts/services/tools.js:652 msgid "Toolchain removed" msgstr "Toolchain-a ezabatu da" -#: app/scripts/services/tools.js:246 +#: app/scripts/services/tools.js:253 msgid "Toolchain version does not match" -msgstr "" +msgstr "Toolchainaren bertsioa ez dator bat" -#: app/views/menu.html:216 +#: app/views/menu.html:223 msgid "Tools" msgstr "Tresnak" @@ -724,7 +732,7 @@ msgstr "Tresnak" msgid "Undo" msgstr "Desegin" -#: app/scripts/services/tools.js:336 +#: app/scripts/services/tools.js:343 msgid "Unknown board" msgstr "Txartel ezezaguna" @@ -732,7 +740,7 @@ msgstr "Txartel ezezaguna" msgid "Untitled" msgstr "Izenik gabe" -#: app/views/menu.html:236 +#: app/views/menu.html:243 msgid "Update" msgstr "Eguneratu" @@ -741,23 +749,23 @@ msgstr "Eguneratu" msgid "Update the block name" msgstr "Blokearen izena egunera ezazu" -#: app/views/menu.html:225 +#: app/views/menu.html:232 msgid "Upload" msgstr "Kargatu" -#: app/scripts/controllers/menu.js:543 +#: app/scripts/controllers/menu.js:554 msgid "Upload done" msgstr "Karga egin da" -#: app/scripts/controllers/menu.js:519 +#: app/scripts/controllers/menu.js:531 msgid "Verification done" msgstr "Egiaztapena egin da" -#: app/views/menu.html:219 +#: app/views/menu.html:226 msgid "Verify" msgstr "Egiaztatu" -#: app/scripts/services/utils.js:531 app/views/menu.html:307 +#: app/scripts/services/utils.js:531 app/views/menu.html:314 msgid "Version" msgstr "Bertsioa" @@ -765,13 +773,13 @@ msgstr "Bertsioa" msgid "View" msgstr "Ikusi" -#: app/views/menu.html:304 +#: app/views/menu.html:311 msgid "View license" msgstr "Lizentzia ikusi" -#: app/scripts/services/tools.js:421 +#: app/scripts/services/tools.js:434 msgid "Warnings detected in the design" -msgstr "" +msgstr "Diseinuan abisuak detektatu dira" #: app/scripts/services/blocks.js:410 msgid "Wrong block format: {{type}}" @@ -795,15 +803,15 @@ msgstr "Portuaren izena okerra da: {{name}}" msgid "Wrong project format: {{name}}" msgstr "Proiektuaren formatua okerra da: {{name}}" -#: app/scripts/services/tools.js:450 +#: app/scripts/services/tools.js:463 msgid "Wrong remote hostname {{name}}" msgstr "Urrutiko ostalariaren {{name}} izena okerra da" #: app/scripts/services/project.js:112 msgid "You can load it as it is or convert it for the {{name}} board." -msgstr "" +msgstr "Dagoen moduan karga dezakezu edo {{name}} plakarako bihurtu" -#: app/scripts/controllers/menu.js:251 +#: app/scripts/controllers/menu.js:257 msgid "Your changes will be lost if you don’t save them" msgstr "Aldaketak galduko dituzu gordetzen ez badituzu" @@ -811,25 +819,25 @@ msgstr "Aldaketak galduko dituzu gordetzen ez badituzu" msgid "back" msgstr "atzera" -#: app/scripts/services/drivers.js:109 app/scripts/services/utils.js:862 +#: app/scripts/services/drivers.js:108 app/scripts/services/utils.js:862 msgid "{{app}} is required." msgstr "{{app}} behar da" -#: app/scripts/controllers/menu.js:430 +#: app/scripts/controllers/menu.js:438 msgid "{{board}} datasheet not defined" msgstr "{{board}} ez zehaztua" -#: app/scripts/controllers/menu.js:420 +#: app/scripts/controllers/menu.js:428 msgid "{{board}} pinout not defined" msgstr "{{board}} pinout ez zehaztua" -#: app/scripts/controllers/menu.js:449 +#: app/scripts/controllers/menu.js:457 msgid "{{board}} rules not defined" msgstr "{{board}} txartelaren arauak ez daude definituta" -#: app/scripts/controllers/menu.js:201 app/scripts/controllers/menu.js:224 +#: app/scripts/controllers/menu.js:204 app/scripts/controllers/menu.js:228 msgid "{{name}} exported" -msgstr "" +msgstr "{{name}} esportatu da" #~ msgid "Errors detected in the code" #~ msgstr "Kodean erroreak aurkitu dira" diff --git a/app/resources/locale/fr_FR/fr_FR.po b/app/resources/locale/fr_FR/fr_FR.po index b9c854e51..0a0dfc97e 100644 --- a/app/resources/locale/fr_FR/fr_FR.po +++ b/app/resources/locale/fr_FR/fr_FR.po @@ -12,11 +12,11 @@ msgstr "" "X-Generator: Poedit 1.8.7.1\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: app/scripts/services/drivers.js:211 app/scripts/services/drivers.js:87 +#: app/scripts/services/drivers.js:210 app/scripts/services/drivers.js:87 msgid "Unplug and reconnect the board" msgstr "Débrancher et reconnecter la carte" -#: app/scripts/services/drivers.js:195 +#: app/scripts/services/drivers.js:194 msgid "" "

    FTDI driver installation instructions

    1. Connect the FPGA " "board
    2. Replace the (Interface 0) driver of the board by " @@ -26,7 +26,7 @@ msgstr "" "carte FPGA
    3. Remplacer le pilote (Interface 0) de la carte par " "libusbK
    4. Débrancher puis rebrancher la carte
    " -#: app/scripts/services/drivers.js:218 +#: app/scripts/services/drivers.js:217 msgid "" "

    FTDI driver uninstallation instructions

    1. Find the FPGA USB " "Device
    2. Select the board interface and uninstall the driver
    " @@ -35,15 +35,15 @@ msgstr "" "périphérique USB FPGA
  • Sélectionner la carte interface et " "désinstaller le pilote
  • " -#: app/views/menu.html:322 +#: app/views/menu.html:329 msgid "About Icestudio" msgstr "À propos d'Icestudio" -#: app/views/menu.html:276 +#: app/views/menu.html:283 msgid "Add" msgstr "Ajouter" -#: app/scripts/controllers/menu.js:562 +#: app/scripts/controllers/menu.js:574 msgid "Add a block to start" msgstr "Ajouter un bloc pour commencer" @@ -51,11 +51,11 @@ msgstr "Ajouter un bloc pour commencer" msgid "Add as block" msgstr "Ajouter un bloc" -#: app/scripts/services/tools.js:1036 +#: app/scripts/services/tools.js:1059 msgid "All collections removed" msgstr "Toutes les collections ont été supprimées" -#: app/scripts/controllers/menu.js:586 +#: app/scripts/controllers/menu.js:598 msgid "All stored collections will be lost. Do you want to continue?" msgstr "" "Toutes les collections enregistrées seront perdues. Voulez-vous continuer ?" @@ -64,7 +64,7 @@ msgstr "" msgid "Author" msgstr "Auteur" -#: app/views/menu.html:333 +#: app/views/menu.html:340 msgid "Basic" msgstr "Basique" @@ -87,7 +87,7 @@ msgstr "Bloc {{name}} importé" msgid "Blocks" msgstr "Blocs" -#: app/views/menu.html:183 +#: app/views/menu.html:190 msgid "Board" msgstr "Carte" @@ -95,27 +95,27 @@ msgstr "Carte" msgid "Board rules" msgstr "Règles de la carte" -#: app/scripts/controllers/menu.js:371 +#: app/scripts/controllers/menu.js:379 msgid "Board rules disabled" msgstr "Règles de la carte désactivées" -#: app/scripts/controllers/menu.js:366 +#: app/scripts/controllers/menu.js:374 msgid "Board rules enabled" msgstr "Règles de la carte activées" -#: app/scripts/services/tools.js:333 +#: app/scripts/services/tools.js:340 msgid "Board {{name}} not detected" msgstr "Carte {{name}} non détectée" -#: app/scripts/controllers/menu.js:510 +#: app/scripts/controllers/menu.js:522 msgid "Board {{name}} selected" msgstr "Carte {{name}} séléctionnée" -#: app/views/menu.html:222 +#: app/views/menu.html:229 msgid "Build" msgstr "Construire" -#: app/scripts/controllers/menu.js:531 +#: app/scripts/controllers/menu.js:541 msgid "Build done" msgstr "Construction terminée" @@ -127,37 +127,37 @@ msgstr "Annuler" msgid "Catalan" msgstr "Catalan" -#: app/scripts/services/tools.js:727 +#: app/scripts/services/tools.js:743 msgid "Check Internet connection..." msgstr "Vérifier la connexion Internet..." -#: app/scripts/services/tools.js:737 +#: app/scripts/services/tools.js:753 msgid "Check Python..." msgstr "Vérifier Python..." -#: app/scripts/services/tools.js:819 +#: app/scripts/services/tools.js:847 msgid "Click here to setup the drivers" msgstr "" -#: app/scripts/services/drivers.js:110 app/scripts/services/drivers.js:203 -#: app/scripts/services/drivers.js:225 app/scripts/services/tools.js:132 -#: app/scripts/services/tools.js:246 +#: app/scripts/services/drivers.js:109 app/scripts/services/drivers.js:202 +#: app/scripts/services/drivers.js:224 app/scripts/services/tools.js:139 +#: app/scripts/services/tools.js:253 msgid "Click here to install it" msgstr "Cliquer ici pour l'installer" -#: app/scripts/controllers/menu.js:326 +#: app/scripts/controllers/menu.js:334 msgid "Click here to view" msgstr "" -#: app/scripts/controllers/menu.js:247 +#: app/scripts/controllers/menu.js:252 msgid "Close" msgstr "" -#: app/views/menu.html:347 +#: app/views/menu.html:353 msgid "Code" msgstr "Code" -#: app/views/menu.html:194 +#: app/views/menu.html:201 msgid "Collection" msgstr "Collection" @@ -165,39 +165,43 @@ msgstr "Collection" msgid "Collection info" msgstr "Informations sur la collection" -#: app/scripts/controllers/menu.js:468 +#: app/scripts/controllers/menu.js:480 msgid "Collection {{collection}} info not defined" msgstr "Informations sur la collection {{name}} non définies" -#: app/scripts/services/tools.js:920 +#: app/scripts/services/tools.js:943 msgid "Collection {{name}} added" msgstr "Collection {{name}} ajoutée" -#: app/scripts/services/tools.js:914 +#: app/scripts/services/tools.js:937 msgid "Collection {{name}} not replaced" msgstr "Collection {{name}} non remplacée" -#: app/scripts/services/tools.js:1030 +#: app/scripts/services/tools.js:1053 msgid "Collection {{name}} removed" msgstr "Collection {{name}} supprimée" -#: app/scripts/services/tools.js:910 +#: app/scripts/services/tools.js:933 msgid "Collection {{name}} replaced" msgstr "Collection {{name}} remplacée" -#: app/scripts/controllers/menu.js:476 +#: app/scripts/controllers/menu.js:488 msgid "Collection {{name}} selected" msgstr "Collection {{name}} sélectionée" -#: app/views/menu.html:272 +#: app/views/menu.html:279 msgid "Collections" msgstr "Collections" -#: app/views/menu.html:318 +#: app/views/menu.html:325 msgid "Community forum" msgstr "Forum communautaire" -#: app/views/menu.html:344 +#: app/scripts/services/tools.js:348 +msgid "Configuration not completed" +msgstr "" + +#: app/views/menu.html:350 msgid "Constant" msgstr "Constante" @@ -217,11 +221,11 @@ msgstr "Couper" msgid "Datasheet" msgstr "Documentation" -#: app/views/menu.html:199 +#: app/views/menu.html:206 msgid "Default" msgstr "Défaut" -#: app/scripts/services/tools.js:603 +#: app/scripts/services/tools.js:610 msgid "" "Default toolchain not found. Toolchain will be downloaded. This operation " "requires Internet connection. Do you want to continue?" @@ -234,39 +238,39 @@ msgstr "" msgid "Description" msgstr "Description" -#: app/views/menu.html:138 app/views/menu.html:265 +#: app/views/menu.html:138 app/views/menu.html:272 msgid "Disable" msgstr "Désactiver" -#: app/scripts/controllers/menu.js:250 +#: app/scripts/controllers/menu.js:256 msgid "Do you want to close the application?" msgstr "Voulez-vous fermer l'application ?" -#: app/scripts/controllers/menu.js:576 +#: app/scripts/controllers/menu.js:588 msgid "Do you want to remove the {{name}} collection?" msgstr "Voulez-vous supprimer la collection {{name}} ?" -#: app/scripts/services/tools.js:906 +#: app/scripts/services/tools.js:929 msgid "Do you want to replace it?" msgstr "Voulez-vous le remplacer ?" -#: app/views/menu.html:311 +#: app/views/menu.html:318 msgid "Documentation" msgstr "Documentation" -#: app/views/menu.html:256 +#: app/views/menu.html:263 msgid "Drivers" msgstr "Pilote" -#: app/scripts/services/drivers.js:134 app/scripts/services/drivers.js:72 +#: app/scripts/services/drivers.js:133 app/scripts/services/drivers.js:72 msgid "Drivers disabled" msgstr "Pilote désactivé" -#: app/scripts/services/drivers.js:126 app/scripts/services/drivers.js:63 +#: app/scripts/services/drivers.js:125 app/scripts/services/drivers.js:63 msgid "Drivers enabled" msgstr "Pilote activé" -#: app/scripts/services/tools.js:344 +#: app/scripts/services/tools.js:357 msgid "Duplicated FPGA I/O ports" msgstr "Ports d'entrée/sortie FPGA dupliqués" @@ -278,11 +282,11 @@ msgstr "Attributs de bloc dupliqués" msgid "Edit" msgstr "Édition" -#: app/scripts/services/tools.js:895 +#: app/scripts/services/tools.js:918 msgid "Edit the collection name" msgstr "Éditer le nom de la collection" -#: app/views/menu.html:133 app/views/menu.html:260 +#: app/views/menu.html:133 app/views/menu.html:267 msgid "Enable" msgstr "Activer" @@ -314,11 +318,11 @@ msgstr "Entrer les ports de sortie" msgid "Enter the parameters" msgstr "Entrer les paramètres" -#: app/scripts/controllers/menu.js:358 +#: app/scripts/controllers/menu.js:366 msgid "Enter the remote hostname user@host (experimental)" msgstr "Entrer le nom d'hôte distant user@host (expérimental)" -#: app/scripts/services/tools.js:626 +#: app/scripts/services/tools.js:639 msgid "Error: default toolchain not found in '{{dir}}'" msgstr "Erreur: La toolchain par défaut n'a pas été trouvée dans '{{dir}}'" @@ -326,7 +330,7 @@ msgstr "Erreur: La toolchain par défaut n'a pas été trouvée dans '{{dir}}'" msgid "Error: {{error}}" msgstr "Erreur : {{error}}" -#: app/scripts/services/tools.js:418 +#: app/scripts/services/tools.js:431 msgid "Errors detected in the design" msgstr "" @@ -334,7 +338,7 @@ msgstr "" msgid "Examples" msgstr "Exemples" -#: app/scripts/services/tools.js:275 +#: app/scripts/services/tools.js:282 msgid "Execute remote {{label}} ..." msgstr "Exécuter à distance {{label}} ..." @@ -342,19 +346,19 @@ msgstr "Exécuter à distance {{label}} ..." msgid "Export" msgstr "Exporter" -#: app/scripts/services/tools.js:762 +#: app/scripts/services/tools.js:778 msgid "Extract default apio files..." msgstr "Extraction des fichiers apio par défaut..." -#: app/scripts/services/tools.js:772 +#: app/scripts/services/tools.js:788 msgid "Extract default apio packages..." msgstr "Extraction des paquets apio par défaut..." -#: app/scripts/services/tools.js:750 +#: app/scripts/services/tools.js:766 msgid "Extract virtual env files..." msgstr "Extraction des fichiers d'environnement virtuels..." -#: app/scripts/services/tools.js:341 +#: app/scripts/services/tools.js:354 msgid "FPGA I/O ports not defined" msgstr "Ports d'entrée/sortie FPGA non définis" @@ -363,6 +367,10 @@ msgstr "Ports d'entrée/sortie FPGA non définis" msgid "FPGA pin" msgstr "Pin FPGA" +#: app/views/menu.html:179 +msgid "FPGA resources" +msgstr "" + #: app/views/menu.html:29 msgid "File" msgstr "Fichier" @@ -374,7 +382,7 @@ msgstr "" "Le fichier {{file}} existe déjà dans le chemin du projet. Voulez vous le " "remplacer ?" -#: app/scripts/services/tools.js:214 +#: app/scripts/services/tools.js:221 msgid "File {{file}} does not exist" msgstr "Le fichier {{file}} n'existe pas" @@ -394,7 +402,7 @@ msgstr "Français" msgid "Galician" msgstr "Galicien" -#: app/views/menu.html:301 +#: app/views/menu.html:308 msgid "Help" msgstr "Aide" @@ -402,35 +410,35 @@ msgstr "Aide" msgid "Image" msgstr "Image" -#: app/scripts/controllers/menu.js:735 +#: app/scripts/controllers/menu.js:753 msgid "Image {{name}} saved" msgstr "Image {{name}} sauvegardée" -#: app/views/menu.html:350 +#: app/views/menu.html:356 msgid "Information" msgstr "Information" -#: app/views/menu.html:338 +#: app/views/menu.html:344 msgid "Input" msgstr "Entrée" -#: app/views/menu.html:233 +#: app/views/menu.html:240 msgid "Install" msgstr "Installation" -#: app/scripts/services/tools.js:767 +#: app/scripts/services/tools.js:783 msgid "Install default apio..." msgstr "Installer l'apio par défaut..." -#: app/scripts/services/tools.js:816 +#: app/scripts/services/tools.js:832 msgid "Installation completed" msgstr "Installation terminée" -#: app/scripts/services/tools.js:657 app/scripts/services/tools.js:692 +#: app/scripts/services/tools.js:673 app/scripts/services/tools.js:708 msgid "Installing toolchain" msgstr "Installation de la toolchain" -#: app/scripts/services/drivers.js:118 app/scripts/services/tools.js:731 +#: app/scripts/services/drivers.js:117 app/scripts/services/tools.js:747 msgid "Internet connection required" msgstr "Une connexion Internet est requise" @@ -448,7 +456,7 @@ msgstr "" msgid "Invalid block connection:
    Pull up already connected" msgstr "Connexion de bloc invalide:
    Pull up déjà connectée" -#: app/scripts/services/tools.js:926 +#: app/scripts/services/tools.js:949 msgid "Invalid collection {{name}}" msgstr "Collection {{name}} invalide" @@ -469,7 +477,7 @@ msgstr "Connexions de multiples entrées invalides" msgid "Invalid project format" msgstr "" -#: app/scripts/services/drivers.js:196 +#: app/scripts/services/drivers.js:195 msgid "It is recommended to use USB 2.0 ports" msgstr "Des ports USB 2.0 sont recommandés" @@ -485,7 +493,7 @@ msgstr "Charger" msgid "Local parameter" msgstr "Paramètre local" -#: app/scripts/services/tools.js:755 +#: app/scripts/services/tools.js:771 msgid "Make virtual env..." msgstr "Créer l'environnement virtuel..." @@ -505,11 +513,11 @@ msgstr "Nouveau" msgid "New project {{name}} created" msgstr "Nouveau projet {{name}} créé" -#: app/scripts/controllers/menu.js:594 +#: app/scripts/controllers/menu.js:606 msgid "No collections stored" msgstr "Pas de collections sauvegardées" -#: app/scripts/controllers/main.js:15 app/scripts/controllers/menu.js:260 +#: app/scripts/controllers/main.js:15 app/scripts/controllers/menu.js:266 #: app/scripts/services/project.js:145 msgid "OK" msgstr "OK" @@ -530,7 +538,7 @@ msgstr "Ouvrir SVG" msgid "Original file {{file}} does not exist" msgstr "Le fichier original {{file}} n'existe pas" -#: app/views/menu.html:341 +#: app/views/menu.html:347 msgid "Output" msgstr "Sortie" @@ -550,7 +558,7 @@ msgstr "Préférences" msgid "Project information" msgstr "Informations du projet" -#: app/scripts/controllers/menu.js:326 app/scripts/controllers/menu.js:340 +#: app/scripts/controllers/menu.js:334 app/scripts/controllers/menu.js:348 msgid "Project information updated" msgstr "" @@ -562,7 +570,7 @@ msgstr "Projet {{name}} chargé" msgid "Project {{name}} saved" msgstr "Projet {{name}} sauvegardé" -#: app/scripts/services/tools.js:744 +#: app/scripts/services/tools.js:760 msgid "Python 2.7 is required" msgstr "Python 2.7 est requis" @@ -578,7 +586,7 @@ msgstr "Lecture seule" msgid "Redo" msgstr "Refaire" -#: app/scripts/services/tools.js:453 +#: app/scripts/services/tools.js:466 msgid "Remote host {{name}} not connected" msgstr "Hôte distant {{name}} non connecté" @@ -586,11 +594,11 @@ msgstr "Hôte distant {{name}} non connecté" msgid "Remote hostname" msgstr "Nom d'hôte distant" -#: app/views/menu.html:241 app/views/menu.html:280 +#: app/views/menu.html:248 app/views/menu.html:287 msgid "Remove" msgstr "Supprimer" -#: app/views/menu.html:292 +#: app/views/menu.html:299 msgid "Remove all" msgstr "Supprimer tout" @@ -598,7 +606,7 @@ msgstr "Supprimer tout" msgid "Reset SVG" msgstr "Réinitialiser le SVG" -#: app/views/menu.html:246 +#: app/views/menu.html:253 msgid "Reset default" msgstr "Réinitialiser avec les paramètres par défaut" @@ -614,7 +622,7 @@ msgstr "Sauvegarder le SVG" msgid "Save as" msgstr "Sauvegarder sous" -#: app/views/menu.html:180 +#: app/views/menu.html:187 msgid "Select" msgstr "Sélectionner" @@ -626,7 +634,7 @@ msgstr "Sélectionner tout" msgid "Show clock" msgstr "Montrer l'horloge" -#: app/views/menu.html:314 +#: app/views/menu.html:321 msgid "Source code" msgstr "Code source" @@ -634,19 +642,19 @@ msgstr "Code source" msgid "Spanish" msgstr "Espagnol" -#: app/scripts/controllers/menu.js:530 +#: app/scripts/controllers/menu.js:540 msgid "Start build" msgstr "Début de la construction" -#: app/scripts/controllers/menu.js:542 +#: app/scripts/controllers/menu.js:553 msgid "Start upload" msgstr "Début du téléchargement" -#: app/scripts/controllers/menu.js:518 +#: app/scripts/controllers/menu.js:530 msgid "Start verification" msgstr "Début de la vérification" -#: app/scripts/services/tools.js:264 +#: app/scripts/services/tools.js:271 msgid "Synchronize remote files ..." msgstr "Synchroniser les fichiers distants ..." @@ -654,11 +662,11 @@ msgstr "Synchroniser les fichiers distants ..." msgid "Testbench" msgstr "Testbench" -#: app/scripts/services/tools.js:905 +#: app/scripts/services/tools.js:928 msgid "The collection {{name}} already exists." msgstr "La collection {{name}} existe déjà." -#: app/scripts/controllers/menu.js:497 +#: app/scripts/controllers/menu.js:509 msgid "" "The current FPGA I/O configuration will be lost. Do you want to change to " "{{name}} board?" @@ -666,15 +674,15 @@ msgstr "" "La configuration actuelle des entrées/sorties du FPGA va être perdue. Voulez-" "vous changer pour la carte {{name}}?" -#: app/scripts/services/tools.js:631 +#: app/scripts/services/tools.js:647 msgid "The toolchain will be removed. Do you want to continue?" msgstr "La toolchain va être supprimée. Voulez-vous continuer ?" -#: app/scripts/services/tools.js:619 +#: app/scripts/services/tools.js:632 msgid "The toolchain will be restored to default. Do you want to continue?" msgstr "La toolchain par défaut va être restaurée. Voulez vous continuer ?" -#: app/scripts/services/tools.js:611 +#: app/scripts/services/tools.js:621 msgid "" "The toolchain will be updated. This operation requires Internet connection. " "Do you want to continue?" @@ -694,28 +702,28 @@ msgstr "" msgid "This project is designed for the {{name}} board." msgstr "Ce projet est conçu pour la carte {{name}}" -#: app/views/menu.html:229 +#: app/views/menu.html:236 msgid "Toolchain" msgstr "Toolchain" -#: app/scripts/services/tools.js:818 +#: app/scripts/services/tools.js:834 msgid "Toolchain installed" msgstr "La toolchain est installée" -#: app/scripts/services/drivers.js:203 app/scripts/services/drivers.js:225 -#: app/scripts/services/tools.js:132 app/scripts/services/tools.js:834 +#: app/scripts/services/drivers.js:202 app/scripts/services/drivers.js:224 +#: app/scripts/services/tools.js:139 app/scripts/services/tools.js:839 msgid "Toolchain not installed" msgstr "La toolchain n'est pas installée" -#: app/scripts/services/tools.js:636 +#: app/scripts/services/tools.js:652 msgid "Toolchain removed" msgstr "Toolchain supprimée" -#: app/scripts/services/tools.js:246 +#: app/scripts/services/tools.js:253 msgid "Toolchain version does not match" msgstr "" -#: app/views/menu.html:216 +#: app/views/menu.html:223 msgid "Tools" msgstr "Outils" @@ -723,7 +731,7 @@ msgstr "Outils" msgid "Undo" msgstr "Revenir en arrière" -#: app/scripts/services/tools.js:336 +#: app/scripts/services/tools.js:343 msgid "Unknown board" msgstr "Carte inconnue" @@ -731,7 +739,7 @@ msgstr "Carte inconnue" msgid "Untitled" msgstr "Sans titre" -#: app/views/menu.html:236 +#: app/views/menu.html:243 msgid "Update" msgstr "Mettre à jour" @@ -740,23 +748,23 @@ msgstr "Mettre à jour" msgid "Update the block name" msgstr "Mettre le nom du bloc à jour" -#: app/views/menu.html:225 +#: app/views/menu.html:232 msgid "Upload" msgstr "Télécharger" -#: app/scripts/controllers/menu.js:543 +#: app/scripts/controllers/menu.js:554 msgid "Upload done" msgstr "Téléchargement terminé" -#: app/scripts/controllers/menu.js:519 +#: app/scripts/controllers/menu.js:531 msgid "Verification done" msgstr "Vérification faite" -#: app/views/menu.html:219 +#: app/views/menu.html:226 msgid "Verify" msgstr "Vérifier" -#: app/scripts/services/utils.js:531 app/views/menu.html:307 +#: app/scripts/services/utils.js:531 app/views/menu.html:314 msgid "Version" msgstr "Version" @@ -764,11 +772,11 @@ msgstr "Version" msgid "View" msgstr "Vue" -#: app/views/menu.html:304 +#: app/views/menu.html:311 msgid "View license" msgstr "Voir la licence" -#: app/scripts/services/tools.js:421 +#: app/scripts/services/tools.js:434 msgid "Warnings detected in the design" msgstr "" @@ -794,7 +802,7 @@ msgstr "Mauvais nom de port {{name}}" msgid "Wrong project format: {{name}}" msgstr "Mauvais format de projet: {{name}}" -#: app/scripts/services/tools.js:450 +#: app/scripts/services/tools.js:463 msgid "Wrong remote hostname {{name}}" msgstr "Mauvais nom d'hôte distant {{name}}" @@ -803,7 +811,7 @@ msgid "You can load it as it is or convert it for the {{name}} board." msgstr "" "Vous pouvez le charger tel quel ou le convertir pour la carte {{name}}." -#: app/scripts/controllers/menu.js:251 +#: app/scripts/controllers/menu.js:257 msgid "Your changes will be lost if you don’t save them" msgstr "Vos modifications seront perdues si vous ne les sauvegardez pas" @@ -811,23 +819,23 @@ msgstr "Vos modifications seront perdues si vous ne les sauvegardez pas" msgid "back" msgstr "retour" -#: app/scripts/services/drivers.js:109 app/scripts/services/utils.js:862 +#: app/scripts/services/drivers.js:108 app/scripts/services/utils.js:862 msgid "{{app}} is required." msgstr "{{app}} est requis." -#: app/scripts/controllers/menu.js:430 +#: app/scripts/controllers/menu.js:438 msgid "{{board}} datasheet not defined" msgstr "Documentation {{board}} non définie" -#: app/scripts/controllers/menu.js:420 +#: app/scripts/controllers/menu.js:428 msgid "{{board}} pinout not defined" msgstr "Pinout {{board}} non défini" -#: app/scripts/controllers/menu.js:449 +#: app/scripts/controllers/menu.js:457 msgid "{{board}} rules not defined" msgstr "Règles {{board}} non définies" -#: app/scripts/controllers/menu.js:201 app/scripts/controllers/menu.js:224 +#: app/scripts/controllers/menu.js:204 app/scripts/controllers/menu.js:228 msgid "{{name}} exported" msgstr "" diff --git a/app/resources/locale/gl_ES/gl_ES.po b/app/resources/locale/gl_ES/gl_ES.po index baae30386..54cea2cb7 100644 --- a/app/resources/locale/gl_ES/gl_ES.po +++ b/app/resources/locale/gl_ES/gl_ES.po @@ -12,11 +12,11 @@ msgstr "" "X-Generator: Poedit 1.8.7.1\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: app/scripts/services/drivers.js:211 app/scripts/services/drivers.js:87 +#: app/scripts/services/drivers.js:210 app/scripts/services/drivers.js:87 msgid "Unplug and reconnect the board" msgstr "Desconecta e conecta de novo a placa" -#: app/scripts/services/drivers.js:195 +#: app/scripts/services/drivers.js:194 msgid "" "

    FTDI driver installation instructions

    1. Connect the FPGA " "board
    2. Replace the (Interface 0) driver of the board by " @@ -26,7 +26,7 @@ msgstr "" "a placa FPGA
    3. Troca o controlador (Interface 0) da placa por " "libusbK
    4. Desconecta e conecta de novo a placa
    " -#: app/scripts/services/drivers.js:218 +#: app/scripts/services/drivers.js:217 msgid "" "

    FTDI driver uninstallation instructions

    1. Find the FPGA USB " "Device
    2. Select the board interface and uninstall the driver
    " @@ -35,15 +35,15 @@ msgstr "" "o dispositivo USB da placa FPGA
  • Selecciona a interfaz da placa e " "desinstala o controlador
  • " -#: app/views/menu.html:322 +#: app/views/menu.html:329 msgid "About Icestudio" msgstr "Acerca de Icestudio" -#: app/views/menu.html:276 +#: app/views/menu.html:283 msgid "Add" msgstr "Engadir" -#: app/scripts/controllers/menu.js:562 +#: app/scripts/controllers/menu.js:574 msgid "Add a block to start" msgstr "Engada un bloque para comezar" @@ -51,11 +51,11 @@ msgstr "Engada un bloque para comezar" msgid "Add as block" msgstr "Engadir como bloque" -#: app/scripts/services/tools.js:1036 +#: app/scripts/services/tools.js:1059 msgid "All collections removed" msgstr "Elimináronse todas as coleccións" -#: app/scripts/controllers/menu.js:586 +#: app/scripts/controllers/menu.js:598 msgid "All stored collections will be lost. Do you want to continue?" msgstr "Perderanse todas as coleccións gardadas. Desexa continuar?" @@ -63,7 +63,7 @@ msgstr "Perderanse todas as coleccións gardadas. Desexa continuar?" msgid "Author" msgstr "Autor" -#: app/views/menu.html:333 +#: app/views/menu.html:340 msgid "Basic" msgstr "Básico" @@ -86,7 +86,7 @@ msgstr "Importouse o bloque {{name}}" msgid "Blocks" msgstr "Bloques" -#: app/views/menu.html:183 +#: app/views/menu.html:190 msgid "Board" msgstr "Placa" @@ -94,27 +94,27 @@ msgstr "Placa" msgid "Board rules" msgstr "Regras da placa" -#: app/scripts/controllers/menu.js:371 +#: app/scripts/controllers/menu.js:379 msgid "Board rules disabled" msgstr "Deshabilitáronse as regras da placa" -#: app/scripts/controllers/menu.js:366 +#: app/scripts/controllers/menu.js:374 msgid "Board rules enabled" msgstr "Habilitáronse as regras da placa" -#: app/scripts/services/tools.js:333 +#: app/scripts/services/tools.js:340 msgid "Board {{name}} not detected" msgstr "Non se detectou a placa {{name}}" -#: app/scripts/controllers/menu.js:510 +#: app/scripts/controllers/menu.js:522 msgid "Board {{name}} selected" msgstr "Seleccionouse a placa {{name}}" -#: app/views/menu.html:222 +#: app/views/menu.html:229 msgid "Build" msgstr "Sintetizar" -#: app/scripts/controllers/menu.js:531 +#: app/scripts/controllers/menu.js:541 msgid "Build done" msgstr "Sintetizado realizado" @@ -126,37 +126,37 @@ msgstr "Cancelar" msgid "Catalan" msgstr "Catalán" -#: app/scripts/services/tools.js:727 +#: app/scripts/services/tools.js:743 msgid "Check Internet connection..." msgstr "Comprobando a conexión a Internet..." -#: app/scripts/services/tools.js:737 +#: app/scripts/services/tools.js:753 msgid "Check Python..." msgstr "Comprobando Python..." -#: app/scripts/services/tools.js:819 +#: app/scripts/services/tools.js:847 msgid "Click here to setup the drivers" msgstr "" -#: app/scripts/services/drivers.js:110 app/scripts/services/drivers.js:203 -#: app/scripts/services/drivers.js:225 app/scripts/services/tools.js:132 -#: app/scripts/services/tools.js:246 +#: app/scripts/services/drivers.js:109 app/scripts/services/drivers.js:202 +#: app/scripts/services/drivers.js:224 app/scripts/services/tools.js:139 +#: app/scripts/services/tools.js:253 msgid "Click here to install it" msgstr "" -#: app/scripts/controllers/menu.js:326 +#: app/scripts/controllers/menu.js:334 msgid "Click here to view" msgstr "" -#: app/scripts/controllers/menu.js:247 +#: app/scripts/controllers/menu.js:252 msgid "Close" msgstr "" -#: app/views/menu.html:347 +#: app/views/menu.html:353 msgid "Code" msgstr "Código" -#: app/views/menu.html:194 +#: app/views/menu.html:201 msgid "Collection" msgstr "Colección" @@ -164,39 +164,43 @@ msgstr "Colección" msgid "Collection info" msgstr "" -#: app/scripts/controllers/menu.js:468 +#: app/scripts/controllers/menu.js:480 msgid "Collection {{collection}} info not defined" msgstr "" -#: app/scripts/services/tools.js:920 +#: app/scripts/services/tools.js:943 msgid "Collection {{name}} added" msgstr "Engadiuse a coleción {{name}}" -#: app/scripts/services/tools.js:914 +#: app/scripts/services/tools.js:937 msgid "Collection {{name}} not replaced" msgstr "Non se trocou a colección {{name}}" -#: app/scripts/services/tools.js:1030 +#: app/scripts/services/tools.js:1053 msgid "Collection {{name}} removed" msgstr "Eliminouse a colección {{name}}" -#: app/scripts/services/tools.js:910 +#: app/scripts/services/tools.js:933 msgid "Collection {{name}} replaced" msgstr "Trocouse a colección {{name}}" -#: app/scripts/controllers/menu.js:476 +#: app/scripts/controllers/menu.js:488 msgid "Collection {{name}} selected" msgstr "Seleccionouse a colección {{name}}" -#: app/views/menu.html:272 +#: app/views/menu.html:279 msgid "Collections" msgstr "Coleccións" -#: app/views/menu.html:318 +#: app/views/menu.html:325 msgid "Community forum" msgstr "Foro da comunidade" -#: app/views/menu.html:344 +#: app/scripts/services/tools.js:348 +msgid "Configuration not completed" +msgstr "" + +#: app/views/menu.html:350 msgid "Constant" msgstr "Constante" @@ -216,11 +220,11 @@ msgstr "Cortar" msgid "Datasheet" msgstr "Folla de datos" -#: app/views/menu.html:199 +#: app/views/menu.html:206 msgid "Default" msgstr "Predeterminado" -#: app/scripts/services/tools.js:603 +#: app/scripts/services/tools.js:610 msgid "" "Default toolchain not found. Toolchain will be downloaded. This operation " "requires Internet connection. Do you want to continue?" @@ -232,39 +236,39 @@ msgstr "" msgid "Description" msgstr "Descripción" -#: app/views/menu.html:138 app/views/menu.html:265 +#: app/views/menu.html:138 app/views/menu.html:272 msgid "Disable" msgstr "Deshabilitar" -#: app/scripts/controllers/menu.js:250 +#: app/scripts/controllers/menu.js:256 msgid "Do you want to close the application?" msgstr "Desexa pechar a aplicación?" -#: app/scripts/controllers/menu.js:576 +#: app/scripts/controllers/menu.js:588 msgid "Do you want to remove the {{name}} collection?" msgstr "Desexa eliminar a colección {{name}}?" -#: app/scripts/services/tools.js:906 +#: app/scripts/services/tools.js:929 msgid "Do you want to replace it?" msgstr "Desexa trocalo?" -#: app/views/menu.html:311 +#: app/views/menu.html:318 msgid "Documentation" msgstr "Documentación" -#: app/views/menu.html:256 +#: app/views/menu.html:263 msgid "Drivers" msgstr "Controladores" -#: app/scripts/services/drivers.js:134 app/scripts/services/drivers.js:72 +#: app/scripts/services/drivers.js:133 app/scripts/services/drivers.js:72 msgid "Drivers disabled" msgstr "Deshabilitáronse os controladores" -#: app/scripts/services/drivers.js:126 app/scripts/services/drivers.js:63 +#: app/scripts/services/drivers.js:125 app/scripts/services/drivers.js:63 msgid "Drivers enabled" msgstr "Habilitáronse os controladores" -#: app/scripts/services/tools.js:344 +#: app/scripts/services/tools.js:357 msgid "Duplicated FPGA I/O ports" msgstr "Os portos E/S da FPGA están duplicados" @@ -276,11 +280,11 @@ msgstr "Os atributos do bloque están duplicados" msgid "Edit" msgstr "Editar" -#: app/scripts/services/tools.js:895 +#: app/scripts/services/tools.js:918 msgid "Edit the collection name" msgstr "" -#: app/views/menu.html:133 app/views/menu.html:260 +#: app/views/menu.html:133 app/views/menu.html:267 msgid "Enable" msgstr "Habilitar" @@ -312,11 +316,11 @@ msgstr "Introduza os portos de saída" msgid "Enter the parameters" msgstr "Introduza os parámetros" -#: app/scripts/controllers/menu.js:358 +#: app/scripts/controllers/menu.js:366 msgid "Enter the remote hostname user@host (experimental)" msgstr "Introduza o nome do equipo remoto: usuario@equipo (experimental)" -#: app/scripts/services/tools.js:626 +#: app/scripts/services/tools.js:639 msgid "Error: default toolchain not found in '{{dir}}'" msgstr "Erro: non se atopou a cadea de ferramentas predeterminada en '{{dir}}'" @@ -324,7 +328,7 @@ msgstr "Erro: non se atopou a cadea de ferramentas predeterminada en '{{dir}}'" msgid "Error: {{error}}" msgstr "Erro: {{error}}" -#: app/scripts/services/tools.js:418 +#: app/scripts/services/tools.js:431 msgid "Errors detected in the design" msgstr "" @@ -332,7 +336,7 @@ msgstr "" msgid "Examples" msgstr "Exemplos" -#: app/scripts/services/tools.js:275 +#: app/scripts/services/tools.js:282 msgid "Execute remote {{label}} ..." msgstr "Executando {{label}} remoto..." @@ -340,19 +344,19 @@ msgstr "Executando {{label}} remoto..." msgid "Export" msgstr "Exportar" -#: app/scripts/services/tools.js:762 +#: app/scripts/services/tools.js:778 msgid "Extract default apio files..." msgstr "Extraíndo os ficheiros de apio..." -#: app/scripts/services/tools.js:772 +#: app/scripts/services/tools.js:788 msgid "Extract default apio packages..." msgstr "Extraíndo os paquetes de apio..." -#: app/scripts/services/tools.js:750 +#: app/scripts/services/tools.js:766 msgid "Extract virtual env files..." msgstr "Extraíndo ficheiros do contorno virtual..." -#: app/scripts/services/tools.js:341 +#: app/scripts/services/tools.js:354 msgid "FPGA I/O ports not defined" msgstr "Portos E/S da FPGA non definidos" @@ -361,6 +365,10 @@ msgstr "Portos E/S da FPGA non definidos" msgid "FPGA pin" msgstr "Pin da FPGA" +#: app/views/menu.html:179 +msgid "FPGA resources" +msgstr "" + #: app/views/menu.html:29 msgid "File" msgstr "Ficheiro" @@ -370,7 +378,7 @@ msgid "" "File {{file}} already exists in the project path. Do you want to replace it?" msgstr "Xa existe o ficheiro {{file}} no cartafol do proxecto. Desexa trocalo?" -#: app/scripts/services/tools.js:214 +#: app/scripts/services/tools.js:221 msgid "File {{file}} does not exist" msgstr "O ficheiro {{file}} non existe" @@ -390,7 +398,7 @@ msgstr "Francés" msgid "Galician" msgstr "Galego" -#: app/views/menu.html:301 +#: app/views/menu.html:308 msgid "Help" msgstr "Axuda" @@ -398,35 +406,35 @@ msgstr "Axuda" msgid "Image" msgstr "Imaxe" -#: app/scripts/controllers/menu.js:735 +#: app/scripts/controllers/menu.js:753 msgid "Image {{name}} saved" msgstr "Gardouse a imaxe {{name}}" -#: app/views/menu.html:350 +#: app/views/menu.html:356 msgid "Information" msgstr "Información" -#: app/views/menu.html:338 +#: app/views/menu.html:344 msgid "Input" msgstr "Entrada" -#: app/views/menu.html:233 +#: app/views/menu.html:240 msgid "Install" msgstr "Instalar" -#: app/scripts/services/tools.js:767 +#: app/scripts/services/tools.js:783 msgid "Install default apio..." msgstr "Instalando apio..." -#: app/scripts/services/tools.js:816 +#: app/scripts/services/tools.js:832 msgid "Installation completed" msgstr "Instalación completada" -#: app/scripts/services/tools.js:657 app/scripts/services/tools.js:692 +#: app/scripts/services/tools.js:673 app/scripts/services/tools.js:708 msgid "Installing toolchain" msgstr "Instalando a cadea de ferramentas..." -#: app/scripts/services/drivers.js:118 app/scripts/services/tools.js:731 +#: app/scripts/services/drivers.js:117 app/scripts/services/tools.js:747 msgid "Internet connection required" msgstr "Requírese dunha conexión a Internet" @@ -446,7 +454,7 @@ msgid "Invalid block connection:
    Pull up already connected" msgstr "" "A conexión do bloque non é válida:
    xa existe unha conexión pull-up" -#: app/scripts/services/tools.js:926 +#: app/scripts/services/tools.js:949 msgid "Invalid collection {{name}}" msgstr "A colección {{name}} non é válida" @@ -467,7 +475,7 @@ msgstr "Conexións de entrada múltiple non válida" msgid "Invalid project format" msgstr "" -#: app/scripts/services/drivers.js:196 +#: app/scripts/services/drivers.js:195 msgid "It is recommended to use USB 2.0 ports" msgstr "" @@ -483,7 +491,7 @@ msgstr "" msgid "Local parameter" msgstr "Parámetro local" -#: app/scripts/services/tools.js:755 +#: app/scripts/services/tools.js:771 msgid "Make virtual env..." msgstr "Creando o contorno virtual..." @@ -503,11 +511,11 @@ msgstr "Novo" msgid "New project {{name}} created" msgstr "Novo proxecto {{name}} creado" -#: app/scripts/controllers/menu.js:594 +#: app/scripts/controllers/menu.js:606 msgid "No collections stored" msgstr "Non hay coleccións gardadas" -#: app/scripts/controllers/main.js:15 app/scripts/controllers/menu.js:260 +#: app/scripts/controllers/main.js:15 app/scripts/controllers/menu.js:266 #: app/scripts/services/project.js:145 msgid "OK" msgstr "Aceptar" @@ -528,7 +536,7 @@ msgstr "Abrir SVG" msgid "Original file {{file}} does not exist" msgstr "Non existe o ficheiro {{name}} orixinal" -#: app/views/menu.html:341 +#: app/views/menu.html:347 msgid "Output" msgstr "Saída" @@ -548,7 +556,7 @@ msgstr "Preferencias" msgid "Project information" msgstr "Información do proxecto" -#: app/scripts/controllers/menu.js:326 app/scripts/controllers/menu.js:340 +#: app/scripts/controllers/menu.js:334 app/scripts/controllers/menu.js:348 msgid "Project information updated" msgstr "" @@ -560,7 +568,7 @@ msgstr "Proxecto {{name}} cargado" msgid "Project {{name}} saved" msgstr "Proxecto {{name}} gardado" -#: app/scripts/services/tools.js:744 +#: app/scripts/services/tools.js:760 msgid "Python 2.7 is required" msgstr "Requírese Python 2.7" @@ -576,7 +584,7 @@ msgstr "Só lectura" msgid "Redo" msgstr "Refacer" -#: app/scripts/services/tools.js:453 +#: app/scripts/services/tools.js:466 msgid "Remote host {{name}} not connected" msgstr "Non se puido conectar ó equipo remoto {{name}}" @@ -584,11 +592,11 @@ msgstr "Non se puido conectar ó equipo remoto {{name}}" msgid "Remote hostname" msgstr "Nome do equipo remoto" -#: app/views/menu.html:241 app/views/menu.html:280 +#: app/views/menu.html:248 app/views/menu.html:287 msgid "Remove" msgstr "Eliminar" -#: app/views/menu.html:292 +#: app/views/menu.html:299 msgid "Remove all" msgstr "Eliminar todo" @@ -596,7 +604,7 @@ msgstr "Eliminar todo" msgid "Reset SVG" msgstr "Restablecer SVG" -#: app/views/menu.html:246 +#: app/views/menu.html:253 msgid "Reset default" msgstr "Restablecer predeterminado" @@ -612,7 +620,7 @@ msgstr "Gardar SVG" msgid "Save as" msgstr "Gardar como" -#: app/views/menu.html:180 +#: app/views/menu.html:187 msgid "Select" msgstr "Seleccionar" @@ -624,7 +632,7 @@ msgstr "Seleccionar todo" msgid "Show clock" msgstr "Mostrar reloxo" -#: app/views/menu.html:314 +#: app/views/menu.html:321 msgid "Source code" msgstr "Código fonte" @@ -632,19 +640,19 @@ msgstr "Código fonte" msgid "Spanish" msgstr "Castelán" -#: app/scripts/controllers/menu.js:530 +#: app/scripts/controllers/menu.js:540 msgid "Start build" msgstr "Iniciando o sintetizado" -#: app/scripts/controllers/menu.js:542 +#: app/scripts/controllers/menu.js:553 msgid "Start upload" msgstr "Iniciando a carga" -#: app/scripts/controllers/menu.js:518 +#: app/scripts/controllers/menu.js:530 msgid "Start verification" msgstr "Iniciando a verificación" -#: app/scripts/services/tools.js:264 +#: app/scripts/services/tools.js:271 msgid "Synchronize remote files ..." msgstr "Sincronizando ficheiros remotos..." @@ -652,11 +660,11 @@ msgstr "Sincronizando ficheiros remotos..." msgid "Testbench" msgstr "Testbench" -#: app/scripts/services/tools.js:905 +#: app/scripts/services/tools.js:928 msgid "The collection {{name}} already exists." msgstr "A colección {{name}} xa existe." -#: app/scripts/controllers/menu.js:497 +#: app/scripts/controllers/menu.js:509 msgid "" "The current FPGA I/O configuration will be lost. Do you want to change to " "{{name}} board?" @@ -664,17 +672,17 @@ msgstr "" "Perderase a configuración actual de E/S da FPGA. Desexa cambiar á placa " "{{name}}?" -#: app/scripts/services/tools.js:631 +#: app/scripts/services/tools.js:647 msgid "The toolchain will be removed. Do you want to continue?" msgstr "Vaise eliminar a cadea de ferramentas. Desexa continuar?" -#: app/scripts/services/tools.js:619 +#: app/scripts/services/tools.js:632 msgid "The toolchain will be restored to default. Do you want to continue?" msgstr "" "Vaise restaurar a cadea de ferramentas coa configuración predeterminada. " "Desexa continuar?" -#: app/scripts/services/tools.js:611 +#: app/scripts/services/tools.js:621 msgid "" "The toolchain will be updated. This operation requires Internet connection. " "Do you want to continue?" @@ -694,28 +702,28 @@ msgstr "" msgid "This project is designed for the {{name}} board." msgstr "Este proxecto está deseñado para a placa {{name}}" -#: app/views/menu.html:229 +#: app/views/menu.html:236 msgid "Toolchain" msgstr "Cadea de ferramentas" -#: app/scripts/services/tools.js:818 +#: app/scripts/services/tools.js:834 msgid "Toolchain installed" msgstr "Instalouse a cadea de ferramentas" -#: app/scripts/services/drivers.js:203 app/scripts/services/drivers.js:225 -#: app/scripts/services/tools.js:132 app/scripts/services/tools.js:834 +#: app/scripts/services/drivers.js:202 app/scripts/services/drivers.js:224 +#: app/scripts/services/tools.js:139 app/scripts/services/tools.js:839 msgid "Toolchain not installed" msgstr "Non se instalou a cadea de ferramentas" -#: app/scripts/services/tools.js:636 +#: app/scripts/services/tools.js:652 msgid "Toolchain removed" msgstr "Eliminouse a cadea de ferramentas" -#: app/scripts/services/tools.js:246 +#: app/scripts/services/tools.js:253 msgid "Toolchain version does not match" msgstr "" -#: app/views/menu.html:216 +#: app/views/menu.html:223 msgid "Tools" msgstr "Ferramentas" @@ -723,7 +731,7 @@ msgstr "Ferramentas" msgid "Undo" msgstr "Desfacer" -#: app/scripts/services/tools.js:336 +#: app/scripts/services/tools.js:343 msgid "Unknown board" msgstr "Placa desconocida" @@ -731,7 +739,7 @@ msgstr "Placa desconocida" msgid "Untitled" msgstr "Sen título" -#: app/views/menu.html:236 +#: app/views/menu.html:243 msgid "Update" msgstr "Actualizar" @@ -740,23 +748,23 @@ msgstr "Actualizar" msgid "Update the block name" msgstr "Actualizar o nome do bloque" -#: app/views/menu.html:225 +#: app/views/menu.html:232 msgid "Upload" msgstr "Cargar" -#: app/scripts/controllers/menu.js:543 +#: app/scripts/controllers/menu.js:554 msgid "Upload done" msgstr "Carga realizada" -#: app/scripts/controllers/menu.js:519 +#: app/scripts/controllers/menu.js:531 msgid "Verification done" msgstr "Verificación realizada" -#: app/views/menu.html:219 +#: app/views/menu.html:226 msgid "Verify" msgstr "Verificar" -#: app/scripts/services/utils.js:531 app/views/menu.html:307 +#: app/scripts/services/utils.js:531 app/views/menu.html:314 msgid "Version" msgstr "Versión" @@ -764,11 +772,11 @@ msgstr "Versión" msgid "View" msgstr "Ver" -#: app/views/menu.html:304 +#: app/views/menu.html:311 msgid "View license" msgstr "Ver licenza" -#: app/scripts/services/tools.js:421 +#: app/scripts/services/tools.js:434 msgid "Warnings detected in the design" msgstr "" @@ -794,7 +802,7 @@ msgstr "O nome do porto {{name}} non é correcto" msgid "Wrong project format: {{name}}" msgstr "O formato do proxecto {{name}} non é correcto" -#: app/scripts/services/tools.js:450 +#: app/scripts/services/tools.js:463 msgid "Wrong remote hostname {{name}}" msgstr "O nome do equipo remoto {{name}} non é correcto" @@ -802,7 +810,7 @@ msgstr "O nome do equipo remoto {{name}} non é correcto" msgid "You can load it as it is or convert it for the {{name}} board." msgstr "" -#: app/scripts/controllers/menu.js:251 +#: app/scripts/controllers/menu.js:257 msgid "Your changes will be lost if you don’t save them" msgstr "Os cambios realizados perderanse se non se gardan" @@ -810,23 +818,23 @@ msgstr "Os cambios realizados perderanse se non se gardan" msgid "back" msgstr "Atrás" -#: app/scripts/services/drivers.js:109 app/scripts/services/utils.js:862 +#: app/scripts/services/drivers.js:108 app/scripts/services/utils.js:862 msgid "{{app}} is required." msgstr "" -#: app/scripts/controllers/menu.js:430 +#: app/scripts/controllers/menu.js:438 msgid "{{board}} datasheet not defined" msgstr "Non se definiu a folla de datos para a placa {{board}}" -#: app/scripts/controllers/menu.js:420 +#: app/scripts/controllers/menu.js:428 msgid "{{board}} pinout not defined" msgstr "Non se definiu o pinout para a placa {{board}}" -#: app/scripts/controllers/menu.js:449 +#: app/scripts/controllers/menu.js:457 msgid "{{board}} rules not defined" msgstr "Non se definiron as regras para a placa {{board}}" -#: app/scripts/controllers/menu.js:201 app/scripts/controllers/menu.js:224 +#: app/scripts/controllers/menu.js:204 app/scripts/controllers/menu.js:228 msgid "{{name}} exported" msgstr "" diff --git a/app/resources/locale/template.pot b/app/resources/locale/template.pot index ea1f22885..260c4e8ea 100644 --- a/app/resources/locale/template.pot +++ b/app/resources/locale/template.pot @@ -4,28 +4,28 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Project-Id-Version: \n" -#: app/scripts/services/drivers.js:211 +#: app/scripts/services/drivers.js:210 #: app/scripts/services/drivers.js:87 msgid "Unplug and reconnect the board" msgstr "" -#: app/scripts/services/drivers.js:195 +#: app/scripts/services/drivers.js:194 msgid "

    FTDI driver installation instructions

    1. Connect the FPGA board
    2. Replace the (Interface 0) driver of the board by libusbK
    3. Unplug and reconnect the board
    " msgstr "" -#: app/scripts/services/drivers.js:218 +#: app/scripts/services/drivers.js:217 msgid "

    FTDI driver uninstallation instructions

    1. Find the FPGA USB Device
    2. Select the board interface and uninstall the driver
    " msgstr "" -#: app/views/menu.html:322 +#: app/views/menu.html:329 msgid "About Icestudio" msgstr "" -#: app/views/menu.html:276 +#: app/views/menu.html:283 msgid "Add" msgstr "" -#: app/scripts/controllers/menu.js:562 +#: app/scripts/controllers/menu.js:574 msgid "Add a block to start" msgstr "" @@ -33,11 +33,11 @@ msgstr "" msgid "Add as block" msgstr "" -#: app/scripts/services/tools.js:1036 +#: app/scripts/services/tools.js:1059 msgid "All collections removed" msgstr "" -#: app/scripts/controllers/menu.js:586 +#: app/scripts/controllers/menu.js:598 msgid "All stored collections will be lost. Do you want to continue?" msgstr "" @@ -45,7 +45,7 @@ msgstr "" msgid "Author" msgstr "" -#: app/views/menu.html:333 +#: app/views/menu.html:340 msgid "Basic" msgstr "" @@ -71,7 +71,7 @@ msgstr "" msgid "Blocks" msgstr "" -#: app/views/menu.html:183 +#: app/views/menu.html:190 msgid "Board" msgstr "" @@ -80,27 +80,27 @@ msgstr "" msgid "Board rules" msgstr "" -#: app/scripts/controllers/menu.js:371 +#: app/scripts/controllers/menu.js:379 msgid "Board rules disabled" msgstr "" -#: app/scripts/controllers/menu.js:366 +#: app/scripts/controllers/menu.js:374 msgid "Board rules enabled" msgstr "" -#: app/scripts/services/tools.js:333 +#: app/scripts/services/tools.js:340 msgid "Board {{name}} not detected" msgstr "" -#: app/scripts/controllers/menu.js:510 +#: app/scripts/controllers/menu.js:522 msgid "Board {{name}} selected" msgstr "" -#: app/views/menu.html:222 +#: app/views/menu.html:229 msgid "Build" msgstr "" -#: app/scripts/controllers/menu.js:531 +#: app/scripts/controllers/menu.js:541 msgid "Build done" msgstr "" @@ -113,39 +113,39 @@ msgstr "" msgid "Catalan" msgstr "" -#: app/scripts/services/tools.js:727 +#: app/scripts/services/tools.js:743 msgid "Check Internet connection..." msgstr "" -#: app/scripts/services/tools.js:737 +#: app/scripts/services/tools.js:753 msgid "Check Python..." msgstr "" -#: app/scripts/services/tools.js:819 +#: app/scripts/services/tools.js:847 msgid "Click here to setup the drivers" msgstr "" -#: app/scripts/services/drivers.js:110 -#: app/scripts/services/drivers.js:203 -#: app/scripts/services/drivers.js:225 -#: app/scripts/services/tools.js:132 -#: app/scripts/services/tools.js:246 +#: app/scripts/services/drivers.js:109 +#: app/scripts/services/drivers.js:202 +#: app/scripts/services/drivers.js:224 +#: app/scripts/services/tools.js:139 +#: app/scripts/services/tools.js:253 msgid "Click here to install it" msgstr "" -#: app/scripts/controllers/menu.js:326 +#: app/scripts/controllers/menu.js:334 msgid "Click here to view" msgstr "" -#: app/scripts/controllers/menu.js:247 +#: app/scripts/controllers/menu.js:252 msgid "Close" msgstr "" -#: app/views/menu.html:347 +#: app/views/menu.html:353 msgid "Code" msgstr "" -#: app/views/menu.html:194 +#: app/views/menu.html:201 msgid "Collection" msgstr "" @@ -153,39 +153,43 @@ msgstr "" msgid "Collection info" msgstr "" -#: app/scripts/controllers/menu.js:468 +#: app/scripts/controllers/menu.js:480 msgid "Collection {{collection}} info not defined" msgstr "" -#: app/scripts/services/tools.js:920 +#: app/scripts/services/tools.js:943 msgid "Collection {{name}} added" msgstr "" -#: app/scripts/services/tools.js:914 +#: app/scripts/services/tools.js:937 msgid "Collection {{name}} not replaced" msgstr "" -#: app/scripts/services/tools.js:1030 +#: app/scripts/services/tools.js:1053 msgid "Collection {{name}} removed" msgstr "" -#: app/scripts/services/tools.js:910 +#: app/scripts/services/tools.js:933 msgid "Collection {{name}} replaced" msgstr "" -#: app/scripts/controllers/menu.js:476 +#: app/scripts/controllers/menu.js:488 msgid "Collection {{name}} selected" msgstr "" -#: app/views/menu.html:272 +#: app/views/menu.html:279 msgid "Collections" msgstr "" -#: app/views/menu.html:318 +#: app/views/menu.html:325 msgid "Community forum" msgstr "" -#: app/views/menu.html:344 +#: app/scripts/services/tools.js:348 +msgid "Configuration not completed" +msgstr "" + +#: app/views/menu.html:350 msgid "Constant" msgstr "" @@ -205,11 +209,11 @@ msgstr "" msgid "Datasheet" msgstr "" -#: app/views/menu.html:199 +#: app/views/menu.html:206 msgid "Default" msgstr "" -#: app/scripts/services/tools.js:603 +#: app/scripts/services/tools.js:610 msgid "Default toolchain not found. Toolchain will be downloaded. This operation requires Internet connection. Do you want to continue?" msgstr "" @@ -218,41 +222,41 @@ msgid "Description" msgstr "" #: app/views/menu.html:138 -#: app/views/menu.html:265 +#: app/views/menu.html:272 msgid "Disable" msgstr "" -#: app/scripts/controllers/menu.js:250 +#: app/scripts/controllers/menu.js:256 msgid "Do you want to close the application?" msgstr "" -#: app/scripts/controllers/menu.js:576 +#: app/scripts/controllers/menu.js:588 msgid "Do you want to remove the {{name}} collection?" msgstr "" -#: app/scripts/services/tools.js:906 +#: app/scripts/services/tools.js:929 msgid "Do you want to replace it?" msgstr "" -#: app/views/menu.html:311 +#: app/views/menu.html:318 msgid "Documentation" msgstr "" -#: app/views/menu.html:256 +#: app/views/menu.html:263 msgid "Drivers" msgstr "" -#: app/scripts/services/drivers.js:134 +#: app/scripts/services/drivers.js:133 #: app/scripts/services/drivers.js:72 msgid "Drivers disabled" msgstr "" -#: app/scripts/services/drivers.js:126 +#: app/scripts/services/drivers.js:125 #: app/scripts/services/drivers.js:63 msgid "Drivers enabled" msgstr "" -#: app/scripts/services/tools.js:344 +#: app/scripts/services/tools.js:357 msgid "Duplicated FPGA I/O ports" msgstr "" @@ -264,12 +268,12 @@ msgstr "" msgid "Edit" msgstr "" -#: app/scripts/services/tools.js:895 +#: app/scripts/services/tools.js:918 msgid "Edit the collection name" msgstr "" #: app/views/menu.html:133 -#: app/views/menu.html:260 +#: app/views/menu.html:267 msgid "Enable" msgstr "" @@ -301,11 +305,11 @@ msgstr "" msgid "Enter the parameters" msgstr "" -#: app/scripts/controllers/menu.js:358 +#: app/scripts/controllers/menu.js:366 msgid "Enter the remote hostname user@host (experimental)" msgstr "" -#: app/scripts/services/tools.js:626 +#: app/scripts/services/tools.js:639 msgid "Error: default toolchain not found in '{{dir}}'" msgstr "" @@ -313,7 +317,7 @@ msgstr "" msgid "Error: {{error}}" msgstr "" -#: app/scripts/services/tools.js:418 +#: app/scripts/services/tools.js:431 msgid "Errors detected in the design" msgstr "" @@ -321,7 +325,7 @@ msgstr "" msgid "Examples" msgstr "" -#: app/scripts/services/tools.js:275 +#: app/scripts/services/tools.js:282 msgid "Execute remote {{label}} ..." msgstr "" @@ -329,19 +333,19 @@ msgstr "" msgid "Export" msgstr "" -#: app/scripts/services/tools.js:762 +#: app/scripts/services/tools.js:778 msgid "Extract default apio files..." msgstr "" -#: app/scripts/services/tools.js:772 +#: app/scripts/services/tools.js:788 msgid "Extract default apio packages..." msgstr "" -#: app/scripts/services/tools.js:750 +#: app/scripts/services/tools.js:766 msgid "Extract virtual env files..." msgstr "" -#: app/scripts/services/tools.js:341 +#: app/scripts/services/tools.js:354 msgid "FPGA I/O ports not defined" msgstr "" @@ -352,6 +356,10 @@ msgstr "" msgid "FPGA pin" msgstr "" +#: app/views/menu.html:179 +msgid "FPGA resources" +msgstr "" + #: app/views/menu.html:29 msgid "File" msgstr "" @@ -360,7 +368,7 @@ msgstr "" msgid "File {{file}} already exists in the project path. Do you want to replace it?" msgstr "" -#: app/scripts/services/tools.js:214 +#: app/scripts/services/tools.js:221 msgid "File {{file}} does not exist" msgstr "" @@ -380,7 +388,7 @@ msgstr "" msgid "Galician" msgstr "" -#: app/views/menu.html:301 +#: app/views/menu.html:308 msgid "Help" msgstr "" @@ -388,37 +396,37 @@ msgstr "" msgid "Image" msgstr "" -#: app/scripts/controllers/menu.js:735 +#: app/scripts/controllers/menu.js:753 msgid "Image {{name}} saved" msgstr "" -#: app/views/menu.html:350 +#: app/views/menu.html:356 msgid "Information" msgstr "" -#: app/views/menu.html:338 +#: app/views/menu.html:344 msgid "Input" msgstr "" -#: app/views/menu.html:233 +#: app/views/menu.html:240 msgid "Install" msgstr "" -#: app/scripts/services/tools.js:767 +#: app/scripts/services/tools.js:783 msgid "Install default apio..." msgstr "" -#: app/scripts/services/tools.js:816 +#: app/scripts/services/tools.js:832 msgid "Installation completed" msgstr "" -#: app/scripts/services/tools.js:657 -#: app/scripts/services/tools.js:692 +#: app/scripts/services/tools.js:673 +#: app/scripts/services/tools.js:708 msgid "Installing toolchain" msgstr "" -#: app/scripts/services/drivers.js:118 -#: app/scripts/services/tools.js:731 +#: app/scripts/services/drivers.js:117 +#: app/scripts/services/tools.js:747 msgid "Internet connection required" msgstr "" @@ -434,7 +442,7 @@ msgstr "" msgid "Invalid block connection:
    Pull up already connected" msgstr "" -#: app/scripts/services/tools.js:926 +#: app/scripts/services/tools.js:949 msgid "Invalid collection {{name}}" msgstr "" @@ -456,7 +464,7 @@ msgstr "" msgid "Invalid project format" msgstr "" -#: app/scripts/services/drivers.js:196 +#: app/scripts/services/drivers.js:195 msgid "It is recommended to use USB 2.0 ports" msgstr "" @@ -473,7 +481,7 @@ msgstr "" msgid "Local parameter" msgstr "" -#: app/scripts/services/tools.js:755 +#: app/scripts/services/tools.js:771 msgid "Make virtual env..." msgstr "" @@ -493,12 +501,12 @@ msgstr "" msgid "New project {{name}} created" msgstr "" -#: app/scripts/controllers/menu.js:594 +#: app/scripts/controllers/menu.js:606 msgid "No collections stored" msgstr "" #: app/scripts/controllers/main.js:15 -#: app/scripts/controllers/menu.js:260 +#: app/scripts/controllers/menu.js:266 #: app/scripts/services/project.js:145 msgid "OK" msgstr "" @@ -520,7 +528,7 @@ msgstr "" msgid "Original file {{file}} does not exist" msgstr "" -#: app/views/menu.html:341 +#: app/views/menu.html:347 msgid "Output" msgstr "" @@ -540,8 +548,8 @@ msgstr "" msgid "Project information" msgstr "" -#: app/scripts/controllers/menu.js:326 -#: app/scripts/controllers/menu.js:340 +#: app/scripts/controllers/menu.js:334 +#: app/scripts/controllers/menu.js:348 msgid "Project information updated" msgstr "" @@ -553,7 +561,7 @@ msgstr "" msgid "Project {{name}} saved" msgstr "" -#: app/scripts/services/tools.js:744 +#: app/scripts/services/tools.js:760 msgid "Python 2.7 is required" msgstr "" @@ -570,7 +578,7 @@ msgstr "" msgid "Redo" msgstr "" -#: app/scripts/services/tools.js:453 +#: app/scripts/services/tools.js:466 msgid "Remote host {{name}} not connected" msgstr "" @@ -578,12 +586,12 @@ msgstr "" msgid "Remote hostname" msgstr "" -#: app/views/menu.html:241 -#: app/views/menu.html:280 +#: app/views/menu.html:248 +#: app/views/menu.html:287 msgid "Remove" msgstr "" -#: app/views/menu.html:292 +#: app/views/menu.html:299 msgid "Remove all" msgstr "" @@ -591,7 +599,7 @@ msgstr "" msgid "Reset SVG" msgstr "" -#: app/views/menu.html:246 +#: app/views/menu.html:253 msgid "Reset default" msgstr "" @@ -607,7 +615,7 @@ msgstr "" msgid "Save as" msgstr "" -#: app/views/menu.html:180 +#: app/views/menu.html:187 msgid "Select" msgstr "" @@ -620,7 +628,7 @@ msgstr "" msgid "Show clock" msgstr "" -#: app/views/menu.html:314 +#: app/views/menu.html:321 msgid "Source code" msgstr "" @@ -628,19 +636,19 @@ msgstr "" msgid "Spanish" msgstr "" -#: app/scripts/controllers/menu.js:530 +#: app/scripts/controllers/menu.js:540 msgid "Start build" msgstr "" -#: app/scripts/controllers/menu.js:542 +#: app/scripts/controllers/menu.js:553 msgid "Start upload" msgstr "" -#: app/scripts/controllers/menu.js:518 +#: app/scripts/controllers/menu.js:530 msgid "Start verification" msgstr "" -#: app/scripts/services/tools.js:264 +#: app/scripts/services/tools.js:271 msgid "Synchronize remote files ..." msgstr "" @@ -648,23 +656,23 @@ msgstr "" msgid "Testbench" msgstr "" -#: app/scripts/services/tools.js:905 +#: app/scripts/services/tools.js:928 msgid "The collection {{name}} already exists." msgstr "" -#: app/scripts/controllers/menu.js:497 +#: app/scripts/controllers/menu.js:509 msgid "The current FPGA I/O configuration will be lost. Do you want to change to {{name}} board?" msgstr "" -#: app/scripts/services/tools.js:631 +#: app/scripts/services/tools.js:647 msgid "The toolchain will be removed. Do you want to continue?" msgstr "" -#: app/scripts/services/tools.js:619 +#: app/scripts/services/tools.js:632 msgid "The toolchain will be restored to default. Do you want to continue?" msgstr "" -#: app/scripts/services/tools.js:611 +#: app/scripts/services/tools.js:621 msgid "The toolchain will be updated. This operation requires Internet connection. Do you want to continue?" msgstr "" @@ -676,30 +684,30 @@ msgstr "" msgid "This project is designed for the {{name}} board." msgstr "" -#: app/views/menu.html:229 +#: app/views/menu.html:236 msgid "Toolchain" msgstr "" -#: app/scripts/services/tools.js:818 +#: app/scripts/services/tools.js:834 msgid "Toolchain installed" msgstr "" -#: app/scripts/services/drivers.js:203 -#: app/scripts/services/drivers.js:225 -#: app/scripts/services/tools.js:132 -#: app/scripts/services/tools.js:834 +#: app/scripts/services/drivers.js:202 +#: app/scripts/services/drivers.js:224 +#: app/scripts/services/tools.js:139 +#: app/scripts/services/tools.js:839 msgid "Toolchain not installed" msgstr "" -#: app/scripts/services/tools.js:636 +#: app/scripts/services/tools.js:652 msgid "Toolchain removed" msgstr "" -#: app/scripts/services/tools.js:246 +#: app/scripts/services/tools.js:253 msgid "Toolchain version does not match" msgstr "" -#: app/views/menu.html:216 +#: app/views/menu.html:223 msgid "Tools" msgstr "" @@ -707,7 +715,7 @@ msgstr "" msgid "Undo" msgstr "" -#: app/scripts/services/tools.js:336 +#: app/scripts/services/tools.js:343 msgid "Unknown board" msgstr "" @@ -715,7 +723,7 @@ msgstr "" msgid "Untitled" msgstr "" -#: app/views/menu.html:236 +#: app/views/menu.html:243 msgid "Update" msgstr "" @@ -725,24 +733,24 @@ msgstr "" msgid "Update the block name" msgstr "" -#: app/views/menu.html:225 +#: app/views/menu.html:232 msgid "Upload" msgstr "" -#: app/scripts/controllers/menu.js:543 +#: app/scripts/controllers/menu.js:554 msgid "Upload done" msgstr "" -#: app/scripts/controllers/menu.js:519 +#: app/scripts/controllers/menu.js:531 msgid "Verification done" msgstr "" -#: app/views/menu.html:219 +#: app/views/menu.html:226 msgid "Verify" msgstr "" #: app/scripts/services/utils.js:531 -#: app/views/menu.html:307 +#: app/views/menu.html:314 msgid "Version" msgstr "" @@ -750,11 +758,11 @@ msgstr "" msgid "View" msgstr "" -#: app/views/menu.html:304 +#: app/views/menu.html:311 msgid "View license" msgstr "" -#: app/scripts/services/tools.js:421 +#: app/scripts/services/tools.js:434 msgid "Warnings detected in the design" msgstr "" @@ -784,7 +792,7 @@ msgstr "" msgid "Wrong project format: {{name}}" msgstr "" -#: app/scripts/services/tools.js:450 +#: app/scripts/services/tools.js:463 msgid "Wrong remote hostname {{name}}" msgstr "" @@ -792,7 +800,7 @@ msgstr "" msgid "You can load it as it is or convert it for the {{name}} board." msgstr "" -#: app/scripts/controllers/menu.js:251 +#: app/scripts/controllers/menu.js:257 msgid "Your changes will be lost if you don’t save them" msgstr "" @@ -800,24 +808,24 @@ msgstr "" msgid "back" msgstr "" -#: app/scripts/services/drivers.js:109 +#: app/scripts/services/drivers.js:108 #: app/scripts/services/utils.js:862 msgid "{{app}} is required." msgstr "" -#: app/scripts/controllers/menu.js:430 +#: app/scripts/controllers/menu.js:438 msgid "{{board}} datasheet not defined" msgstr "" -#: app/scripts/controllers/menu.js:420 +#: app/scripts/controllers/menu.js:428 msgid "{{board}} pinout not defined" msgstr "" -#: app/scripts/controllers/menu.js:449 +#: app/scripts/controllers/menu.js:457 msgid "{{board}} rules not defined" msgstr "" -#: app/scripts/controllers/menu.js:201 -#: app/scripts/controllers/menu.js:224 +#: app/scripts/controllers/menu.js:204 +#: app/scripts/controllers/menu.js:228 msgid "{{name}} exported" msgstr "" diff --git a/app/scripts/controllers/design.js b/app/scripts/controllers/design.js index f0c249ae4..74acb407d 100644 --- a/app/scripts/controllers/design.js +++ b/app/scripts/controllers/design.js @@ -4,17 +4,20 @@ angular.module('icestudio') .controller('DesignCtrl', function ($rootScope, $scope, project, + profile, graph, utils, common) { - $scope.common = common; $scope.graph = graph; + $scope.common = common; + $scope.profile = profile; $scope.information = {}; + $scope.topModule = true; // Intialization - graph.createPaper($('#paper')); + graph.createPaper($('.paper')); // Breadcrumbs @@ -40,6 +43,7 @@ angular.module('icestudio') var design = project.get('design'); opt.disabled = false; graph.loadDesign(design, opt); + $scope.topModule = true; } else { var type = graph.breadcrumbs[n-1].type; @@ -66,6 +70,7 @@ angular.module('icestudio') graph.fitContent(); }); } + $scope.topModule = false; $scope.information = args.project.package; utils.rootScopeSafeApply(); }); diff --git a/app/scripts/controllers/menu.js b/app/scripts/controllers/menu.js index d2ec13bb0..8427e411a 100644 --- a/app/scripts/controllers/menu.js +++ b/app/scripts/controllers/menu.js @@ -33,9 +33,12 @@ angular.module('icestudio') $scope.snapshotdir = ''; var zeroProject = true; // New project without changes - var resultAlert = null; + var buildUndoStack = []; + var changedUndoStack = []; + var currentUndoStack = []; + // Window events var win = gui.Window.get(); win.on('close', function() { @@ -130,7 +133,7 @@ angular.module('icestudio') var filepath = project.path; if (filepath) { project.save(filepath); - resetChanged(); + resetChangedStack(); } else { $scope.saveProjectAs(); @@ -141,7 +144,7 @@ angular.module('icestudio') utils.saveDialog('#input-save-project', '.ice', function(filepath) { updateWorkingdir(filepath); project.save(filepath); - resetChanged(); + resetChangedStack(); if (localCallback) { localCallback(); } @@ -206,16 +209,17 @@ angular.module('icestudio') // Update the working directory updateWorkingdir(filepath); }); - }); + }) + .catch(function () {}); } function exportFromBuilder(id, name, ext) { checkGraph() .then(function() { - return graph.resetCodeErrors(); + return tools.buildCode(); }) .then(function() { - return tools.buildCode(); + resetBuildStack(); }) .then(function() { utils.saveDialog('#input-export-' + id, ext, function(filepath) { @@ -226,7 +230,8 @@ angular.module('icestudio') // Update the working directory updateWorkingdir(filepath); }); - }); + }) + .catch(function () {}); } function updateWorkingdir(filepath) { @@ -246,6 +251,7 @@ angular.module('icestudio') alertify.set('confirm', 'labels', { 'ok': gettextCatalog.getString('Close') }); + alertify.set('confirm', 'defaultFocus', 'cancel'); alertify.confirm( utils.bold(gettextCatalog.getString('Do you want to close the application?')) + '
    ' + gettextCatalog.getString('Your changes will be lost if you don’t save them'), @@ -259,6 +265,7 @@ angular.module('icestudio') alertify.set('confirm', 'labels', { 'ok': gettextCatalog.getString('OK') }); + alertify.set('confirm', 'defaultFocus', 'ok'); }, 200); } ); @@ -308,7 +315,8 @@ angular.module('icestudio') checkGraph() .then(function() { graph.selectAll(); - }); + }) + .catch(function () {}); }; function removeSelected() { @@ -450,6 +458,10 @@ angular.module('icestudio') } }; + $scope.toggleFPGAResources = function() { + profile.set('showFPGAResources', !profile.get('showFPGAResources')); + }; + $scope.showCollectionData = function() { var collection = common.selectedCollection; var readme = collection.content.readme; @@ -518,12 +530,10 @@ angular.module('icestudio') var startMessage = gettextCatalog.getString('Start verification'); var endMessage = gettextCatalog.getString('Verification done'); checkGraph() - .then(function() { - return graph.resetCodeErrors(); - }) .then(function() { return tools.verifyCode(startMessage, endMessage); - }); + }) + .catch(function () {}); }; $scope.buildCode = function() { @@ -531,11 +541,12 @@ angular.module('icestudio') var endMessage = gettextCatalog.getString('Build done'); checkGraph() .then(function() { - return graph.resetCodeErrors(); + return tools.buildCode(startMessage, endMessage); }) .then(function() { - return tools.buildCode(startMessage, endMessage); - }); + resetBuildStack(); + }) + .catch(function () {}); }; $scope.uploadCode = function() { @@ -543,11 +554,12 @@ angular.module('icestudio') var endMessage = gettextCatalog.getString('Upload done'); checkGraph() .then(function() { - return graph.resetCodeErrors(); + return tools.uploadCode(startMessage, endMessage); }) .then(function() { - return tools.uploadCode(startMessage, endMessage); - }); + resetBuildStack(); + }) + .catch(function () {}); }; function checkGraph() { @@ -624,23 +636,29 @@ angular.module('icestudio') // Events - var storedUndoStack = []; - var currentUndoStack = []; - $(document).on('stackChanged', function(evt, undoStack) { currentUndoStack = undoStack; - project.changed = JSON.stringify(storedUndoStack) !== JSON.stringify(undoStack); + var undoStackString = JSON.stringify(undoStack); + project.changed = JSON.stringify(changedUndoStack) !== undoStackString; project.updateTitle(); zeroProject = false; + common.hasChangesSinceBuild = JSON.stringify(buildUndoStack) !== undoStackString; + utils.rootScopeSafeApply(); }); - function resetChanged() { - storedUndoStack = currentUndoStack; + function resetChangedStack() { + changedUndoStack = currentUndoStack; project.changed = false; project.updateTitle(); zeroProject = false; } + function resetBuildStack() { + buildUndoStack = currentUndoStack; + common.hasChangesSinceBuild = false; + utils.rootScopeSafeApply(); + } + // Detect prompt var promptShown = false; @@ -751,7 +769,7 @@ angular.module('icestudio') $(document).on('mouseup', function() { mousedown = false; }); - $(document).on('mousedown', '#paper', function() { + $(document).on('mousedown', '.paper', function() { mousedown = true; // Close current menu $scope.status[menu] = false; @@ -760,26 +778,30 @@ angular.module('icestudio') // Show menu with delay $scope.showMenu = function(newMenu) { - menu = newMenu; + $timeout.cancel(timerOpen); $timeout.cancel(timerClose); - if (!mousedown && !graph.addingDraggableBlock && !$scope.status[menu]) { + if (menu !== newMenu) { + $scope.status[menu] = false; + menu = newMenu; + } + if (!mousedown && !graph.addingDraggableBlock && !$scope.status[newMenu]) { timerOpen = $timeout(function() { - $scope.status[menu] = true; + $scope.status[newMenu] = true; }, 300); } }; // Hide menu with delay - $scope.hideMenu = function(menu) { + $scope.hideMenu = function(currentMenu) { $timeout.cancel(timerOpen); timerClose = $timeout(function() { - $scope.status[menu] = false; + $scope.status[currentMenu] = false; }, 900); }; // Fix menu - $scope.fixMenu = function(menu) { - $scope.status[menu] = true; + $scope.fixMenu = function(currentMenu) { + $scope.status[currentMenu] = true; }; // Disable click in submenus diff --git a/app/scripts/graphics/joint.shapes.js b/app/scripts/graphics/joint.shapes.js index ed5dd1482..5f436a06e 100644 --- a/app/scripts/graphics/joint.shapes.js +++ b/app/scripts/graphics/joint.shapes.js @@ -1093,6 +1093,8 @@ joint.shapes.ice.CodeView = joint.shapes.ice.ModelView.extend({ } // Scale font size this.editor.setFontSize(Math.round(aceFontSize * state.zoom)); + // Scale cursor + this.editor.renderer.$cursorLayer.$padding = Math.round(4 * state.zoom); } this.editor.resize(); } @@ -1401,6 +1403,8 @@ joint.shapes.ice.InfoView = joint.shapes.ice.ModelView.extend({ this.$box.find('.ace_text-layer').css('padding', '0px ' + Math.round(4 * state.zoom) + 'px'); // Scale font size this.editor.setFontSize(Math.round(aceFontSize * state.zoom)); + // Scale cursor + this.editor.renderer.$cursorLayer.$padding = Math.round(4 * state.zoom); this.editor.resize(); } diff --git a/app/scripts/services/common.js b/app/scripts/services/common.js index e6550ccc7..675a5e5cc 100644 --- a/app/scripts/services/common.js +++ b/app/scripts/services/common.js @@ -7,6 +7,9 @@ angular.module('icestudio') // Project version this.VERSION = '1.1'; + // Project status + this.hasChangesSinceBuild = false; + // All project dependencies this.allDependencies = {}; @@ -20,6 +23,13 @@ angular.module('icestudio') this.collections = []; this.selectedCollection = null; + // FPGA resources + this.FPGAResources = { + pios: '-', + plbs: '-', + brams: '-' + }; + // OS this.LINUX = Boolean(process.platform.indexOf('linux') > -1); this.WIN32 = Boolean(process.platform.indexOf('win32') > -1); diff --git a/app/scripts/services/drivers.js b/app/scripts/services/drivers.js index f9868cfc5..abd03a68e 100644 --- a/app/scripts/services/drivers.js +++ b/app/scripts/services/drivers.js @@ -102,7 +102,6 @@ angular.module('icestudio') ]; beginLazyProcess(); nodeChildProcess.exec(brewCommands.join('; '), function(error, stdout, stderr) { - // console.log(error, stdout, stderr); if (error) { if ((stderr.indexOf('brew: command not found') !== -1) || (stderr.indexOf('brew: No such file or directory') !== -1)) { diff --git a/app/scripts/services/graph.js b/app/scripts/services/graph.js index 23dbf562e..49bba489c 100644 --- a/app/scripts/services/graph.js +++ b/app/scripts/services/graph.js @@ -573,15 +573,15 @@ angular.module('icestudio') paper.options.enabled = value; if (value) { angular.element('#menu').removeClass('is-disabled'); - angular.element('#paper').removeClass('looks-disabled'); - angular.element('#board').removeClass('looks-disabled'); - angular.element('#banner').addClass('hidden'); + angular.element('.paper').removeClass('looks-disabled'); + angular.element('.board-container').removeClass('looks-disabled'); + angular.element('.banner').addClass('hidden'); } else { angular.element('#menu').addClass('is-disabled'); - angular.element('#paper').addClass('looks-disabled'); - angular.element('#board').addClass('looks-disabled'); - angular.element('#banner').removeClass('hidden'); + angular.element('.paper').addClass('looks-disabled'); + angular.element('.board-container').addClass('looks-disabled'); + angular.element('.banner').removeClass('hidden'); } var cells = graph.getCells(); _.each(cells, function(cell) { diff --git a/app/scripts/services/profile.js b/app/scripts/services/profile.js index c978fd869..b8d71cc42 100644 --- a/app/scripts/services/profile.js +++ b/app/scripts/services/profile.js @@ -10,7 +10,8 @@ angular.module('icestudio') 'remoteHostname': '', 'collection': '', 'board': '', - 'boardRules': true + 'boardRules': true, + 'showFPGAResources': false }; if (common.DARWIN) { @@ -26,7 +27,8 @@ angular.module('icestudio') 'remoteHostname': data.remoteHostname || '', 'collection': data.collection || '', 'board': data.board || '', - 'boardRules': data.boardRules !== false + 'boardRules': data.boardRules !== false, + 'showFPGAResources': data.showFPGAResources || false }; if (common.DARWIN) { self.data['macosDrivers'] = data.macosDrivers || false; diff --git a/app/scripts/services/tools.js b/app/scripts/services/tools.js index 4ac91b8c0..4a412764b 100644 --- a/app/scripts/services/tools.js +++ b/app/scripts/services/tools.js @@ -6,6 +6,7 @@ angular.module('icestudio') profile, collections, drivers, + graph, utils, common, gettextCatalog, @@ -56,11 +57,18 @@ angular.module('icestudio') if (!taskRunning) { taskRunning = true; + if (infoAlert) { + infoAlert.dismiss(false); + } + if (resultAlert) { resultAlert.dismiss(false); } - checkToolchainInstalled() + graph.resetCodeErrors() + .then(function() { + return checkToolchainInstalled(); + }) .then(function() { enableTaskMode(); if (startMessage) { @@ -82,8 +90,7 @@ angular.module('icestudio') } }) .then(function(result) { - var show = startMessage || endMessage; - return processResult(result, sourceCode, show); + return processResult(result, sourceCode); }) .then(function() { // Success @@ -288,7 +295,7 @@ angular.module('icestudio') function executeLocal(commands) { return new Promise(function(resolve) { if (commands[0] === 'upload') { - // Upload command requires drivers setup (Mac OS X) + // Upload command requires drivers setup (Mac OS) drivers.preUpload(function() { _executeLocal(); }); @@ -306,7 +313,7 @@ angular.module('icestudio') { maxBuffer: 5000 * 1024 }, // To avoid buffer overflow function(error, stdout, stderr) { if (commands[0] === 'upload') { - // Upload command requires to restore the drivers (Mac OS X) + // Upload command requires to restore the drivers (Mac OS) drivers.postUpload(); } resolve({ error: error, stdout: stdout, stderr: stderr }); @@ -315,7 +322,7 @@ angular.module('icestudio') }); } - function processResult(result, code, show) { + function processResult(result, code) { result = result || {}; var error = result.error; var stdout = result.stdout; @@ -335,6 +342,12 @@ angular.module('icestudio') else if (stdout.indexOf('Error: unkown board') !== -1) { resultAlert = alertify.error(gettextCatalog.getString('Unknown board'), 30); } + // Yosys error (Mac OS) + else if (stdout.indexOf('Library not loaded:') !== -1 && + stdout.indexOf('libffi') !== -1) { + resultAlert = alertify.error(gettextCatalog.getString('Configuration not completed'), 30); + setupDriversAlert(); + } // - Arachne-pnr errors else if (stdout.indexOf('set_io: too few arguments') !== -1 || stdout.indexOf('fatal error: unknown pin') !== -1) { @@ -461,31 +474,22 @@ angular.module('icestudio') //-- Process output resolve(); - if (stdout && show) { + if (stdout) { // Show used resources in the FPGA - /* - PIOs 0 / 96 - PLBs 0 / 160 - BRAMs 0 / 16 - */ - var match; - var fpgaResources = ''; - var patterns = [ /PIOs.+/g, /PLBs.+/g, /BRAMs.+/g ]; - - for (var p in patterns) { - match = patterns[p].exec(stdout); - fpgaResources += (match && match.length > 0) ? match[0] + '\n' : ''; - } - if (fpgaResources) { - setTimeout(function() { - alertify.message('
    ' + fpgaResources + '
    ', 5); - }, 0); - } + common.FPGAResources.pios = findFPGAResources(/PIOs\s+([0-9]+)\s/g, stdout, common.FPGAResources.pios); + common.FPGAResources.plbs = findFPGAResources(/PLBs\s+([0-9]+)\s/g, stdout, common.FPGAResources.plbs); + common.FPGAResources.brams = findFPGAResources(/BRAMs\s+([0-9]+)\s/g, stdout, common.FPGAResources.brams); + utils.rootScopeSafeApply(); } } }); } + function findFPGAResources(pattern, output, previousValue) { + var match = pattern.exec(output); + return (match && match[1]) ? match[1] : previousValue; + } + function mapCodeModules(code) { var codelines = code.split('\n'); var match, module = { params: [] }, modules = []; @@ -828,18 +832,7 @@ angular.module('icestudio') updateProgress(gettextCatalog.getString('Installation completed'), 100); closeToolchainAlert(); alertify.success(gettextCatalog.getString('Toolchain installed')); - var message = gettextCatalog.getString('Click here to setup the drivers'); - if (!infoAlert) { - setTimeout(function() { - infoAlert = alertify.message(message, 30); - infoAlert.callback = function(isClicked) { - infoAlert = null; - if (isClicked) { - $rootScope.$broadcast('enableDrivers'); - } - }; - }, 1000); - } + setupDriversAlert(); } else { closeToolchainAlert(); @@ -850,6 +843,24 @@ angular.module('icestudio') }); } + function setupDriversAlert() { + var message = gettextCatalog.getString('Click here to setup the drivers'); + if (!infoAlert) { + setTimeout(function() { + infoAlert = alertify.message(message, 30); + infoAlert.callback = function(isClicked) { + infoAlert = null; + if (isClicked) { + if (resultAlert) { + resultAlert.dismiss(false); + } + $rootScope.$broadcast('enableDrivers'); + } + }; + }, 1000); + } + } + function updateProgress(message, value) { angular.element('#progress-message') .text(message); diff --git a/app/styles/design.css b/app/styles/design.css index c18dd7016..d02ed0b2f 100644 --- a/app/styles/design.css +++ b/app/styles/design.css @@ -18,13 +18,14 @@ position: absolute; bottom: 0; width: 100%; - min-height: 45px; - padding: 4px; + min-height: 47px; border-top: 1px solid #d5dadd; z-index: 1501; } .breadcrumbs-container { + display: flex; + align-items: center; flex: 1; } @@ -34,6 +35,14 @@ padding: 0 15px; } +.fpga-resources { + color: #777; +} + +.fpga-resources span { + margin-right: 20px; +} + .breadcrumb { margin: 0; background-color: #f5f6f7; diff --git a/app/styles/main.css b/app/styles/main.css index a322eb26f..6f050f2dc 100644 --- a/app/styles/main.css +++ b/app/styles/main.css @@ -70,6 +70,24 @@ body { animation-duration: 10ms; } +.ajs-header { + display: none; +} + +.ajs-footer { + background: white !important; + border-top: none !important; +} + + +input:focus { + outline: #ccc solid 1px; +} + +button:focus { + outline: #ccc solid 2px; +} + ::selection { color: #fff; background: #3593d2; diff --git a/app/styles/menu.css b/app/styles/menu.css index 3f834a4c4..15e5c6f8e 100644 --- a/app/styles/menu.css +++ b/app/styles/menu.css @@ -110,3 +110,28 @@ .navbar-default .navbar-nav>li>a { color: #333 !important; } + +.marker { + float: left; + width: 8px; + height: 8px; + margin-top: 6px; + margin-right: 12px; + border-radius: 1px; +} +.marker-yellow { + background-color: #f6f688; +} +.marker-orange { + background-color: #f8e5a0; +} +.marker-blue { + background-color: #c0dfeb; +} +.marker-gray { + background-color: #ddd; +} + +.disabled > a { + cursor: default !important; +} diff --git a/app/views/design.html b/app/views/design.html index ff5309b64..7f268e4a9 100644 --- a/app/views/design.html +++ b/app/views/design.html @@ -1,11 +1,11 @@
    -