最新日志

发表于:2008-1-6 20:16:24
标签:9054  DMA、中断、基地址寄存器的一些理解  

1

9054 DMA、中断、基地址寄存器的一些理解

    关于DMA——以前总有一个错误的认识——PCI卡的DMA操作是由主板上的DMA控制器8237控制,但是想利用8237控制器进行DMA操作,需要首先发DMA申请,然后8237会在空闲的时候发DMA允许信号。然而,通过查看PCI规范发现,PCI根本就没有相应的信号连线。后来查看了9054手册之后才知道,原来DMA控制器是嵌在了9054芯片内部,这样就不难想象DMA操作的全流程了:首先在需要传输数据的时候,通过9054PCI向主机发中断,然后由主机通过读取中断向量来判断是何种中断,如果是需要DMA方式传输数据,则在DMA控制器的一些寄存器(源端起始地址、数据块大小、目的端起始地址寄存器等)写数据,同时会通过对9054的本地配置寄存器的操作配置DMA的操作方式等。待DMA控制器配置完毕后,DMA控制器通过LHOLD#LHOLDAREQ#GNT#分别来申请占用本地总线和系统,之后进行DMA操作。

       9054提供两个DMA通道,每个通道都支持Gather/Scatter(分散/集中) DMABlock(块) DMA两种模式。这两种模式的区别在于后者要求源端和目的端的数据块都是连续存储的,否则就需要进行多次DMA操作;而前者则可以只用一次DMA操作传输非连续存储的多个数据块,但是主机或者本地处理器需要首先建立描述块(Descriptor Block: composed of PCI and Local addresses, transfer count, transfer direction, and address of next descriptor block),然后设置DMA的方式,并(用描述块的地址)初始化9054内部的DMA描述指针寄存器(Descriptor Pointer Register),最后设置DMACSR0或者DMACSR1来启动DMA操作。DMA启动之后9054首先从描述块中读出第一个描述块,然后开始DMA传输。

注:至于该描述块(Descriptor Block)如何建立还需要进一步查看9054的数据手册,可能该描述块的建立需要由驱动程序或主机程序完成。

       关于中断——9054内部包含很多的中断源,都可以通过寄存器来配置是否发中断,向主机还是本地总线发中断。如果向主机发中断,则主机检测到中断之后,从9054寄存器中读取中断向量(INTCSR)来判断来进行何种中断操作;同样,如果向本地总线发中断,则由本地的处理器用同样方式来处理中断。

       关于基地址寄存器——基地址寄存器是用于将本地的存储空间映射到系统得内存(或I/O)空间中,这样主机可以很方便的操作本地的存储器。在指纹比对加速卡系统中,可以采用一个基地址寄存器来映射所有的存储空间(包括库指纹缓冲、平方根表存储器、th_grade表存储器、现场指纹相关的表存储器等),然后本地接口模块检测到属于该基地址内存空间的地址时,可以通过译码来判断该地址属于哪个表数据。

       基地址寄存器是一个32bit的寄存器,分为两个部分,后nbit为只读(表示映射空间的大小),前32-n个为可读可写(表示该映射空间在内存空间中的基偏移地址)。PCI规范规定,主机初始化时,首先向该寄存器写全1’,然后读该寄存器,通过该寄存器返回值来判断所映射空间的大小以及映射类型(内存或者I/O,最后一位为‘0表示内存空间映射,否则市I/O空间映射),之后系统给该映射空间分配一个基偏移量。

点击此处查看原文 >>

系统分类: 接口电路   |    用户分类: 无分类    |    来源: 原创

评论(0) | 阅读(1227)
发表于:2007-12-26 22:26:40
标签:Scatter-gather  DMA    block  DMA  

1

Scatter-gather DMA 与 block DMA

    Scatter-gather DMA方式是与block DMA方式相对应的一种DMA方式。

    DMA传输数据的过程中,要求源物理地址和目标物理地址必须是连续的。但是在某些计算机体系中,如IA架构,连续的存储器地址在物理上不一定是连续的,所以DMA传输要分成多次完成。

    如果在传输完一块物理上连续的数据后引起一次中断,然后再由主机进行下一块物理上连续的数据传输,那么这种方式就为block DMA方式。Scatter-gather DMA方式则不同,它使用一个链表描述物理上不连续的存储空间,然后把链表首地址告诉DMA masterDMA master在传输完一块物理连续的数据后,不用发起中断,而是根据链表来传输下一块物理上连续的数据,直到传输完毕后再发起一次中断。

    很显然,scatter-gather DMA方式比block DMA方式效率高。

 

点击此处查看原文 >>

系统分类: 接口电路   |    用户分类: 无分类    |    来源: 整理

评论(0) | 阅读(719)
发表于:2007-12-26 15:05:03
标签:下降沿检测电路  华为海思2008校园招聘的一道题目  

0

下降沿检测电路设计

如下图所示,看一下就应该明白了的,呵呵,是最近海思的一道校园招聘试题。

利用上升沿触发DFF设计一个下降沿检测电路,要求当输入信号出现下降沿后,输出一个固定长度的低电平脉冲,上图中Q2(即RST#)即可,不过这个电路输出有一定的延时,而且延时不稳定,最短接近于0,最长可能是CLK的一个时钟周期。

其实如果是ASIC设计的话,DFF2完全可以用非门链来代替,这样也可以达到要求的效果,将D1输出就是要求的输出信号了,而且这样也不会有延时。

 

点击此处查看原文 >>

系统分类: CPLD/FPGA   |    用户分类: 无分类    |    来源: 原创

评论(5) | 阅读(877)
发表于:2007-4-18 19:23:35
标签:无标签

0

第几次爱我

《第几次爱我 》(《梅花档案》主题歌) 

《梅花档案》片尾曲 
作曲:金培达 填词:林夕 演唱:柳重言 

温柔的那些话,是不是你在说, 
难忘的那些事,是不是你在做, 
到现在回想起来,就好象忽然醒过来的梦境那么单薄; 
你象一个泡沫,在我天空出没, 
一亲近就要破,美的难以琢磨, 
花终究也要结果,可你的余香没人知道会在哪里散落; 
我拼命捕捉 你擅长闪躲,两个人中间是宿命,好象一堵墙不能打破 
这是你第几次爱上了我,难道我只让你偶尔寄托 
每次看见你轮廓,我也担心会看错 只怕从此以后失去联络 

究竟你有没有爱上过我 我们之间了解太少还是太多 
想你熟悉的沉默,猜你陌生的下落 
总有虚名的浪漫在折磨,随时给湮没 
命运所有纠缠全都当做没有发生过 
http://www.xf529.com/music/30.mp3

点击此处查看原文 >>

系统分类: 自由话题   |    用户分类: 无分类    |    来源: 转贴

评论(0) | 阅读(1353)
发表于:2007-3-27 17:03:29
标签:hspice安装  

1

hspice的安装方法

先安装hspice软件,然后建立系统环境变量LM_LICENSE_FILE
变量值为license.dat所在的路径,如“D:\synopsys\Hspice_Y-2006.09-SP1\license.dat”

注意:如果安装了ModelSim的话,也会要求注册LM_LICENSE_FILE这个环境变量,只需要把两个值用分号隔开就行了。

附件中是Hspice_Y-2006.09-SP1的license文件

rar

 

点击此处查看原文 >>

系统分类: 自由话题   |    用户分类: 无分类    |    来源: 整理

评论(4) | 阅读(2572)
发表于:2007-3-27 16:33:48
标签:hspice  

0

hspice到底怎么用呢?迷茫中……

    学校今年第一次开IC设计的课程,任课的黄玫老师水平很高,我一定要好好学学阿,呵呵………窃喜

    我现在只知道hspice是用文本文件按照一定的语法,写netlist,在netlist里面可以描述各种电路元件以及相互之间的连接,还可以描述整个电路的输入激励dc、ac、正弦波或者混合的输入等;另外在netlist还可以写一些语句测试某个测试点的电压、电流等情况。

    看了一点hspice的手册,发觉好像还要了解电路测试的一些原理和方法,呵呵,好难啊

    其他的一窍不通了阿,以后要好好学习hspice……

点击此处查看原文 >>

系统分类: 自由话题   |    用户分类: 无分类    |    来源: 原创

评论(1) | 阅读(806)
总共 , 当前 /