esta es mi primera vez haciendo curso de esto pero espero que quede bien
Sueño
bueno supongamos que un día te levantas y dices ‘hmm, quiero hacer un procesador’ gran error, no puedes comenzar con eso, bueno, si ya tienes los conocimientos previos adelante, pero mucha gente del foro probablemente ni sabe de diseño del hardware
Problema
Hacer pines a mano, conectarlo todo, dibujar los circuitos impresos y de más es muy tedioso, pero hay una solución
Solución
Hay un lenguaje de programación llamado Verilog que no es exactamente uno, si no un lenguaje de descripción de hardware, esto quiere decir que es un lenguaje de descripcion de una maquina o como debe comportarse un circuito electronico
Verilog
bueno, empezemos, en verilog a diferencia de otros lenguajes como Java o C++ este no es secuencial, claro, hay ciertas excepciones o puedes simularlo pero no es secuencial, se basa en eventos de pulsos electricos, en conexiones y registros
coneptos basicos
reg
un reg es un registro, no necesariamente de memoria o contenedor, este almacena un valor y requiere una longitud, su sintaxis es
reg [longitud:0] nombre;
por ejemplo para indicar un registro de 8 bits se usa
reg [7:0] miRegistro;
por que 7? por que en verilog se calcula desde el bit 0 al 7 que son exactamente 8 bits, tambien puede optar por no poner una longitud y dejarlo como un registro binario
reg miBinario;
wire
un wire es una conexion o comparador entre uno o varios registros se declara de la siguiente forma
wire [longitud:0] nombre;
al igual que los reg pueden ser de 1 bit por ejemplo
wire miBInarioConectado;
operadores
como en C/C++ se pueden usar operadores
assign
asigna un valor a un wire con una expresion su sintaxis es
assign nombre = expr...;
repaso
si alguien entendio con estos conceptos pueden decirme que hace este codigo
reg a = 0;
reg b = 1;
wire c;
assign c = a | b;
los leo en los comentarios!