PCI总线教程:从基础到扩展

需积分: 9 4 下载量 35 浏览量 更新于2024-12-24 收藏 1.19MB PDF 举报
"pci_cust_tutorial.pdf 是一份英文教程,深入讲解了PCI(Peripheral Component Interconnect)总线的架构、信号、基本操作命令以及实际应用示例。该文档由Xilinx公司于2000年发布,涵盖了Xilinx在PCI设计流程中的解决方案,包括可用资源、面临的挑战以及设计实例。" PCI总线是计算机内部扩展接口的一种标准,它允许不同的外设如显卡、网卡、声卡等与主板进行高速通信。在“PCILocalBusArchitecture”部分,文档会介绍PCI总线的本地总线架构,包括其在主板上的位置、如何与处理器和系统组件交互,以及PCI规范所涵盖的多个方面,如时序、机械结构、协议和电气特性。 PCI规范是确保设备间兼容性和高速数据传输的关键。其中,“Timing”涉及设备之间数据传输的时间同步,确保正确地发送和接收数据;“Mechanical”关注物理连接,包括插槽和接口的尺寸、形状;“Protocol”定义了总线上的通信规则;而“Electrical”部分则涉及电压等级、信号完整性等相关电气标准。 “BasicBusOperations”将讲解PCI总线的基本操作,包括总线主控权的获取、数据传输方式(如突发传输)、地址/命令字段的解析等。此外,PCI寻址和总线命令是理解PCI工作原理的核心,它们决定了设备如何找到并访问内存或I/O空间。 “PCIConfiguration”部分可能涉及配置空间,这是每个PCI设备独有的地址空间,用于存储设备的配置信息,如设备ID、中断请求号(IRQ)等。64-bit Extension和66-MHz Overview将介绍PCI总线如何扩展到64位宽度以及提升至66MHz的工作频率,以提高数据传输速率。 最后,“PCIVariations”可能涵盖PCI的不同版本,例如PCI-X、PCI Express等,这些变体进一步提升了带宽和性能。 Xilinx PCI解决方案部分会提供使用Xilinx FPGA(Field-Programmable Gate Array)实现PCI设计的流程概述,包括可用的设计工具、资源管理,以及如何应对设计PCI设备时的挑战。同时,通过设计示例,读者可以更直观地学习和理解PCI设计的实际应用。 这份教程对于理解PCI总线技术及其在系统设计中的应用具有很高的价值,适合电子工程师、硬件开发者以及对计算机系统架构感兴趣的读者。

select * from ( select row_.*, rownum rownum_ from ( select * from ( select distinct OB.BUSI_ORDER_ID, 0 as HIS_ID, OB.BUSI_CODE, OB.CUST_ID, OB.CEASE_REASON, OB.ORDER_STATE, OB.CHANNEL_TYPE, ob.user_id, OB.IS_BATCH_ORDER, OB.APPLICATION_ID, OB.CREATE_DATE, OB.DONE_DATE, OB.EFF_DATE, OB.EXP_DATE, OB.OPER_ID, OB.ORG_ID, OB.REGION_ID, OB.NOTE, OB.PROCESS_STATE, nvl(oi.cust_name, ic.cust_name) cust_name, nvl(oc.icc_id, iu.icc_id) icc_id, nvl(oc.svc_num, iu.svc_num) svc_num, icp.cust_name parent_cust_name, icp.cust_id parent_cust_id, ol.order_list_id from ord_busi ob left join ord_offer oo on oo.busi_order_id = ob.busi_order_id and ob.user_id = oo.user_id left join info_user iu on oo.user_id = iu.user_id left join info_cust ic on ob.cust_id = ic.cust_id left join ord_cust oi on ob.cust_id = oi.cust_id and ob.busi_order_id = oi.busi_order_id left join info_cust icp on nvl(ic.parent_cust_id, oi.parent_cust_id) = icp.cust_id left join ( SELECT * FROM ord_user WHERE user_order_id IN ( SELECT MAX(user_order_id) user_order_id FROM ord_user GROUP BY busi_order_id,user_id ) ) oc on ob.user_id = oc.user_id and ob.busi_order_id = oc.busi_order_id left join ord_list ol on ob.busi_order_id = ol.busi_order_id WHERE 1 = 1 and OB.CUST_ID IN( SELECT DISTINCT CUST_ID FROM (SELECT CUST_ID, PARENT_CUST_ID FROM INFO_CUST UNION SELECT CUST_ID, PARENT_CUST_ID FROM ORD_CUST) TMP START WITH TMP.CUST_ID = '10001009208' CONNECT BY TMP.PARENT_CUST_ID = PRIOR TMP.CUST_ID ) union all select distinct OB.BUSI_ORDER_ID,OB.HIS_ID, OB.BUSI_CODE, OB.CUST_ID, OB.CEASE_REASON, OB.ORDER_STATE, OB.CHANNEL_TYPE, OB.USER_ID, OB.IS_BATCH_ORDER, OB.APPLICATION_ID, OB.CREATE_DATE, OB.DONE_DATE, OB.EFF_DATE, OB.EXP_DATE, OB.OPER_ID, OB.ORG_ID, OB.REGION_ID, OB.NOTE, OB.PROCESS_STATE, nvl(oi.cust_name,ic.cust_name) cust_name , nvl(oc.icc_id, iu.icc_id) icc_id, nvl(oc.svc_num,iu.svc_num) svc_num, icp.cust_name parent_cust_name, icp.cust_id parent_cust_id, ol.order_list_id from ord_busi_his ob left join ord_offer_his oo on oo.busi_order_id = ob.busi_order_id 优化一下

2023-06-02 上传
2023-07-13 上传