Identificarte

Versión Completa : Cualquier Idea Me Puede Servir


Sponsored links
.




achilipu
junio 17, 2004, 03:42
No puedo mas, no se me ocurre nada para q me funcione y realmente no tengo ni idea de pq no va. Como he dicho en anteriores ocasiones, tengo q testear el programa de los puertos USB, o sea, meterle una senyal en la entrada del programa de TX y q a la salida del de RX salga la misma senyal. He conectado por fin los puertos de salida con los de entrada a traves de los wires txdp_con y txdn_con. Crei q ya estaba listo, pero no tengo nada a la salida. Creo q puede ser pq la senyal fs_ce (es como un segundo clk) no esta conectado, pero no estoy seguro y aunq lo fuera, no se me ocurre q puedo probar.


Os adjunto la direccion dnd podeis encontrar los programas:

http://custom.lab.unb.br/pub/hardware/opencores/usb_phy/rtl/verilog/

Y aqui va mi version del usb_phy:

`timescale 1ns / 10ps
`include "... .v"
`include "... .v"
module usb_phy(clk,rst,phy_tx_mode,usb_rst,txoe,
DataOut_i, TxValid_i, TxReady_o, RxValid_o, RxActive_o, RxError_o, DataIn_o, LineState_o);

input clk,rst,phy_tx_mode,TxValid_i;
input [7:0] DataOut_i, DataIn_o;
...

reg
reg
wire
wire

wire txdp_con, txdn_con; // Estos dos wires son los q conectan la salida de Tx con la entrada de Rx

//TX Phy instantiation
usb_tx_phy i_usb_tx_phy( ..., .txdp(txdp_con), .txdn(txdn_con),...
);

usb_rx_phy i_usb_rx_phy(..., .rxd(txdp_con), .rxdp(txdp_con), .rxdn(txdn_con, ...));

...

//AQUI EMPIEZA EL TESTBED
module test;
reg clk, rst, phy_tx_mode, TxValid_i;
reg [7:0] DataOut_i;

wire usb_phy, txoe, TxReady_o, RxValid_o, RxActive_o, RxError_o;
wire [7:0] DataIn_o;
wire [1:0] LineState_o;

integer i, imax;
initial

begin
i = 0;
imax = 5;
TxValid_i = 0;
phy_tx_mode = 1;
DataOut_i = 8'hxx;
//Reset
#100
rst = 0;
#100
rst= 0;

for(i = 0; i<imax; i = i +1)
begin
#1;
DataOut_i = $random;
TxValid_i = 1;
wait (TxReady_i = 1)
@(posedge clk) #1;
TxValid_i = 0;
DataOut_i = 8'hzz;
wait (~TxReady_o)
begin
@(posedge clk) #1;
end
end
end
#5000 $finish;
end
always #10 clk=~clk;
always @(posedge clk)
#1 $display ("DataOut_i=%h DataIn_o=%h", DataOut_i, DataIn_o);

usb_phy i_usb_phy (.clk(clk), .rst(rst), ....));
endmodule

Por favor, cualquier sugerencia o idea o lo q sea, LO QUE SEA sera bien recibido. Muchas gracias.