S
simon111
Guest
hi các chuyên gia:
i am mới để fpga,
i đang sử dụng spartan3e Xilinx và muốn chuyển một số dữ liệu với cây bách fx2 thông qua giao diện FIFO nô lệ.i làm việc với ISE,
i viết một mạch logic, tôi có thể tổng hợp nó thành công, nhưng tôi không thể dịch nó thành công
sau đây là mã của tôi:
Mã số:/ / EP2 - out, wirte dữ liệu hình ảnh,
/ / EP6 - tại, đọc dữ liệu hình ảnh
module 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
);
đầu vào sys_clk; / / hệ thống CLK
đầu vào sys_rst_n; / / đặt lại hệ thống, tích cực thấp
đầu vào usb_flaga; / / Flaga là EP2 trống cờ, hoạt động thấp
đầu vào usb_flagb; / / flagb là EP6 đầy đủ cờ, hoạt động thấp
đầu vào usb_flagc; / / sử dụng
sản lượng usb_fifo_clk; / / CLK cho FIFO nô lệ
sản lượng usb_slwr; / / nô lệ FIFO viết, hoạt động thấp
sản lượng usb_slrd; / / nô lệ FIFO đọc, hoạt động thấp
sản lượng usb_sloe; / / đầu ra FIFO nô lệ cho phép, hoạt động thấp
sản lượng usb_slcs; / / nô lệ FIFO chip chọn, hoạt động thấp
InOut [7:0] usb_fifo; / / nô lệ FIFO dữ liệu xe buýt, bi-hướng
đầu ra [01:00] usb_ad; / / ep FIFO địa chỉ, 0 - EP2 2 - dp6
sản lượng usb_pktend; / / gói cuối cùng, hoạt động thấp/ / Code bắt đầu ở đây
/ / Tạo ra CLK FIFO usb bởi 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 [08:00] x;
reg [8:00] y;
reg [17:00] waddr;
wire [7:0] d;
reg [7:0] đ;
dây [14:00] ramaddr;
reg usb_slrd;
reg [7:0] cmd [01:03];
dây đọc;Dây ef; / / empyt flag
Dây ff; / / đầy đủ flaggán ef = ~ usb_flaga;
gán ff = ~ usb_flagb;
gán đọc = (cmd [1] == 8'h01) & (cmd [2] == 8'h02) & (| cmd [3]); / / đọc/ / Flagb là EP6 đầy đủ cờ, EP6 là một tự động tại điểm cuối
/ / Flaga là EP2 trống cờ, EP6 là tự động ra khỏi điểm cuốigán usb_slwr = ~ usb_slrd | ff;
gán usb_fifo = usb_flaga? d: 8'bz;
gán usb_sloe = usb_slrd;
gán usb_ad = usb_slrd? 2'h2: 2'h0;
gán usb_pktend = 1'h1;
gán usb_cs = 1'h0;
gán ramaddr = usb_slrd? (y [06:00], x [7:0]): waddr;luôn luôn @ usb_fifo_clk posedge (hoặc sys_rst_n negedge)
bắt đầu
nếu (~ sys_rst_n)
bắt đầu
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;
cuối
khác
bắt đầu
dd <= # 1 d;
usb_slrd <= # 1 ef;
nếu (~ usb_slrd)
bắt đầu
nếu (~ đọc)
bắt đầu
cmd [3] <= # 1 usb_fifo;
cmd [2] <= # 1 cmd [3];
cmd [1] <= # 1 cmd [2];
cuối
khác
bắt đầu
waddr <= # 1 waddr 15' h01;
cmd [3] <= # 1 cmd [3] -8 'h01;
cuối
cuối
if (~ usb_slwr)
bắt đầu
x <= # 1 x 8' h01;
nếu (& x)
y <= # 1 y 8' h01;
cuối
cuối
cuối
/ / Ram cửa hàng này một hình ảnh,
/ / Cypress fx2 có thể đọc / ghi hình ảnh này
imgram ram (
addr (ramaddr.)
,. CLK (usb_fifo_clk)
,. din (usb_fifo)
,. dout (d)
,. chúng tôi (đọc)
);
endmodule
i am mới để fpga,
i đang sử dụng spartan3e Xilinx và muốn chuyển một số dữ liệu với cây bách fx2 thông qua giao diện FIFO nô lệ.i làm việc với ISE,
i viết một mạch logic, tôi có thể tổng hợp nó thành công, nhưng tôi không thể dịch nó thành công
sau đây là mã của tôi:
Mã số:/ / EP2 - out, wirte dữ liệu hình ảnh,
/ / EP6 - tại, đọc dữ liệu hình ảnh
module 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
);
đầu vào sys_clk; / / hệ thống CLK
đầu vào sys_rst_n; / / đặt lại hệ thống, tích cực thấp
đầu vào usb_flaga; / / Flaga là EP2 trống cờ, hoạt động thấp
đầu vào usb_flagb; / / flagb là EP6 đầy đủ cờ, hoạt động thấp
đầu vào usb_flagc; / / sử dụng
sản lượng usb_fifo_clk; / / CLK cho FIFO nô lệ
sản lượng usb_slwr; / / nô lệ FIFO viết, hoạt động thấp
sản lượng usb_slrd; / / nô lệ FIFO đọc, hoạt động thấp
sản lượng usb_sloe; / / đầu ra FIFO nô lệ cho phép, hoạt động thấp
sản lượng usb_slcs; / / nô lệ FIFO chip chọn, hoạt động thấp
InOut [7:0] usb_fifo; / / nô lệ FIFO dữ liệu xe buýt, bi-hướng
đầu ra [01:00] usb_ad; / / ep FIFO địa chỉ, 0 - EP2 2 - dp6
sản lượng usb_pktend; / / gói cuối cùng, hoạt động thấp/ / Code bắt đầu ở đây
/ / Tạo ra CLK FIFO usb bởi 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 [08:00] x;
reg [8:00] y;
reg [17:00] waddr;
wire [7:0] d;
reg [7:0] đ;
dây [14:00] ramaddr;
reg usb_slrd;
reg [7:0] cmd [01:03];
dây đọc;Dây ef; / / empyt flag
Dây ff; / / đầy đủ flaggán ef = ~ usb_flaga;
gán ff = ~ usb_flagb;
gán đọc = (cmd [1] == 8'h01) & (cmd [2] == 8'h02) & (| cmd [3]); / / đọc/ / Flagb là EP6 đầy đủ cờ, EP6 là một tự động tại điểm cuối
/ / Flaga là EP2 trống cờ, EP6 là tự động ra khỏi điểm cuốigán usb_slwr = ~ usb_slrd | ff;
gán usb_fifo = usb_flaga? d: 8'bz;
gán usb_sloe = usb_slrd;
gán usb_ad = usb_slrd? 2'h2: 2'h0;
gán usb_pktend = 1'h1;
gán usb_cs = 1'h0;
gán ramaddr = usb_slrd? (y [06:00], x [7:0]): waddr;luôn luôn @ usb_fifo_clk posedge (hoặc sys_rst_n negedge)
bắt đầu
nếu (~ sys_rst_n)
bắt đầu
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;
cuối
khác
bắt đầu
dd <= # 1 d;
usb_slrd <= # 1 ef;
nếu (~ usb_slrd)
bắt đầu
nếu (~ đọc)
bắt đầu
cmd [3] <= # 1 usb_fifo;
cmd [2] <= # 1 cmd [3];
cmd [1] <= # 1 cmd [2];
cuối
khác
bắt đầu
waddr <= # 1 waddr 15' h01;
cmd [3] <= # 1 cmd [3] -8 'h01;
cuối
cuối
if (~ usb_slwr)
bắt đầu
x <= # 1 x 8' h01;
nếu (& x)
y <= # 1 y 8' h01;
cuối
cuối
cuối
/ / Ram cửa hàng này một hình ảnh,
/ / Cypress fx2 có thể đọc / ghi hình ảnh này
imgram ram (
addr (ramaddr.)
,. CLK (usb_fifo_clk)
,. din (usb_fifo)
,. dout (d)
,. chúng tôi (đọc)
);
endmodule