diff options
| author | fabian-mv <fabian@cluster451.org> | 2022-10-25 10:50:00 -0600 |
|---|---|---|
| committer | fabian-mv <fabian@cluster451.org> | 2022-10-25 10:50:00 -0600 |
| commit | 37e54deaca8dc72efcd862a40c671c6fba508341 (patch) | |
| tree | f297bd54265c4bbfc9e816c2e93c69a72e34da4a /rtl/core/mul | |
| parent | 516fea5c2252f172b18ac9cf2640ea486c71e985 (diff) | |
mul: define api del multiplicador
Diffstat (limited to 'rtl/core/mul')
| -rw-r--r-- | rtl/core/mul/mul.sv | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/rtl/core/mul/mul.sv b/rtl/core/mul/mul.sv index 40a48c4..0d7f4bb 100644 --- a/rtl/core/mul/mul.sv +++ b/rtl/core/mul/mul.sv @@ -8,22 +8,23 @@ module core_mul input logic c_size, // si es 1, c es de 2 words, si es 0, c es de 1 word clk, // clock, ya que es una máquina de estados add // si es 1, c se suma. si es 0, no se suma - sig // si la suma es signed o unisgned + sig // es 1 si a y b son signed, es 0 si son unisgned q_size // si es 1, q es de 2 words, si es 0, q es de 1 word + start // si es 1, se inicia la multiplicacion output word q_hi, // parte más significa tiva del resultado output word q_lo, // parte menos significativa del resultado output logic z, n, // no hay C ni V, ya que se dejan unaffected + q_sig // si es 1, 1 es signed, es 0 si es unsigned rdy // si es 1, la multiplicación está lista - //! TODO: - //! hay que definit un protocolo de cómo se usa este módulo - //! Por ejemplo: - //! se levanta rdy en algún momento, pero qué pasa al ciclo siguiente? se mantiene o se baja? qué sucede? - //! es capaz que se soporte que se haga un ready y un start? esto se define en este módulo, para que contro lo use - //! qué pasa si la salida es signed? - //! es necesario que las señales de entrada se mantengan constantes durante los ciclos? + //*Se asume lo siguiente: + // - Las señales de entrada son constantes desde el instante en el que start es 1 hasta que rdy sea 1 + // - El valor de start puede cambiar durante la multiplicación, pero va a ser ignorado hasta que rdy sea 1 + // - El valor de q es UNPREDICTABLE hasta que rdy sea 1 + // - Las condiciones para iniciar una multiplicación son que rdy sea 1 y start sea 1 + // - rdy solo no es 1 mientras la multiplicación se está realizando ); //! TODO: |
