Mein Code für Top-Modul (spi Master-Slave):Verilog - Verzögerung bei der Umsetzung der SPI Master-Slave-Schnittstelle
module top(en,en_s,sclk,data_rg,tr_rg,rst,s_rst,ss_bar,rcv_rg,m_data_rg);
input [7:0] data_rg,tr_rg;
input en,en_s,sclk,rst,s_rst,ss_bar;
output [7:0] rcv_rg,m_data_rg;
ms m1(.en(en),.data_rg(data_rg),.sclk(sclk),.rst(rst),.miso(miso),.mosi(mosi),.ss_bar(ss_bar),.rcv_rg(rcv_rg));
slv m2(.en_s(en_s),.tr_rg(tr_rg),.ss_bar(ss_bar),.sclk(sclk),.s_rst(s_rst),.mosi(mosi),.miso(miso),.m_data_rg(m_data_rg));
initial
$display ("Transmitter data %d, %d",data_rg,tr_rg);
endmodule
In dem obigen Code, Mastermodul wird zuerst ausgeführt und dann Slave ausgeführt wird. Im Moment habe ich eine Verzögerung bei der Anbindung. Es sollte Vollduplex sein.
Architektur von spi Master-Slave:
Zeitdiagramm der Master-Slave-
Module können nicht nach einer Verzögerung instanziiert werden. Instantiierungsmodul bedeutet das Hinzufügen von Hardware zu Ihrem Board. Diese Hardware verhält sich im realen Szenario parallel. Also, wo ist es genau wo Sie Verzögerung hinzufügen möchten? Ist es in der Instantiierung (was nicht möglich ist) oder in den Modulen selbst (was durch die Verwendung einiger Zähler möglich ist)? – sharvil111
ich möchte keine verzögerung hinzufügen, ..... ich will das, was ist der grund hinter master empfängt daten von slave (45) in 9 clk puls wo Slave empfängt daten von master (93) in nur 8 puls? woher –