Come costruire un circuito efficiente in termini di area che conta il numero di bit impostati nell'input a 15 bit utilizzando LUT a 4 ingressi (tabelle di ricerca). L'output è ovviamente a 4 bit (conta 0-15). Alcuni affermano che è possibile fare usando 9 LUT.Circuito che conta il numero di bit impostati nell'ingresso 15-bit
risposta
Posso farlo in 10. È un primo contatore (4 tavoli), quindi un sommatore 2 stage con carry (3 e 3 tavoli).
Sospetto che ci sia un modo per fare meglio perché non ho usato ogni LUT completamente, ma a volte un design semplice vale il costo aggiuntivo. Ho provato altri approcci e ancora necessario 10.
Buona fortuna per i compiti. (:
Bene, ti inizierò. Il tuo primo strato di tabelle di ricerca sarà simile a questa:
0 0 0 0 = 00
0 0 0 1 = 01
0 0 1 0 = 01
0 0 1 1 = 10
0 1 0 0 = 01
0 1 0 1 = 10
0 1 1 0 = 10
0 1 1 1 = 11
1 0 0 0 = 01
1 0 0 1 = 10
1 0 1 0 = 10
1 0 1 1 = 11
1 1 0 0 = 10
1 1 0 1 = 11
1 1 1 0 = 11
1 1 1 1 = 00
Diffusione quattro di loro attraverso il vostro ingresso di quindici bit, prendere le uscite e farli passare attraverso due nuove tabelle di ricerca che assomigliano a questo:
0 0 0 0 = 000
0 0 0 1 = 001
0 0 1 0 = 010
0 0 1 1 = 011
0 1 0 0 = 001
0 1 0 1 = 010
0 1 1 0 = 011
0 1 1 1 = 100
1 0 0 0 = 010
1 0 0 1 = 011
1 0 1 0 = 100
1 0 1 1 = 101
1 1 0 0 = 011
1 1 0 1 = 100
1 1 1 0 = 101
1 1 1 1 = 110
... e così via. Ovviamente, dovrai risolvere il problema di tutti gli zeri e tutti quelli che producono lo stesso output nel primo strato.
E potrei sbagliarmi completamente.
Ecco un codice C che conta il numero di bit: C code to count the number of '1' bits. Dovrai convertire questo nel tuo hardware.
Le domande hardware di solito non ottengono grandi risposte su questo forum – samoz
Soprattutto quando suonano come domande per i compiti –
Non è una domanda per i compiti a casa. Devo sintetizzare questo circuito nel modo ottimizzato, ma lo strumento di sintesi FPGA usa 20 LUT per questo, può essere fatto meglio di questo – OutputLogic