Paso 3: Conexión de módulos en cincel
El tutorial de cincel que descargaste antes tiene algún código de ejemplo con problemas y soluciones. Si algo jugar con ejemplos y modificarlos siga la sección completar los tutoriales en el archivo Léame de la repo que descargó.
Las imágenes de arriba muestran uno de los ejemplos en el Repo de cincel. Un multiplexor o un mux para abreviar se utiliza para elegir entre dos entradas. La primera imagen muestra una implementación de un multiplexor con dos entradas, in0 y 1. Son ambos un poco de tamaño. El sel poco entonces elige entre in0 y 1. Si sel = 0 entonces hacia fuera = in0, si sel = 1 entonces out = in1. Después de crear este módulo podemos usarlo en otro módulo a elegir entre 4 bits. Para hacer esto necesitamos dos bits de selección para elegir a cuál de las cuatro entradas. Además la escritura in0, in1, in2, in3 es desordenado. Así que por el contrario utilizamos un cincel Vec decir que queremos 4 entradas. Esto es similar a un array o lista y podemos acceder a que algo que queremos. Ahora creamos tres módulos Mux2 y conectar a nuestras entradas y salidas. Esto termina el mux de 4 bits.
Operadores de cincel
Usted puede haber notado es la mezcla de la "="y": =" en los ejemplos. Significan dos cosas diferentes. El "=" es scala. En el ejemplo anterior los módulos se crean como objetos de scala. El ": =" se utiliza para conectar 'cables'. Este es el operador de cincel diciendo que el valor de algo debe conectarse a la salida de otra cosa. Hay algunos más, como en if declaraciones donde "==" se utiliza normalmente para comparar dos objetos de la scala donde como "===" se utiliza para comparar los valores de dos 'cables' en cincel. Ver tutorial.pdf cincel para más detalles.