Code Monkey home page Code Monkey logo

open-fpga-verilog-tutorial's Introduction

Digital Design for FPGAs, with free tools

Learn to design synthesizable digital systems in FPGAs using ONLY free tools #verilog #icestorm #lattice #Linux

Wiki tutorial

open-fpga-verilog-tutorial's People

Contributors

adityasaini70 avatar dcuartielles avatar imuguruza avatar jesus89 avatar mattvenn avatar obijuan avatar rcoeurjoly avatar roman3017 avatar tacixat avatar testato avatar zioguillo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

open-fpga-verilog-tutorial's Issues

not includen .vh file in archive .v

Processing icestick (platform: lattice_ice40; board: icestick)

Verbose mode can be enabled via -v, --verbose option
yosys -p "synth_ice40 -blif .pioenvs\icestick\hardware.blif" -q src\countsec.v
ERROR: Can't open include file `divider.vh'!
*** [.pioenvs\icestick\hardware.blif] Error 1
================================= [ERROR] Took 1.72 seconds =================================
The terminal process terminated with exit code: 1

Terminal will be reused by tasks, press any key to close it.

Problema-Duda-Capítulo 13: Inicializando registros

Hola

He encontrado lo que creo que es un fallo de coherencia entre el esquema del componente y su programación en verilog.

En el esquema se coge dout e inmediatamente se niega, siendo tanto din como data negada.

Mientras que en el código de verilog se hace correctamente, asignando dout a data antes de negación y din a su negación.

Creo que la puerta not debería estar junto antes de la entrada de din para no afectar a data.

Adjunto imagen.

problema_salida_negada

¡Un saludo!

Tutorial 4 source does not compile

Running arachne on counter.v from tutorial 4 (the 26 bit counter) results in a fatal error due to missing set_io constraints. The counter.v file contains:

module counter(input clk, output [25:0] data);

while the .pcf contains only pin destinations for the first four bits:

set_io data[25] 96
set_io data[24] 97
set_io data[23] 98
set_io data[22] 99
set_io clk 21

Leading to arachne throwing up a fatal error: Missing 22 set_io constraints.

JK flip-flop with Reset (verilog)

Hi all,
I am trying to add a Reset input to a JK flip-flop in verilog. The JK itself works properly, however when I've added the Reset input an error appears saying "errors detected in design"
I am new in verilog. Please find below the code that I am using
reg q = INI;
if (R == 1)
q <= 1'b0;
else
always @(posedge clk)
if (J == 0 && K == 1 )
q <= 1'b0;
else if (J == 1 && K == 1)
q <= ~q;
else if (J == 1 && K == 0)
q <= 1'b1;

Can you help me?

Thank you.

Olatz

Opción -o al final del comando en compilación con iverilog da problemas

Buenas,

Creo este "issue" para comunicar el hecho de que en los makefiles presentes en el tutorial de ICESTICK, la siguiente línea:

#-- Compilar
	iverilog $^ -o $(NAME)_tb.out

hace saltar en mi macOS el error "-o: No such file or directory". Cambiando el comando de la siguiente manera:

#-- Compilar
	iverilog -o $(NAME)_tb.out $^

el error desaparece. No sé si crear este "issue" es la manera correcta de comunicar este suceso (que reconozco que igual no es un error porque yo soy un principiante en el uso de compiladores desde la línea de comandos). En caso de que no lo sea, disculpas.

Por otro lado, estaría contento de crear "merge requests" cambiando los "makefile" donde me encuentro el error, pero no lo he hecho nunca y de nuevo no sé si es la forma correcta de proceder.

Un saludo,
Nico

mixing clk edges in T27-Memoria ROM generica

Hi Obijuan,

first: compliments for your Tutorial. Best Tutorial on Verilog with very nice examples.

I have a question on T27-Memoria ROM generica.
In genrom.v you use posedge clk to read ROM
In genromleds.v you use negedge clk to advance addr.

Why do you mix posedge and negedge clk in one project.
In T22-Reglas de diseno sincrono you say, that it is not a good Idea to use both edgelevel detection.

Is it wrong to use only posedge on genrom.v and genromleds.v?

Greetings
Micha

Move wiki to `docs` folder

Github now allow to use a repository docs folder as source for the project Github pages. This would allow too to also have the pages prepared to generate a Gitbook book, so the tutorial could be stored as a PDF file.

Herramienta(s) utilizadas para la elaboración de las figuras

Hola @Obijuan :

He estado echando un vistazo al tutorial y me ha llamado la atención la calidad de las figuras, como por ejemplo esta. He tratado de buscar alguna referencia a la herramienta utilizada para su elaboración, pero no he encontrado ninguna en la wiki ni en la web.

Por ello, quisiera preguntarlo y al mismo tiempo sugerir que se añada (de forma más explícita, si ya está y no lo he visto). Me interesa especialmente (además de la licencia) saber cuánta intervención 'humana' ha sido requerida para pulirlas. ¿Se han añadido todos los elementos a mano? ¿Se he generado un boceto automáticamente a partir de las fuentes y después se ha completado? ¿Se ha realizado todo automáticamente?

Un saludo

'make sint' fails

Sorry this is in English.

This is what happens when I try 'make sint' in T01-setbit:
[~/open-fpga-verilog-tutorial/tutorial/ICESTICK/T01-setbit]$ make sint

-- Sintesis

yosys -p "synth_ice40 -blif setbit.blif" setbit.v

/----------------------------------------------------------------------------
| |
| yosys -- Yosys Open SYnthesis Suite |
| |
| Copyright (C) 2012 - 2015 Clifford Wolf [email protected] |
| |
| Permission to use, copy, modify, and/or distribute this software for any |
| purpose with or without fee is hereby granted, provided that the above |
| copyright notice and this permission notice appear in all copies. |
| |
| THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
| WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
| MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
| ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
| WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
| ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
| OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
| |
----------------------------------------------------------------------------/

Yosys 0.5 (git sha1 c3c9fbf, gcc 5.2.1-15 -O2 -fstack-protector-strong -fPIC -Os)

-- Parsing setbit.v' using frontendverilog' --

  1. Executing Verilog-2005 frontend.
    Parsing Verilog input from setbit.v' to AST representation. Generating RTLIL representation for module\setbit'.
    Successfully finished Verilog frontend.

-- Running command `synth_ice40 -blif setbit.blif' --
ERROR: No such command: synth_ice40 (type 'help' for a command overview)
Makefile:41: recipe for target 'setbit.bin' failed
make: *** [setbit.bin] Error 1

Looking through the documentation for yosys, it appears that there is a 'synth' command and a 'synth_xilinx' but no 'synth_ice40'. Did I miss something?

Thanks,

Matt

Having problems connecting Icezum Alhambra to Mac OS

I am having problems by charging programs on de Icezum Alhambra. It seems like something is not correct with the drivers because every time I try to charge a code apears: "Icezum Alhambra not conected". Using Mac OS Mojave.

Best regards

¿Se infieren registros?

Hola. He visto en varios capítulos que en los if hay que poner else y cubrir todos los casos en los case para tener un circuito combinacional y que si no es así el sintetizador puede inferir registros. Creo que intuitivamente entiendo a qué se puede referir pero no estoy seguro y quizá otra persona no lo entienda. Creo que añadir esa explicación y las consecuencias que tiene mejoraría el tutorial. Al menos se comenta esto en los capítulos 11 y 12. Gracias.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.