3. pcie.v 文件

lattice的clarity生成的pcie核名字和当初建立IP有关系。之前我们打开clarity输入的design name叫pcie生成的verilog文件就叫pcie.v,如果输入文件叫pcie_interface则生成文件就叫pcie_interface.v。我们看一下这个文件内容

/* synthesis translate_off*/
`define SBP_SIMULATION
/* synthesis translate_on*/
`ifndef SBP_SIMULATION
`define SBP_SYNTHESIS
`endif

//
// Verific Verilog Description of module pcie
//
module pcie (pcie_x1_bus_num, pcie_x1_class_code, pcie_x1_cmd_reg_out, 
            pcie_x1_dev_cntl_2_out, pcie_x1_dev_cntl_out, pcie_x1_dev_num, 
            pcie_x1_device_id, pcie_x1_func_num, pcie_x1_hl_gto_lbk, pcie_x1_lnk_cntl_out, 
            pcie_x1_mm_enable, pcie_x1_msi, pcie_x1_npd_num_vc0, pcie_x1_pd_num_vc0, 
            pcie_x1_phy_cfgln, pcie_x1_phy_cfgln_sum, pcie_x1_phy_ltssm_state, 
            pcie_x1_pm_power_state, pcie_x1_rev_id, pcie_x1_rx_bar_hit, 
            pcie_x1_rx_data_vc0, pcie_x1_rx_lbk_data, pcie_x1_rx_lbk_kcntl, 
            pcie_x1_rxdp_dllp_val, pcie_x1_rxdp_pmd_type, pcie_x1_rxdp_vsd_data, 
            pcie_x1_subsys_id, pcie_x1_subsys_ven_id, pcie_x1_tx_ca_cpld_vc0, 
            pcie_x1_tx_ca_cplh_vc0, pcie_x1_tx_ca_npd_vc0, pcie_x1_tx_ca_nph_vc0, 
            pcie_x1_tx_ca_pd_vc0, pcie_x1_tx_ca_ph_vc0, pcie_x1_tx_data_vc0, 
            pcie_x1_tx_dllp_val, pcie_x1_tx_lbk_data, pcie_x1_tx_lbk_kcntl, 
            pcie_x1_tx_pmtype, pcie_x1_tx_vsd_data, pcie_x1_vendor_id, 
            pcie_x1_cmpln_tout, pcie_x1_cmpltr_abort_np, pcie_x1_cmpltr_abort_p, 
            pcie_x1_dl_active, pcie_x1_dl_inactive, pcie_x1_dl_init, pcie_x1_dl_up, 
            pcie_x1_flip_lanes, pcie_x1_flr_rdy_in, pcie_x1_force_disable_scr, 
            pcie_x1_force_lsm_active, pcie_x1_force_phy_status, pcie_x1_force_rec_ei, 
            pcie_x1_hdinn0, pcie_x1_hdinp0, pcie_x1_hdoutn0, pcie_x1_hdoutp0, 
            pcie_x1_hl_disable_scr, pcie_x1_hl_gto_cfg, pcie_x1_hl_gto_det, 
            pcie_x1_hl_gto_dis, pcie_x1_hl_gto_hrst, pcie_x1_hl_gto_l0stx, 
            pcie_x1_hl_gto_l0stxfts, pcie_x1_hl_gto_l1, pcie_x1_hl_gto_l2, 
            pcie_x1_hl_gto_rcvry, pcie_x1_hl_snd_beacon, pcie_x1_initiate_flr, 
            pcie_x1_inta_n, pcie_x1_load_id, pcie_x1_msi_enable, pcie_x1_no_pcie_train, 
            pcie_x1_np_req_pend, pcie_x1_npd_buf_status_vc0, pcie_x1_npd_processed_vc0, 
            pcie_x1_nph_buf_status_vc0, pcie_x1_nph_processed_vc0, pcie_x1_pd_buf_status_vc0, 
            pcie_x1_pd_processed_vc0, pcie_x1_ph_buf_status_vc0, pcie_x1_ph_processed_vc0, 
            pcie_x1_phy_pol_compliance, pcie_x1_pme_en, pcie_x1_pme_status, 
            pcie_x1_rst_n, pcie_x1_rx_dwen_vc0, pcie_x1_rx_end_vc0, pcie_x1_rx_malf_tlp_vc0, 
            pcie_x1_rx_st_vc0, pcie_x1_rx_us_req_vc0, pcie_x1_sys_clk_125, 
            pcie_x1_tx_ca_cpl_recheck_vc0, pcie_x1_tx_ca_p_recheck_vc0, 
            pcie_x1_tx_dllp_sent, pcie_x1_tx_dwen_vc0, pcie_x1_tx_end_vc0, 
            pcie_x1_tx_lbk_rdy, pcie_x1_tx_nlfy_vc0, pcie_x1_tx_rdy_vc0, 
            pcie_x1_tx_req_vc0, pcie_x1_tx_st_vc0, pcie_x1_tx_val, pcie_x1_unexp_cmpln, 
            pcie_x1_ur_np_ext, pcie_x1_ur_p_ext, refclk_refclkn, refclk_refclkp) /* synthesis sbp_module=true */ ;
            
....端口声明
    
    
    
    pcie_x1 pcie_x1_inst (...);
    refclk refclk_inst (...);
    PCSCLKDIV pcs_clkdiv0 (..);
    not (n1, pcie_x1_rst_n) ;
    
endmodule

省略部分内容。这个模块pcie端口信号有 109个。模块内部包含pcie_x1这个模块,refclk这个模块以及PCSCLKDIV和not模块。

信号名方向同步时钟功能描述
时钟和复位接口
refclk_refclkn/refclk_refclkp输入参考时钟输入。2.5G速率为100MHz,5G速率为200MHz
pcie_x1_sys_clk_125输出125MHz时钟,用于驱动用户逻辑
pcie_x1_rst_n输入低电平有效,
PCIe 收发通道
pcie_x1_hdinn0/pcie_x1_hdinp0输入PCIe x1 输入通道
pcie_x1_hdoutn0/pcie_x1_hdoutp0输出PCIe x1输出通道
TLP传输接口
pcie_x1_tx_data_vc064位输入125MTLP数据传输线
pcie_x1_tx_req_vc0输入125高电平代表传输请求,当你需要传输一个TLP包的时候,把此信号拉高。当有多个TLP包连续传输的时候,也就是burst模式,此信号要保持到最后一个包开始发送时刻
pcie_x1_tx_rdy_vc0输出125高电平表示可以开始传输。这个和上面请求信号成对。req--> rdy.请求应答
pcie_x1_tx_st_vc0输入125开始传输标志,代表数据线上数据开始有效
pcie_x1_tx_end_vc0输入125指示当前数据为TLP最后一个数据,之后必须变低
pcie_x1_tx_nlfy_vc0输入125高电平有效,指示当前TLP包作废,它可以在传输TLP包的任何时刻有效,当有效后pcie核会终止TLP发送,所以不需要上面end信号指示包结束。
pcie_x1_tx_dwen_vc0输入125高电平有效。指示64bit数据中63:32有效。在发送数据时,上面tx_data为64位,TLP以32bit为单位,如果最后一个数据不够64bit,则放到63:32这里,并拉高dwen信号。dwen=double word enable
pcie_x1_tx_val输出125时钟发送使能。就是调节发送速度。我们使用是5G速度的IPcore,有x1和x2选项,也就是1通道发送还是2通道发送,我们当前配置的x1,就是1通道发送,从上面我们可以看出只配了1对hdoutp/n.当配置x2的时候,发送速率就是5Gbps+5Gbps=10Gbps,PCIe信号采用8/10编码,所以有效数据为8Gbps。我们时钟125M,我们数据线宽度64位,则用户接口发送速率 125M×64=8Gbps,此时PCIe发送速率和用户发送速率匹配。当我们使用x1的时候PCIe发送速率降低1半,此时用户的接口时钟和数据线宽度未变,发送速率还是8G,这就需要使用此信号来指示当前时钟是否有效,降低发送速率,此信号间隔有效就可以达到调节发送速率
pcie_x1_tx_ca_ph_vc09位输出125posted-header信用值,最高位为1表示无限大的信用值,此时低8位忽略。高位为0时,低8位代表信用值。信用值表示对方接收端口还有多少缓冲区,用于数据流量控制,下面一样
pcie_x1_tx_ca_nph_vc09位输出125non-posted-header信用值
pcie_x1_tx_ca_cplh_vc09位输出125completion header信用值
pcie_x1_tx_ca_pd_vc013位输出125posted data 信用值
pcie_x1_tx_ca_npd_vc013位输出125non-posted data 信用值
pcie_x1_tx_ca_cpld_vc013位输出125completion data 信用值
pcie_x1_tx_ca_p_recheck_vc0输出125高电平指示发送一个 posted tlp,信用值发生变换
pcie_x1_tx_ca_cpl_recheck_vc0输出125高电平指示发送一个completion tlp,信用值发生变化
pcie_x1_rx_data_vc064位输出125接收数据总线
pcie_x1_rx_st_vc0输出125高电平指示数据线上 是TLP开始数据
pcie_x1_rx_end_vc0输出125高电平指示数据线是TLP结束数据
pcie_x1_rx_dwen_vc0输出125指示数据线上63:32数据有效
pcie_x1_rx_us_req_vc0输出125高电平表示不支持的TLP请求
pcie_x1_rx_malf_tlp_vc0输出125高电平表示当前TLP包有问题,长度或者格式不对
pcie_x1_rx_bar_hit7位输出125PCIe BAR空间指示。bit0--> BAR0, bit1-->BAR1...bit5-->BAR5, bit6-->扩展ROM区域。使用64bit空间时候,只有最小BAR编号有效。这个信号会和rx_st信号同时有效
pcie_x1_ur_np_ext输入125高电平指示不支持的non-posted 请求
pcie_x1_ur_p_ext输入125高电平指示不支持的posted请求
pcie_x1_ph_buf_status_vc0输入125指示用户buffer满,posted header buffer
pcie_x1_pd_buf_status_vc0输入125指示用户buffer满,posted data buffer
pcie_x1_nph_buf_status_vc0输入125指示用户buffer满,non-posted header buffer
pcie_x1_npd_buf_status_vc0输入125指示用户buffer满,non-posted data buffer
pcie_x1_ph_processed_vc0输入125
pcie_x1_nph_processed_vc0输入125
pcie_x1_pd_processed_vc0输入125高电平使能 pd_num值
pcie_x1_npd_processed_vc0输入125高电平使能 npd_num值
pcie_x1_pd_num_vc08位输入125posted data 信用值处理
pcie_x1_npd_num_vc08位输入125non-posted data 信用值处理
物理层
pcie_x1_no_pcie_train输入异步信号高电平禁止LTSSM训练,并让LTSSM进入L0状态
pcie_x1_force_lsm_active输入异步信号让所有通道进入链接状态
pcie_x1_force_rec_ei输入异步
pcie_x1_force_phy_status输入异步
pcie_x1_force_disable_scr输入异步禁止PCIe TLP干扰器
pcie_x1_hl_snd_beacon输入125高电平请求发送标记
pcie_x1_hl_disable_scr输入异步高电平发送禁止干扰位在TS1/TS2序列
pcie_x1_hl_gto_dis输入异步高电平请求进入disable 状态当LTSSM进入config或者recovery状态
pcie_x1_hl_gto_det输入125高电平请求进入Detect状态当LTSSM在L2或者disable状态
pcie_x1_hl_gto_hrst输入高电平请求进入Hot Reset状态当LTSSM在recovery状态
pcie_x1_hl_gto_l0stx输入125高电平请求进入L0s状态当LTSSM在L0状态
pcie_x1_hl_gto_l0stxfts输入125高电平请求进入L0s状态并传输FTS当LTSSM在L0s状态
pcie_x1_hl_gto_l1输入125高电平请求进入L1状态当LTSSM在L0状态
pcie_x1_hl_gto_l2输入125高电平请求进入L2状态当LTSSM在L0状态
pcie_x1_hl_gto_lbk4位输入125高电平请求进入loopback状态当LTSSM在config或者recovery状态
pcie_x1_hl_gto_rcvry输入125高电平请求进入recovery状态当LTSSM在L0,L0s或者L1状态
pcie_x1_hl_gto_cfg输入125高电平请求进入config模式当LTSSM在recovery状态
pcie_x1_phy_ltssm_state4位输出125物理层LTSSM当前状态。0000:dectect状态;0001:polling;0010:config ; 0011:L0; 0100:L0s; 0101:L1; 0110:L2; 0111:recovery; 1000: loopback; 1001: hot reset; 1010:diable
pcie_x1_phy_cfgln2位输出125指示连接通道
pcie_x1_phy_cfgln_sum3位输出125连接宽度000:无连接定义;001:x1 ; 010:x2 ; 100: x4
pcie_x1_phy_pol_compliance输出125高电平指示LTSSM在polling compliance状态
pcie_x1_tx_lbk_rdy输出250使能主机的loopback功能
pcie_x1_tx_lbk_kcntl8位输入250loopback功能,后续禁用loopback
pcie_x1_tx_lbk_data250后续禁用loopback
pcie_x1_rx_lbk_kcntl后续禁用loopback
pcie_x1_rx_lbk_data后续禁用loopback
数据链路层
pcie_x1_dl_active输出125
pcie_x1_dl_inactive输出125
pcie_x1_dl_init输出125
pcie_x1_dl_up输出125
pcie_x1_tx_dllp_val2位输入125电源消息发送命令。00:无消息, 01:发送DLLP使用tx_pmtype, 10:发送DLLP使用tx_vsd_data, 11:不使用
pcie_x1_tx_pmtype3位输入125电源消息类型。000:PM L1 , 001:PM L2, ...
pcie_x1_tx_vsd_data24位输入125厂商自定义数据发送DLLP
pcie_x1_tx_dllp_sent输出125请求DLLP发送
pcie_x1_rxdp_pmd_type3位输出125接收电源消息类型 000: PM L1 , 001: PM L2....
pcie_x1_rxdp_vsd_data24位输出125厂商自定义DLLP数据接收
pcie_x1_rxdp_dllp_val2位输出125电源消息接收
传输层
pcie_x1_cmpln_tout
pcie_x1_cmpltr_abort_np
pcie_x1_cmpltr_abort_p
pcie_x1_np_req_pend
配置寄存器
pcie_x1_bus_num8位输出125配置的bus num
pcie_x1_dev_num5位输出125
pcie_x1_func_num3位输出125
pcie_x1_cmd_reg_out6位输出125PCI Type0命令寄存器。bit0:IO Space bit1:mem space bit2:bus master bit3:parity error response bit4:serr enable bit5:interrupt disable
pcie_x1_dev_cntl_out15位输出125
pcie_x1_lnk_cntl_out8位输出125
pcie_x1_inta_n输入125传统的中断请求
pcie_x1_msi8位输入125MSI中断,上升沿发送
pcie_x1_flr_rdy_in输入125
pcie_x1_initiate_flr输出125
pcie_x1_dev_cntl_2_out输出125
pcie_x1_mm_enable3位输出125
pcie_x1_msi_enable输出125MSI中断使能
pcie_x1_pme_status输入125
pcie_x1_pme_en输出125
pcie_x1_pm_power_state2位输出125电源状态
pcie_x1_load_id输入125
pcie_x1_device_id16位输入125设备ID号
pcie_x1_vendor_id16位输入125厂商ID号
pcie_x1_rev_id8位输入125版本
pcie_x1_class_code24位输入125类代码
pcie_x1_subsys_ven_id16位输入125厂商子ID
pcie_x1_subsys_id16位输入125系统子ID
pcie_x1_flip_lanes
pcie_x1_unexp_cmpln

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jjinl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值