打印

DFB的模块结构

[复制链接]
936|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
AC, RAM, ni, IO, hb
在数据通道内的两个数据RAM的寻址受控于地址
运算单元(Address Calculation Unit,ACU)。DFB内
有两个ACU,分别和数据RAM对应。
        以上的三个子模块构成了DFB模块的核,并且有
一个32位的,包含DMA功能的AHB总线接口(包含控
制/状态寄存器)。
        下面将详细介绍各个子模块的结构和功能,以便
更好的使用DFB模块资源。
沙发
历史暴君|  楼主 | 2015-6-30 18:26 | 只看该作者
如下图所示,控制器是一个基于RAM的状态机,基
于RAM的控制存储,程序存储器和下状态控制逻辑。
       它的功能是控制地址的计算单元和数据通道,并且
通过与总线接口进行通信,实现在数据通道进行数据移
动。

图片9.png (58.54 KB )

图片9.png

使用特权

评论回复
板凳
历史暴君|  楼主 | 2015-6-30 18:26 | 只看该作者
一个UDB的每个子元件包含两个PLD,数据通道,
状态和控制,同时还有时钟选择和控制模块。
        这样就为分配时钟资源到UDB元件模块和允许未使
用的UDB资源被其它功能使用(最大化系统资源使用效
率),提供了更好的粒度。
通过任意状态,且使得状态可以停留任意时间,这样做非常有用。比如,考虑如图所示的交通灯。假设灯是4方向交互的,一条路是北向南的,另一条是东向西的。

图片10.png (8.64 KB )

图片10.png

使用特权

评论回复
地板
历史暴君|  楼主 | 2015-6-30 18:27 | 只看该作者
自主开发的汇编语言和汇编器能使设计者写汇编
语言来实现DFB将要执行的数据变换。
        汇编器将汇编代码转换后产生FSM RAM、两个控制
存储RAM,ACU RAM,和两个数据通道RAM的内容。
         这六个RAM的内容必须在使用前由系统加载。
DFM RAM的内容保存在Flash中。在DFB操作开始前
Flash中的内容写到RAM中。
下状态解码逻辑和FSM RAM构成了最主要的DFB分
支控制。
        下状态解码器产生FSM RAM的地址,RAM产生下状
态信息和分支标志符号。
         这些符号使能标志作为跳转分支的跳转条件。状态
机控制程序计数器来产生控制存储RAM的地址。

使用特权

评论回复
5
历史暴君|  楼主 | 2015-6-30 18:28 | 只看该作者
有两个一样的控制存储RAM(64x32)和一个相关
的程序计数器,允许交织方法用于控制存储操作码的取
操作。
        状态控制RAM有时使用相同数据填充。通过使用每
个RAM的不同内容,将控制存储指令空间扩大一倍。在
遇到分支条件时,将要计算下状态地址。因此,支持两
个可能的分支地址(每个RAM一个)。当分支条件确定
后,控制器就输出正确的存储控制RAM的内容,一直到
下一个跳转为止。
FSM RAM是一个64x32的RAM。用来存放来自汇编
代码的控制流信息,这些控制流信息表示DFB所要实现
的功能。
        RAM在系统引导的时候被加载,但并不限于这个
时间,只要DFB没有开始,之前的任何时间均可以加
载RAM。
       实际上,一些应用的算法是按照一定的规律进行加
载和被替换的,这些应用包括需要处理几个通道的数据
或者当一个通道需要多个变换(代码长度太大,以致于
不能有合适的可利用的空间)。

使用特权

评论回复
6
关小波522| | 2015-6-30 18:31 | 只看该作者
FSM RAM比特位域的映射关系

QQ截图20150630183122.jpg (186.21 KB )

QQ截图20150630183122.jpg

使用特权

评论回复
7
关小波522| | 2015-6-30 18:33 | 只看该作者
1.程序计数器
       程序计数器PC用于向CS RAM提供正确的地址。
       2.控制存储
       控制存储是指两个交错的RAM,用来存放用于ACU
和数据通道单元的控制操作码。通过PC及前一个时钟设
置的DP和ACU操作状态,FSM RAM间接寻址这些
RAM。
这两个RAM的32位输出服用到一个控制总线上,并
且提供如下表所示的到ACU和数据通道单元的比特位映
射。

QQ截图20150630183218.jpg (141.1 KB )

QQ截图20150630183218.jpg

使用特权

评论回复
8
关小波522| | 2015-6-30 18:34 | 只看该作者
3.下状态解码器
       下状态解码器是用于控制FSM RAM状态转移的组合逻
辑。下状态解码器是一个逻辑,这个逻辑给出了到FSM的
状态地址。下状态解码器的结果由信号条件分支控制。当
下面的一个条件成立时,就能到一个状态转移。
1)EOB为高和信号条件变高。这是真分支条件上的跳转;
2)LOOP为低表示无循环,EOB为高,条件为低。这是用于假条件的流通过条件用于假条件。
分支条件是:
1.有CS块的块结束条件-因为跳转指令标志着块的结束,这是跳转的条件;
2.数据通路状态输入,比如符号,门槛和相等。
1)Dpsign-基于ALU输出的最高有效位的跳转。如果ALU输入变为负,则该信号有效;
2)Dpthresh-当ALU检测到一个符号变化,比如在检测时出现0。该信号有效;
3)Dpeq-当硬件检测到ALU输出为0。
3.Acueq-如果设置modflag时, ACU A或ACU B寄存器等于MREG或LREG。如果清除modflag,ACU A或ACU B寄存器等于127或0。这表示指向DP数据寄存器的指针到达它的上/下界。
4.IN1或IN2-当暂存寄存器A或B有新的数据时,表明一个新输入周期,该数据可以被“消费”。该信号一直有效,直到读总线命令清除它为止。
5.globali1-来自DSI端口的分支控制输入;
6.globali2-来自DSI端口的分支控制输入;
7.来自ALU的sat_det标志(饱和)-当在MAC,ALU或者移位寄存器产生饱和,设置这个标志。
8.任何信号量。
           对于分支,必须使能分支条件。使用ENGLOBALS,
ENSATRND,ENSEM,SETSEM和CLEARSEM命令。
如果ALU命令是ENSEM,则acu_addr[2:0]上的数据写到寄存器sem_en用于使能信号量来产生分支条件。acu_addr[2:0]按位转换使能3个信号量中的每一个信号量。
SETSEM和CLEARSEM用于设置或者清除信号量。
其中:
Acu_addr[2]对应于semaphore2
Acu_addr[1]对应于semaphone1
Acu_addr[0]对应于semaphone0
ENGLOBAL命令用于使能使用外部的dsi输入和数据通道的饱和标志,作为分支条件。ENGLOBALS与ENSATRND共享ALU操作码。它们使用下表所示的acu_add[3]位。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

312

帖子

0

粉丝