S
simon111
Guest
hi εμπειρογνώμονες:
Είμαι νέος σε FPGA,
Είμαι χρησιμοποιώντας Xilinx spartan3e και θέλετε κάποια μεταφορά δεδομένων με κυπαρίσσια fx2 μέσω σκλάβος FIFO interface.Δουλεύω με ise,
i γράψετε ένα κύκλωμα λογική, μπορώ να συνθέτω επιτυχώς, αλλά δεν μπορώ να το μεταφράσετε με επιτυχία
Ακολουθεί μου κωδικός:
Κωδικός:/ / Ep2 - out, wirte την εικόνα των δεδομένων,
/ / Ep6 - το, διαβάστε την εικόνα των δεδομένων
ενότητα slave_fifo_syn (
sys_clk,
sys_rst_n,
usb_fifo_clk,
usb_slwr,
usb_slrd,
usb_sloe,
usb_fifo,
usb_ad,
usb_flaga,
usb_flagb,
usb_flagc,
usb_pktend,
usb_slcs
)?
εισροών sys_clk? / / σύστημα CLK
εισροών sys_rst_n? / / επαναφορά συστήματος, ενεργή χαμηλά
εισροών usb_flaga? / / flaga είναι άδειο ep2 σημαία, ενεργό χαμηλό
εισροών usb_flagb? / / flagb είναι η πλήρης ep6 σημαία, ενεργό χαμηλό
εισροών usb_flagc? / / χρησιμοποιούνται
εξόδου usb_fifo_clk? / / CLK για σκλάβα FIFO
εξόδου usb_slwr? / / slave FIFO γράψει, ενεργό χαμηλό
εξόδου usb_slrd? / / slave FIFO διαβάσετε, ενεργό χαμηλό
εξόδου usb_sloe? / / slave FIFO εξόδου επιτρέψει, ενεργό χαμηλό
εξόδου usb_slcs? / / slave FIFO πλινθίο επιλέξετε, ενεργό χαμηλό
inout [7:0] usb_fifo? / / slave FIFO δεδομένα λεωφορείο, δικοινοτική κατεύθυνση
εξόδου [1:0] usb_ad? / / ΕΚ FIFO διεύθυνση, 0 - ep2 2 - dp6
εξόδου usb_pktend? / πακέτα / τέλος, την ενεργό χαμηλό/ / Κωδικός αρχίσει εδώ
/ / Δημιουργεί το usb FIFO CLK από DCM
dcm_66_33 dcm_inst (
. CLKIN_IN (sys_clk)
,. RST_IN (! Sys_rst_n)
,. CLKFX_OUT (usb_fifo_clk)
,. CLKIN_IBUFG_OUT ()
,. CLK0_OUT ()
,. LOCKED_OUT ()
)?
reg [8:0] x?
reg [8:0] y?
reg [17:0] waddr?
wire [7:0] d?
reg [7:0] dd?
wire [14:0] ramaddr?
reg usb_slrd?
reg [7:0] cmd [1:3]?
σύρμα ανάγνωση?σύρμα EF? / / empyt σημαία
σύρμα ff? / / πλήρη σημαίααντιστοιχίσετε EF = ~ usb_flaga?
αντιστοιχίσετε ff = ~ usb_flagb?
αντιστοιχίσετε ανάγνωση = (cmd [1] == 8'h01) & (cmd [2] == 8'h02) & (| cmd [3])? / / ανάγνωση/ / Flagb είναι ep6 πλήρη σημαία, είναι μια αυτόματη ep6 στο τελικό σημείο
/ / Flaga είναι άδειο ep2 σημαία, ep6 είναι μια αυτόματη out τελικό σημείοαντιστοιχίσετε usb_slwr = ~ usb_slrd | ff?
αντιστοιχίσετε usb_fifo = usb_flaga; δ: 8'bz?
αντιστοιχίσετε usb_sloe = usb_slrd?
αντιστοιχίσετε usb_ad = usb_slrd; 2'h2: 2'h0?
αντιστοιχίσετε usb_pktend = 1'h1?
αντιστοιχίσετε usb_cs = 1'h0?
αντιστοιχίσετε ramaddr = usb_slrd; (y [6:0], x [7:0]): waddr?πάντα @ (posedge usb_fifo_clk ή negedge sys_rst_n)
αρχίζω
αν (~ sys_rst_n)
αρχίζω
x <= # 1 8'h0?
y <= # 1 8'h0?
cmd [1] <= # 1 8'h00?
cmd [2] <= # 1 8'h00?
cmd [3] <= # 1 8'h00?
waddr <= # 1 15'h00?
τέλος
άλλος
αρχίζω
δδ <= # 1 δ?
usb_slrd <= # 1 EF?
αν (~ usb_slrd)
αρχίζω
εάν (~ ανάγνωση)
αρχίζω
cmd [3] <= # 1 usb_fifo?
cmd [2] <= # 1 cmd [3]?
cmd [1] <= # 1 cmd [2]?
τέλος
άλλος
αρχίζω
waddr <= # 1 waddr 15' h01?
cmd [3] <= # 1 cmd [3] -8 'h01?
τέλος
τέλος
else if (~ usb_slwr)
αρχίζω
x <= # 1 x 8' h01?
εάν (& x)
y <= # 1 y 8' h01?
τέλος
τέλος
τέλος
/ / Αυτό το κριάρι αποθηκεύσει εικόνα,
/ / Κυπαρίσσια fx2 μπορεί ανάγνωσης / εγγραφής αυτής της εικόνας
imgram ζευγαρώσει (
. addr (ramaddr)
,. CLK (usb_fifo_clk)
,. din (usb_fifo)
,. dout (δ)
,. μας (ανάγνωση)
)?
endmodule
Είμαι νέος σε FPGA,
Είμαι χρησιμοποιώντας Xilinx spartan3e και θέλετε κάποια μεταφορά δεδομένων με κυπαρίσσια fx2 μέσω σκλάβος FIFO interface.Δουλεύω με ise,
i γράψετε ένα κύκλωμα λογική, μπορώ να συνθέτω επιτυχώς, αλλά δεν μπορώ να το μεταφράσετε με επιτυχία
Ακολουθεί μου κωδικός:
Κωδικός:/ / Ep2 - out, wirte την εικόνα των δεδομένων,
/ / Ep6 - το, διαβάστε την εικόνα των δεδομένων
ενότητα slave_fifo_syn (
sys_clk,
sys_rst_n,
usb_fifo_clk,
usb_slwr,
usb_slrd,
usb_sloe,
usb_fifo,
usb_ad,
usb_flaga,
usb_flagb,
usb_flagc,
usb_pktend,
usb_slcs
)?
εισροών sys_clk? / / σύστημα CLK
εισροών sys_rst_n? / / επαναφορά συστήματος, ενεργή χαμηλά
εισροών usb_flaga? / / flaga είναι άδειο ep2 σημαία, ενεργό χαμηλό
εισροών usb_flagb? / / flagb είναι η πλήρης ep6 σημαία, ενεργό χαμηλό
εισροών usb_flagc? / / χρησιμοποιούνται
εξόδου usb_fifo_clk? / / CLK για σκλάβα FIFO
εξόδου usb_slwr? / / slave FIFO γράψει, ενεργό χαμηλό
εξόδου usb_slrd? / / slave FIFO διαβάσετε, ενεργό χαμηλό
εξόδου usb_sloe? / / slave FIFO εξόδου επιτρέψει, ενεργό χαμηλό
εξόδου usb_slcs? / / slave FIFO πλινθίο επιλέξετε, ενεργό χαμηλό
inout [7:0] usb_fifo? / / slave FIFO δεδομένα λεωφορείο, δικοινοτική κατεύθυνση
εξόδου [1:0] usb_ad? / / ΕΚ FIFO διεύθυνση, 0 - ep2 2 - dp6
εξόδου usb_pktend? / πακέτα / τέλος, την ενεργό χαμηλό/ / Κωδικός αρχίσει εδώ
/ / Δημιουργεί το usb FIFO CLK από DCM
dcm_66_33 dcm_inst (
. CLKIN_IN (sys_clk)
,. RST_IN (! Sys_rst_n)
,. CLKFX_OUT (usb_fifo_clk)
,. CLKIN_IBUFG_OUT ()
,. CLK0_OUT ()
,. LOCKED_OUT ()
)?
reg [8:0] x?
reg [8:0] y?
reg [17:0] waddr?
wire [7:0] d?
reg [7:0] dd?
wire [14:0] ramaddr?
reg usb_slrd?
reg [7:0] cmd [1:3]?
σύρμα ανάγνωση?σύρμα EF? / / empyt σημαία
σύρμα ff? / / πλήρη σημαίααντιστοιχίσετε EF = ~ usb_flaga?
αντιστοιχίσετε ff = ~ usb_flagb?
αντιστοιχίσετε ανάγνωση = (cmd [1] == 8'h01) & (cmd [2] == 8'h02) & (| cmd [3])? / / ανάγνωση/ / Flagb είναι ep6 πλήρη σημαία, είναι μια αυτόματη ep6 στο τελικό σημείο
/ / Flaga είναι άδειο ep2 σημαία, ep6 είναι μια αυτόματη out τελικό σημείοαντιστοιχίσετε usb_slwr = ~ usb_slrd | ff?
αντιστοιχίσετε usb_fifo = usb_flaga; δ: 8'bz?
αντιστοιχίσετε usb_sloe = usb_slrd?
αντιστοιχίσετε usb_ad = usb_slrd; 2'h2: 2'h0?
αντιστοιχίσετε usb_pktend = 1'h1?
αντιστοιχίσετε usb_cs = 1'h0?
αντιστοιχίσετε ramaddr = usb_slrd; (y [6:0], x [7:0]): waddr?πάντα @ (posedge usb_fifo_clk ή negedge sys_rst_n)
αρχίζω
αν (~ sys_rst_n)
αρχίζω
x <= # 1 8'h0?
y <= # 1 8'h0?
cmd [1] <= # 1 8'h00?
cmd [2] <= # 1 8'h00?
cmd [3] <= # 1 8'h00?
waddr <= # 1 15'h00?
τέλος
άλλος
αρχίζω
δδ <= # 1 δ?
usb_slrd <= # 1 EF?
αν (~ usb_slrd)
αρχίζω
εάν (~ ανάγνωση)
αρχίζω
cmd [3] <= # 1 usb_fifo?
cmd [2] <= # 1 cmd [3]?
cmd [1] <= # 1 cmd [2]?
τέλος
άλλος
αρχίζω
waddr <= # 1 waddr 15' h01?
cmd [3] <= # 1 cmd [3] -8 'h01?
τέλος
τέλος
else if (~ usb_slwr)
αρχίζω
x <= # 1 x 8' h01?
εάν (& x)
y <= # 1 y 8' h01?
τέλος
τέλος
τέλος
/ / Αυτό το κριάρι αποθηκεύσει εικόνα,
/ / Κυπαρίσσια fx2 μπορεί ανάγνωσης / εγγραφής αυτής της εικόνας
imgram ζευγαρώσει (
. addr (ramaddr)
,. CLK (usb_fifo_clk)
,. din (usb_fifo)
,. dout (δ)
,. μας (ανάγνωση)
)?
endmodule