minimo di n numeri con Verilog o VHDL

K

kalyansumankv

Guest
C'è un modo che io possa trovare il minimo di N-numeri con il minimo sforzo usando Verilog e VHDL

 
Si potrebbe fare
MA
[1] è il N fisso o variabile?
[2] Qual è la lunghezza in bit dei numeri?
[3] Come sono rappresentati? Con o senza segno?
[4] C'è eventuali vincoli sul numero di cicli di clock necessari per calcolare il minimo?
[5], sono i numeri memorizzati in una memoria (file di registro, o BlockRAM) o sono introdotti in modo sequenziale fino al midollo?

con i migliori saluti,
Mostafa M.Amer

 
[1] è il N fisso o variabile?
- N è fisso diciamo 64

[2] Qual è la lunghezza in bit dei numeri?
- Si tratta di un 8-bit Value

[3] Come sono rappresentati? Con o senza segno?
- Si tratta di un numero senza segno

[4] C'è eventuali vincoli sul numero di cicli di clock necessari per calcolare il minimo?
- Numero minimo di cicli[5], sono i numeri memorizzati in una memoria (file di registro, o BlockRAM) o sono introdotti in modo sequenziale fino al midollo?
- No, non sono memorizzati in una memoria

 
HI,
è al di sotto di un codice VHDL che accetta un flusso di numeri a 8 bit senza segno e la produzione al minimo del flusso introdotto.

Esso contiene un registro (min) per contenere il valore minimo.Questo registro è inizializzato al valore massimo possibile, 255, quando l'ingresso è ENA min attiva è confrontato con il numero introdotto (NO_IN) e con un 8-bit di confronto LT decide whther per memorizzare NO_IN in min o mantenere il valore precedente di min intatta.

il valore di min è sempre banditi @ MIN_OUT
ogni confronta avrà un solo ciclo di clock.

Codice:-------------------------------------------------- --------------------------------

- Ingegnere del suono: ing.
Mostafa M. Amer

--

- Data di creazione: 10:28:31 11/17/2008

- Nome Design: minimo di N 8-bit unsigned numeri

- Nome modulo: minimum_N - comportamentale

-------------------------------------------------- --------------------------------

library IEEE;

uso IEEE.std_logic_1164.ali;

uso IEEE.STD_LOGIC_ARITH.ALL;

uso IEEE.STD_LOGIC_UNSIGNED.ALL;entità minimum_N è

Port (NO_IN: in std_logic_vector (7 downto 0); - flusso di input

ENA: in std_logic; - Attiva

CLK: in std_logic; - Clock

MIN_OUT: out std_logic_vector (7 downto 0 ));-- Il minimo del flusso

fine minimum_N;architettura comportamentale di minimum_N è

min segnale: std_logic_vector (7 downto 0): = "11111111"; - min iniziale per il numero massimo possibile

iniziarecomparatore:

process (CLK)

iniziare

if (ENA = '1 ') then

if (CLK'event e CLK = '1 ') then

if (NO_IN <min) then

min <= NO_IN;

altro

min <= min;

end if;

end if;

altro

min <= min;

end if;

end process;MIN_OUT <= min;end Behavioral;
 
Cari Mostafa,

Grazie per il codice,
al meglio della mia comprensione,
il codice da Lei forniti potranno prendere la N-numero di cicli,
per produrre il minimo di N-Numeri ...

Comunque mi si avvicinò con un design che vorrà molto meno di cicli N
per calcolare un minimo di N - i numeri.,
Questo può essere fatto con una piccola elaborazione parallela ...

 
Cari kalyansumankv,

Lei ha detto che i numeri non vengono salvati nella memoria => Essi sono introdotti nel core sequenza => I presume che sarà introdotto un numero ad ogni ciclo => Presentazione dei numeri avrà cicli N => Se ricevendo il minimo ha richiesto meno di N cicli (a proposito, sono molto interessato a vedere il vostro disegno, la quota di PLZ) ancora l'introduzione di fattori di produzione avrà N => Ho concluso che non vi sarà alcun bisogno di hardware aggiuntivo, se non ci sarà un guadagno di velocità.

Ho ragione?È così che ho pensato abot it: $: $, ma potrei sbagliarmi

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Sorriso" border="0" />
Con i migliori saluti,
Mostafa M. Amer

 
Cari Mustafa,

Yeah ho detto che le cifre non vengono memorizzati in una memoria,
ll ma sarò con N-numero di moduli che viene eseguito in paralle (come indicato in figura) e l
Ho bisogno di trovare il minimo di tali numeri ..

E il mio approccio seguito è il seguente,
dicono che il N è 64,
dividere i numeri come un gruppo di 8 ciascuno e di trovare il minimo di essi,
che ha bisogno di 8 cicli,
e dopo 8 cicli si ll essere lasciati con 8 numeri riportati e
ripetere il processo aboce per trovare il minimo di THT 8 numeri.
su un complesso si ll essere richiesto con 8 8 cicli per trovare il minimo dei 64 numeri
Ci dispiace, ma è necessario il login per visitare questo allegato

 
Hmmm
in tal caso, u può considerare l'altro estremo, non usare la condivisione delle risorse a tutti e costruire un albero di confronto con (log2 N) livelli e (N-1) a 8-bit comparatori LT.un circuito di pura combinatoria.e se più N-set di numeri vengono applicate è possibile utilizzare l'architettura pipeline.

Con i migliori saluti,
Mostafa M. Amer

 
Credo possa essere fatto,
ma ho bisogno di fare un disegno synchrous,
così l'ho fatto in questo modo,

Comunque grazie mille per la replyy

 
ur wellcome

PS: l'intero albero può essere sincronizzato, ma che ti influenzano la velocità generale di clock, u può prendere in considerazione l'architettura pipeline
MA
Se la soluzione ur funziona bene, tenere premuto per esso

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Sorriso" border="0" />
 
Yeah il mio progetto funziona troppo bene,
thanks a lot for your help ...

 
La complessità del problema è (confronta ritardo) * log2 (N)
vi sono fondamentalmente l'esecuzione di un albero binario (quindi log2 (N)), di confrontare le operazioni (per un costo "confronta ogni ritardo")

Non ho idea di come gran parte della logica che si può comprimere in un unico ciclo di clock.
ma fare una nuvola combo che fa questo, sintetizzano e guardare i vostri molle - poi decidere dove e come molti registri di utilizzare, al fine di pipeline.Che è naturalmente tenuto conto del fatto che si desidera throughput elevato.
Se non basta usare una pista ciclabile più sulla logica.

ND.

http://asicdigitaldesign.wordpress.com/

 
Cari Nir Dahan,

Grazie per il consiglio di andare per una nube Combo,
i ll provare la stessa ....

Saluti
Kalyan Suman

 

Welcome to EDABoard.com

Sponsor

Back
Top