Witam
Jako iż dopiero zaczynam zabawę z tym językiem pojawił mi się problem potrzebuję zrobić nietypowy multiplekser gdyż - ma on być 16bitowy przy czym chcę sprawić aby przy wyborze SELECT raz mi dane przechodziły z daneARM do danePAMIECI, a przy niewybranym SELECT kierunek odwrotny czyli z danePAMIECI do daneFPGA
czyli najprościej:
SELECT=1 to danePAMIECI -> daneFPGA
SELECT=0 to daneARM -> danePAMIECI
zamieszczam tutaj mój program a raczej to co wyszło z prób jego napisania:)
jak pisałem dopiero zaczynam zabawę i myślałem, że da się to zrobić na zasadzie nietypowego muxa ale jak widać nie jest to takie proste wyskakuje mi bowiem tam ERROR:
Illegal redeclaration of inout 'danePAMIECI' as a reg
próbowałem zmienić deklarację
reg [0:15] danePAMIECI; na wire [0:15] danePAMIECI;
ale wtedy występuje mi nie dość ze ten sam problem z deklaracja to jeszcze dochodzą następne:
-Illegal left hand side of blocking assignment
lub jego odpowiednik gdy próbowałem zamieniać na nieblokujące:
-Illegal left hand side of nonblocking assignment
Nie wiem dlaczego ten wspaniały program nie rozumie moich intencji
Byłbym wdzięczny za pomoc w rozwiązaniu tego problemu gdyż domyślam się iż dla kogoś wprawionego to błahostka
Jako iż dopiero zaczynam zabawę z tym językiem pojawił mi się problem potrzebuję zrobić nietypowy multiplekser gdyż - ma on być 16bitowy przy czym chcę sprawić aby przy wyborze SELECT raz mi dane przechodziły z daneARM do danePAMIECI, a przy niewybranym SELECT kierunek odwrotny czyli z danePAMIECI do daneFPGA
czyli najprościej:
SELECT=1 to danePAMIECI -> daneFPGA
SELECT=0 to daneARM -> danePAMIECI
zamieszczam tutaj mój program a raczej to co wyszło z prób jego napisania:)
Cytat:module mux_inout(daneFPGA, daneARM, danePAMIECI, select);
output [0:15] daneFPGA;
input [0:15] daneARM;
inout [0:15] danePAMIECI;
input select;
reg [0:15] daneFPGA;
reg [0:15] danePAMIECI;
always @(select or danePAMIECI or daneARM)
if(select)
daneFPGA = danePAMIECI;
else
danePAMIECI = daneARM;
endmodule
jak pisałem dopiero zaczynam zabawę i myślałem, że da się to zrobić na zasadzie nietypowego muxa ale jak widać nie jest to takie proste wyskakuje mi bowiem tam ERROR:
Illegal redeclaration of inout 'danePAMIECI' as a reg
próbowałem zmienić deklarację
reg [0:15] danePAMIECI; na wire [0:15] danePAMIECI;
ale wtedy występuje mi nie dość ze ten sam problem z deklaracja to jeszcze dochodzą następne:
-Illegal left hand side of blocking assignment
lub jego odpowiednik gdy próbowałem zamieniać na nieblokujące:
-Illegal left hand side of nonblocking assignment
Nie wiem dlaczego ten wspaniały program nie rozumie moich intencji
Byłbym wdzięczny za pomoc w rozwiązaniu tego problemu gdyż domyślam się iż dla kogoś wprawionego to błahostka