Esercizio reti combinatorie, dubbi
Estrapolo la parte incriminata relativa ad un esercizio sulle reti combinatorie. La soluzione non necessita di minimizzazione e deve essere ottenuta usando porte logiche elementari e componenti standard(commutatori, comparatori, ALU).
L'esercizio chiede di sintetizzare una rete che ha due ingressi A e B e un'uscita Z, la cui specifica e' Z = il minore tra A e B. Sia gli ingressi che le uscite sono parole a 32 bit.
La soluzione che ho utilizzato consiste nell'impiegare una ALU che si occupi di calcolare la differenza tra A e B ed effettuare un check sul segno il cui risultato viene utilizzato come ingresso del bit di controllo di un commutatore che ha come ingressi A e B. A seconda, quindi, del risultato della sottrazione si sceglie A o B (se il segno della differenza e' negativo allora A < B altrimenti B < A). Scusate la scarsa qualita', ma per render l'idea, questo e' come l'ho schematizzata:

la specifica del bit di segno e' 0 se il segno e' negativo e 1 se il segno e' positivo. Quindi quando il segno della differenza e' 0 viene selezionato il primo input del commutatore, e cioe' A, altrimenti B.
Il dubbio riguarda la correttezza effettiva nell'utilizzo delle componenti. L'idea mi sembra funzionare ma non sono sicuro sull'effettiva possibilita' implementativa. Ad esempio, il risultato della differenza non viene utilizzato, ma per poter verificare il segno e' necessario operarla. E' possibile troncare l'output della sottrazione sulla ALU, e utilizzare solo quello del segno? Capisco che possano sembrare domande banali, ma sto facendo una gran fatica nella ricerca di informazioni (e il testo non aiuta granche') perche' i risultati online piu' indicizzati riguardano per la maggior parte esempi ed esercizi relativi a componenti standard classici (decoder, multiplexer ecc..)
L'esercizio chiede di sintetizzare una rete che ha due ingressi A e B e un'uscita Z, la cui specifica e' Z = il minore tra A e B. Sia gli ingressi che le uscite sono parole a 32 bit.
La soluzione che ho utilizzato consiste nell'impiegare una ALU che si occupi di calcolare la differenza tra A e B ed effettuare un check sul segno il cui risultato viene utilizzato come ingresso del bit di controllo di un commutatore che ha come ingressi A e B. A seconda, quindi, del risultato della sottrazione si sceglie A o B (se il segno della differenza e' negativo allora A < B altrimenti B < A). Scusate la scarsa qualita', ma per render l'idea, questo e' come l'ho schematizzata:

la specifica del bit di segno e' 0 se il segno e' negativo e 1 se il segno e' positivo. Quindi quando il segno della differenza e' 0 viene selezionato il primo input del commutatore, e cioe' A, altrimenti B.
Il dubbio riguarda la correttezza effettiva nell'utilizzo delle componenti. L'idea mi sembra funzionare ma non sono sicuro sull'effettiva possibilita' implementativa. Ad esempio, il risultato della differenza non viene utilizzato, ma per poter verificare il segno e' necessario operarla. E' possibile troncare l'output della sottrazione sulla ALU, e utilizzare solo quello del segno? Capisco che possano sembrare domande banali, ma sto facendo una gran fatica nella ricerca di informazioni (e il testo non aiuta granche') perche' i risultati online piu' indicizzati riguardano per la maggior parte esempi ed esercizi relativi a componenti standard classici (decoder, multiplexer ecc..)
Risposte
mi sa che per verificare il flag di segno la differenza la devi eseguire in ogni caso
Si l'ho scritto anch'io, il "troncare" forse e' stato frainteso, quello che intendevo e' ignorare l'output primario e utilizzare solo quello secondario relativo al segno
"ebrunaway":
Si l'ho scritto anch'io, il "troncare" forse e' stato frainteso, quello che intendevo e' ignorare l'output primario e utilizzare solo quello secondario relativo al segno
sì secondo me lo puoi fare