I2C从机assign
最近在做I2C从机相关项目,在网上搜了个从机代码,下面贴的是从机的top模块,
其中的assign myReg0_in = myReg0_out;想不清楚,
reg_in和reg_out,一个是主机向从机写数据,一个是主机从从机读数据,这个assign 赋值是说两个一直相等?
求高手解答
//if the status are not what you written, modify here
assign myReg0_in = myReg0_out;
assign myReg1_in = myReg1_out;
assign myReg2_in = myReg2_out;
assign myReg3_in = myReg3_out;
assign myReg4_in = myReg4_out;
assign myReg5_in = myReg5_out;
assign myReg6_in = myReg6_out;
assign myReg7_in = myReg7_out;
i2cSlave u_i2cSlave(
.clk(clk),
.rst(rst),
.sdaIn(sdaIn),
.sdaOut(sdaOut),
.scl(scl),
.I2C_ADDRESS(I2C_ADDRESS),
//status to be read out to I2C master.
.myReg0_in(myReg0_in),
.myReg1_in(myReg1_in),
.myReg2_in(myReg2_in),
.myReg3_in(myReg3_in),
.myReg4_in(myReg4_in),
.myReg5_in(myReg5_in),
.myReg6_in(myReg6_in),
.myReg7_in(myReg7_in),
//register setting from I2C master
.myReg0_out(myReg0_out),
.myReg1_out(myReg1_out),
.myReg2_out(myReg2_out),
.myReg3_out(myReg3_out),
.myReg4_out(myReg4_out),
.myReg5_out(myReg5_out),
.myReg6_out(myReg6_out),
.myReg7_out(myReg7_out)
);
endmodule
有木有人知道呢,急求
我想应该是这样的,虽然我不知道你里面怎么实现的。reg_out应该是寄存器输出,myregout0,i2c主机通过i2c总线写从机,把myregout0置为(比如8‘haa),由于那个assign这个时候myregin0也为8’haa,这个时候如果i2c主机来读从机的myregin0就能通过i2c总线读到8'haa
仅仅通过这些代码,很难看出来具体的作用
将输出与输入短接起来,常用于:1. 自测试;2. 保持特定逻辑,不优化;3. 如果是时钟信号,便于添加时钟约束;4. 便于仿真
