小编设计的集成MIPI DPHY的MCU版图如下,今天梳理下DPHY的集成验证。
线网驱动强度(drive strength):
用于表示0的强度:highz0、supply0、strong0、pull0、weak0。
用于表示1的强度:highz1、supply1、strong1、pull1、weak1。
supply,strong,pull,weak强度依次下降,注意,supply0和supply1用于模型电源,就是只能提供0和1值的线网,通常只在Vendor提供的标准单元库中使用,平时不用。
举个例子MIPI DPHY的testbench的DP、DN接口在HS模式、LP模式/ULPS模式下的驱动力如下,仿真模式下,为了让HS的驱动力最强,我们用supply来驱动bufif1,然后LP模式用pull来驱动bufif1。
我们以dphy_ipi_tests测试为例,具体仿真驱动函数如下:
initialize_dut函数对DUT初始化:
phy_testclr = 1'b1; phy_testdin = 8'd0; phy_testen = 1'd0; phy_testclk = 1'd0; presetn= 1'd0; #(10) presetn= 1'd1; #(10) update_phy_test_ctrl1; update_phy_test_ctrl0;
给下面寄存器赋初始值(无效值):
task update_phy_test_ctrl0; apbWrite(`CSI2_HOST_PHY_TEST_CTRL0_OS, {30'd0, phy_testclk, phy_testclr}); endtask task update_phy_test_ctrl1; apbWrite(`CSI2_HOST_PHY_TEST_CTRL1_OS,{15'd0, phy_testen, 8'd0, phy_testdin}); endtask
特别注意phy_test_ctrl1寄存器是用于DPHY的配置:
//CSI2 Controller Programming apbWrite(`CSI2_HOST_PHY_SHUTDOWNZ_OS, 32'hFFFF_FFFF); // 取消phy shutdown apbWrite(`CSI2_HOST_DPHY_RSTZ_OS , 32'hFFFF_FFFF); // 取消phy reset复位 apbWrite(`CSI2_HOST_CSI2_RESETN_OS , 32'hFFFF_FFFF); // 取消csi2 reset复位
配置DPHY的带宽为1GHz,配置接口时序如下:
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !