在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
EETOP诚邀模拟IC相关培训讲师 创芯人才网--重磅上线啦!
查看: 4697|回复: 15

求教pci卡配置问题

[复制链接]
发表于 2006-2-27 11:06:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
我是个新手,下面这段程序是小弟在论坛里找到的这里面关于stat_com_en这个参数参考了很多资料都没找到,希望大虾们提点一下,还有要是有空能否帮忙解释一下啊,看的我都犯迷糊了
/******************************************************************/
/************    Start Reg 00h Section              ***************/
/******************************************************************/
// reg 00h (DevID/VendorID)
parameterDEVICE_ID     = 16'h0120; // User Defined
parameterVENDOR_ID     = 16'h1022; // Set to AMD
/******************************************************************/
/************    End Reg 00h Section              *****************/
/******************************************************************/

/******************************************************************/
/************    Start Reg 04h Section              ***************/
/******************************************************************/
//reg 04h (status/command)
// The only bits used in this section are status[11:9]
// Command[1:0] The rest are all disabled to 0 at the Mux inputs
// `defines used for devsel
`define fast    2'b00
`define medium  2'b01
`define slow    2'b10
parameter DEV_SEL = `slow; // medium devsel timing
// The creation of the status and Command Registers
always @ (posedge pci_clk or negedge pci_rst_l)
  if (pci_rst_l == 1'b0) begin
     com <= 2'b00; // disable I/O and MEM space accesses.
     stat11 <= 1'b0; // reset target abort status bit
  end
  else if (stat_com_en == 1'b1) begin
      if (!pci_cbe_l[0])  // check to see if byte lane is enabled
        com <= pci_dat[1:0];
      else
        com <= com;
      if (!pci_cbe_l[3] && pci_dat[27]) // check to see if byte lane is enabled
        stat11 <= 0; // write a 1 clears this bit
      else
        stat11 <= stat11;   
  end
  else if (abort_sig == 1'b1) begin
     stat11 <= 1'b1; // set target abort status bit
     com <= com;
  end
  else begin
    stat11 <= stat11;
    com <= com;
  end
/******************************************************************/
/************    End Reg 04h Section              *****************/
/******************************************************************/
 楼主| 发表于 2006-2-27 17:45:54 | 显示全部楼层

求教pci卡配置问题

各位dx们,帮忙解答一下阿
发表于 2006-2-27 18:19:04 | 显示全部楼层

求教pci卡配置问题

有什么问题啊
呵呵
发表于 2006-2-27 18:20:48 | 显示全部楼层

求教pci卡配置问题

我解释前面一段
// reg 00h (DevID/VendorID)
parameterDEVICE_ID     = 16'h0120; // User Defined
parameterVENDOR_ID     = 16'h1022; // Set to AMD
是用PARAMETER来定义 VID,DID的.
可以直接在这里更改就可以了.
它的意思是向配置空间0000H中写入DID,VID
呵呵
 楼主| 发表于 2006-2-28 21:12:47 | 显示全部楼层

求教pci卡配置问题

谢谢,悟空,
这个我知道,但是下面就命令状态的写法我就看不懂了
发表于 2006-3-1 10:01:50 | 显示全部楼层

求教pci卡配置问题

这段CODE还要和其它地方一起看的
我说说我的看法哈
always @ (posedge pci_clk or negedge pci_rst_l)
if (pci_rst_l == 1'b0) begin
    com <= 2'b00; // disable I/O and MEM space accesses.
    stat11 <= 1'b0; // reset target abort status bit
end
复位的话,COM低两位为0, 也就是说禁止IO和MEM访问.
发表于 2006-3-1 10:15:47 | 显示全部楼层

求教pci卡配置问题

else if (stat_com_en == 1'b1) begin
     if (!pci_cbe_l[0])  // check to see if byte lane is enabled
       com <= pci_dat[1:0];
     else
       com <= com;
     if (!pci_cbe_l[3] && pci_dat[27]) // check to see if byte lane is enabled
       stat11 <= 0; // write a 1 clears this bit
     else
       stat11 <= stat11;   
end
如果命令状态使能了,那么只要字节使能的最低位有效就把pci_dat[1:0]给命令寄存器.
 楼主| 发表于 2006-3-1 12:21:38 | 显示全部楼层

求教pci卡配置问题

我明白了 ,谢谢悟空,我想再问一个问题,我常常看到PCI卡设计里他们提到状态机,这个所谓的状态机,是不是就是我们习惯所说的配置读写时序,IO读写时序,MEM读写时序
发表于 2006-3-1 14:29:08 | 显示全部楼层

求教pci卡配置问题

准确的说就是在一定的状态和输入条件下,引起次态和输出的变化的整个过程
又分为摩尔型,米利型等.
发表于 2006-8-17 19:58:44 | 显示全部楼层
悟空寻欢是个天才,能不能回答我的问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-22 05:56 , Processed in 0.029532 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表