【发布时间】:2016-08-26 14:27:43
【问题描述】:
我的顶级模块代码(spi master slave):
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
在上面的代码中,主模块先被执行,然后从模块被执行。现在,我正面临接口延迟。它应该是全双工的。
【问题讨论】:
-
延迟后无法实例化模块。实例化模块意味着向您的电路板添加硬件。该硬件在现实世界场景中以并行方式运行。那么,您想要添加延迟的确切位置在哪里?是在实例化中(这是不可能的)还是在模块本身中(可以通过使用一些计数器来完成)?
-
我不想添加延迟......我想要那个,主控在 9 个 clk 脉冲中接收从属(45)的数据的原因是什么,从属接收主控的数据(93 ) 只有 8 个脉冲?在哪里
标签: verilog spi master-slave