当前位置:首页 > 消费电子 > 消费电子
[导读]  3 系统的详细设计方案  3.1 概述  在组播网络的拓扑图中,编码路由器、转发路由器和解码路由器是三个独立的系统,各自完成编码、转发和解码的任务。前面讲过,分组

  3 系统的详细设计方案

  3.1 概述

  在组播网络的拓扑图中,编码路由器、转发路由器和解码路由器是三个独立的系统,各自完成编码、转发和解码的任务。前面讲过,分组的编码、解码主要在网络层完成。在网络层中数据通道中,data bus和ctrl bus是同步传输的,二者之间的关系和格式如图3.1-1所示:

ctrl bus(8位)

Data bus(64位)

ff

module header

00

Pkt data1

00

……

xy(xy≠00)

Last pkt data

图3.1-1 数据通道中的data bus和ctrl bus

  Ctrl为ff时,表明为一个数据包的包头,xy为非零数据,指明最后一个有效的字节所在的位置,如01000000指明是第7个,即data[63:48]为有效数据。模块之间数据传输的过程是:若上一个模块已经处理完毕,想把数据传输到下一个模块,首先判断输入信号rdy是否有效,当rdy = 1时,将数据和控制信号同步发送出去,同时wr_vld信号有效,时序如图3.1-2所示:

  

 

  图3.1-2 有效的数据传输时序

  3.2 编码路由器详细设计方案

  3.2.1编码系统整体模块如图3.2-1所示

  

 

  图3.2-1:编码系统整体模块图

  3.2.2系统中各单元模块的功能与时序

  (1)Input arbiter

  ① Input arbiter内部结构如图3.2-2所示:

  

 

  图3.2-2 Input arbiter内部结构图

② 本模块输入输出信号列表及说明

Signal name

Bit width

Input or output

description

Input_fifo_data_1

64

input

Input data bus from “input FIFO 1”

Input_fifo_ctrl_1

8

input

Input ctrl bus from “input FIFO 1”

Input_fifo_empty_1

1

input

1=input FIFO is empty,0=otherwise

Input_fifo_rd_en_1

1

output

Read enable

Input_fifo_data_2

64

input

Input data bus from “input FIFO 2”

Input_fifo_ctrl_2

8

input

Input ctrl bus from “input FIFO 2”

Input_fifo_empty_2

1

input

1=input FIFO is empty,0=otherwise

Input_fifo_rd_en_2

1

output

Read enable

Data_arbiter_ctrl_1

64

output

Output data bus to “control module”

Ctrl_arbiter_ctrl_1

8

Output

Output ctrl bus to “control module”

Val_arbitrer_ctrl_1

1

Output

1=data from input arbiter 1 to head splitter 1 is valid, 0=otherwise

Rdy_arbiter_ctrl_1

1

Input

1=module “head splitter 1” is ready to receive

Data_arbiter_ctrl_2

64

output

Output data bus to “control module”

Ctrl_arbiter_ctrl_2

8

Output

Output ctrl bus to “control module”

Val_arbitrer_ctrl_2

1

Output

1=data from input arbiter 2 to head splitter 2 is valid, 0=otherwise

Rdy_arbiter_ctrl_2

1

Input

1=module “head splitter 2” is ready to receive, 0=otherwise

Data_arbiter_out_1

64

output

Output data bus to “output arbiter module”

Ctrl_arbiter_out_1

8

Output

Output ctrl bus to “output arbiter module”

Val_arbiter_out_1

1

Output

1=data from input arbiter 1 to output arbiter is valid, 0=otherwise

Rdy_arbiter_out_1

1

Input

1=module “output arbiter” is ready to receive from input arbiter 1, 0=otherwise

Data_arbiter_out_2

64

output

Output data bus to “output arbiter module”

Ctrl_arbiter_out_2

8

Output

Output ctrl bus to “output arbiter module”

Val_arbiter_out_2

1

Output

1=data from input arbiter 2 to output arbiter is valid, 0=otherwise

Rdy_arbiter_out_2

1

Input

1=module “output arbiter” is ready to receive from input arbiter 2, 0=otherwise

clk

1

Input

System clock, running at 125MHz

Rst_n

1

input

System asynchronous reset signal

  ③ 功能描述及数据流

  本模块执行输入仲裁功能。两个独立的input arbiter模块分别从两个输入FIFO读出数据包,判断数据包类型,决定输出端口(非IP包直接送往output arbiter,IP包送往control),输出数据。

  为了判断数据包类型,需要获取16-bit Ether Type信息,该信息位于每个数据包第二个double word中的31:16位,若Ether Type为0x0080,则说明此数据包为IP数据包,若Ether Type值不是0x0080,则说明此数据包不是IP数据包,将被直接送往output arbiter模块。

  ④ 关键时序及状态机

  本模块的状态机的状态转化如图3.2-3所示

  

 

  图3.2-3:input arbiter状态转换图

  2、Control

① 子模块列表

Sub module name

quantity

description

Head_spliter

2

Split head and payload, send head to “head info extractor”, send payload to “FIFO ctrl payload”

Head_info_extractor

2

Receive head from “head splitter”, extract “source number”, generate “generation number”. Store legacy head and packing info head respectively in “FIFO ctrl legacy” and “FIFO ctrl packinginfo”

Control_arbiter

1

Detect ctrl bus to determine whether should process both channels synchronously or hold one channel and process the other.

FIFO ctrl payload

2

Standard FIFO generated by CoreGen, store payload

FIFO ctrl legacy

2

Standard FIFO generated by CoreGen, store legacy head

FIFO ctrl packinginfo

2

Standard FIFO generated by CoreGen, store packing info head

      

 

 

 

 

 

 

② 内部结构如图3.2-4

  

 

  图3.2-4:control模块内部结构

 

③ 本模块输入输出信号列表及说明

Signal name

Bit width

Input or output

description

Data_arbiter_ctrl_1

64

Input

Input data bus from “input arbiter 1”

Ctrl_arbiter_ctrl_1

8

Input

Input ctrl bus from “input arbiter 1”

Val_arbiter_ctrl_1

1

Input

1=data from input arbiter 1 to head splitter 1 is valid, 0=otherwise

Rdy_arbiter_ctrl_1

1

output

1=module “head splitter 1” is ready to receive from input arbiter 1, 0=otherwise

Data_arbiter_ctrl_2

64

Input

Input data bus from “input arbiter 2”

Ctrl_arbiter_ctrl_2

8

Input

Input ctrl bus from “input arbiter 2”

Val_arbiter_ctrl_2

1

Input

1=data from input arbiter 2 to head splitter 2 is valid, 0=otherwise

Rdy_arbiter_ctrl_2

1

output

1=module “head splitter 2” is ready to receive from input arbiter 2, 0=otherwise

Data_payloadfifo_router_1

64

output

output data bus to “payload router”

Ctrl_payloadfifo_router_1

8

output

Output ctrl bus to “payload router”

Rd_en_payloadfifo_router_1

1

Input

Read enable

Empty_payloadfifo_router_1

1

output

1=FIFO ctil payload 1 is empty,0=otherwise

Data_payloadfifo_router_2

64

output

output data bus to “payload router”

Ctrl_payloadfifo_router_2

8

output

Output ctrl bus to “payload router”

Rd_en_payloadfifo_router_2

1

Input

Read enable

Empty_payloadfifo_router_2

1

output

1=FIFO ctrl payload 2 is empty,0=otherwise

Data_center_legacyfifo_1

64

Output

Output data bus to “packing center”

Rd_en_center_legacyfifo_1

1

Input

Read enable

Data_center_packingfifo_1

14

Output

Output data bus to “packing center”

Rd_en_center_packingfifo_1

1

input

Read enable

Data_center_legacyfifo_2

64

Output

Output data bus to “packing center”

Rd_en_center_legacyfifo_2

1

Input

Read enable

Data_center_packingfifo_2

14

Output

Output data bus to “packing center”

Rd_en_center_packingfifo_2

1

input

Read enable

clk

1

input

System clock, running at 125MHz

Rst_n

1

input

System asynchronous reset signal

  ④ 功能描述及数据流

  本模块为主控制模块。子模块control arbiter通过监控两条输入通道的ctrl bus,控制子模块head_spliter的两个独立的例化。具体控制操作如下:

  若两条输入通道同时进来新的IP包,则同时处理两条通道。

  若输入通道1进来新IP包时,通道2中IP包已经在处理中,则阻塞通道1,直至通道2处理完毕再重新判决。

  若同时处理两条通道时,两条通道中的数据包深度相同,则无需“PADDING”操作。若通道1中数据包发送完毕时(ctrl bus用one-hot-code标明结尾字节),通道2中数据包尚未发送完毕,则需对通道1中数据包补零,并在ctrl bus中用0b11110000标明此为padding数据。

  子模块head_spliter分离包头和负载,并分别发往head_info_extractor提取封装信息和FIFO_ctrl_payload暂存负载。

  子模块head_info_extractor提取包头中的源IP地址,并由此生成4-bit信源编号(source number)和10-bit代编号(generation number),将生成的封装信息存入FIFO_ctrl_packinginfo,将原始包头存入FIFO_ctrl_legacy。

  ⑤ 关键时序及状态机

  Head_spliter状态机如图3.2-5

  

 

  图3.2-5:Head_spliter状态机

  Control arbiter时序图

  

 

  

 

  Head spliter时序图

  

3、Coding

① 子模块列表

Submodule name

quantity

description

Payload router

1

Determine by the arrival of packets from both channels, whether should process coding or transport directly to packing module

M64×8 multiplier

2

Multiply 64-bit data from “payload router” by 8-bit random number from “prng tap16”

Prng tap16

1

8-bit random number generator

M72×72 adder

1

72-bit by 72-bit full adder

M72to64 converter

1

Convert data bus width from 72-bit to 64-bit

 

② Coding模块的内部结构如图3.2-6

图3.2-6:coding模块内部结构

      

③ 本模块输入输出信号列表及说明

 

 

Signal name  

Bit width

I/O

description

Data_payloadfifo_router_1

64

Input

Input data bus from “FIFO ctrl payload 1”

Ctrl_payloadfifo_router_1

8

Input

Input ctrl bus from “FIFO ctrl payload 1”

empty_payloadfifo_router_1

1

Input

1=FIFO ctrl payload 1 is empty,0=otherwise

Rd_en_payloadfifo_rouer_1

1

output

Read enable

Data_payloadfifo_router_2

64

Input

Input data bus from “FIFO ctrl payload 2”

Ctrl_payloadfifo_router_2

8

Input

Input ctrl bus from “FIFO ctrl payload 2”

empty_payloadfifo_router_2

1

Input

1=FIFO ctrl payload 2 is empty,0=otherwise

Rd_en_payloadfifo_rouer_2

1

output

Read enable

Router status

3

output

Output FSM state signal to “packing FIFO” and “packing center”, coordinate with the control of packing procedure

Data_router_packingfifo

73

output

Output data bus to “packing FIFO”. Bit 64 is set to “0” to indicate this is an uncoded packet

Wr_en_router_packingfifo

1

output

Write enable

Rdy_router_packingfifo

1

input

1=module “packing FIFO” is ready to receive from payload router, 0=otherwise

Empty_packingfifo

1

input

1=FIFO packing is empty,0=otherwise

Data_converter_packingfifo

73

output

Output data bus to “packing FIFO”. Bit 64 is set to “1” to indicate this is a coded packet

Wr_en_converter_packingfifo

1

Output

Write enable

Rdy_converter_packingfifo

1

output

1=module “packing FIFO” is ready to receive from m72to64 converter, 0=otherwise

Empty_converterfifo

1

output

1=FIFO converter is empty,0=otherwise

Rand_num_1

8

output

Output random number 1 to “packing center”

Rand_num_2

8

output

Output random number 2 to “packing center”

clk

1

input

System clock running at 125MHz

Rst_n

1

input

System asynchronous reset signal

 

④ 功能描述及数据流

本模块为主运算模块。子模块paylaod router构建与上游模块control的接口,从control的子模块FIFO ctrl payload中读取数据。若两FIFO都非空,则说明control模块同时处理了两条通道,也即需要进行编码操作。Paylpad router同时读取两个FIFO中的数据,送往由m64×8 multiplier、m72×72 adder以及m72to64 converter组成的“编码流水线”进行编码运算,并向下游packing模块发送编码过的数据包。

 

子模块prng tap16是8位伪随机数产生器。使能信号rand_num_en有效时,产生一个8位伪随机数。子模块m64×8 multiplier是64乘8位乘法器,该模块将负载与随即系数相乘,得到72位结果。m72×72 adder是72位全加器,将两个乘法器得到的结果相加得到编码输出。m72to64 converter是位宽转换器,由于coding模块输出的数据总线仍需保持64位,所以需要该转换器将72位编码输出转换为64为编码数据。由于是同步电路,采用同一时钟,该位宽转换将产生一定的数据囤积,需要较大缓存。

 

⑤ 关键时序与状态机

  • Payload router状态机

图3.2-7 Payload router状态机[!--empirenews.page--]

4、Packing

① 子模块列表

Sub module name 

quantity

Description

Packing FIFO

1

Receive and store processed packets before being packed in “packing center”

Packing center

1

Packing payload with all sorts of heads

 

② 内部结构图

图3.2-8 Packing内部结构图

 

③ 本模块输入输出信号列表及说明

Signal name

Bit width

I/O

Description

Data_router_packingfifo

73

input

Input data bus from “payload router”. Bit 64 is set to “0” to indicate this is an uncoded packet

Wr_en_router_packingfifo

1

Input

Write enable

Rdy_router_packingfifo

1

Output

1=module “packing FIFO” is ready to receive from payload router, 0=otherwise

Router_status

3

input

Input FSM state signal to coordinate with the control of  “packing FIFO”

Empty_packingfifo

1

output

1=FIFO packing is empty,0=otherwise

Data_converter_packingfifo

73

input

Input data bus from “m72to64 converter”. Bit 64 is set to “1” to indicate this is a coded packet

Wr_en_converter_packingfifo

1

Input

Write enable

Rdy_converter_packingfifo

1

Output

1=module “packing FIFO” is ready to receive from m72to64 converter, 0=otherwise

Empty_converterfifo

1

Input

1=FIFO converter is empty,0=otherwise

Data_center_legacyfifo_1

64

Input

Input data bus from “FIFO ctrl legacy 1”

Rd_en_center_legacyfifo_1

1

output

Read enable

Data_center_packinginfo_1

14

Input

Input data bus from “FIFO ctrl packinginfo 1”

Rd_en_center_packinginfo_1

1

output

Read enable

Data_center_legacyfifo_2

64

Input

Input data bus from “FIFO ctrl legacy 2”

Rd_en_center_legacyfifo_2

1

output

Read enable

Data_center_packinginfo_2

14

Input

Input data bus from “FIFO ctrl packinginfo 2”

Rd_en_center_packinginfo_2

1

output

Read enable

Rand_num_center_1

8

input

Input random number from “m64×64 multiplier 1”

Rand_num_center_2

8

input

Input random number from “m64×64 multiplier 2”

Out_data_out_0

64

output

Output data bus to “output arbiter”

Out_ctrl_out_0

8

Output

Output ctrl bus to “output arbiter”

Data_val_out_0

1

Output

1=data from packing center to output arbiter is valid, 0=otherwise

Rdy_out_0

1

Input

1=output arbiter is ready to receive from packing center, 0=otherwise

clk

1

Input

System clock running at 125 MHz

Rst_n

1

input

System asynchronous reset signal

  ④ 功能描述及数据流

  本模块为封装模块。子模块packing FIFO构建与coding模块的数据接口,将接收并缓存编码数据包以及未编码数据包(使用额外第64位数据标志该包是否编码,该位为“1”说明编码,该位为“0”说明未编码)。

  子模块packing center是主封装模块。它根据packing FIFO中读出的数据判断需要哪些包头信息,然后向control模块中相应FIFO读取需要的包头信息,并依次封装成NCP数据包,发送到output arbiter。

  ⑤ 关键时序及状态机

  Packing center状态机

  第一层状态机:packing_center_status

  

 

  图3 .2-9 packing_center_status状态机

  第二层状态机:

  coded_process

  

 

  图3 .2-10coded_process状态机

  uncoded_process

  

 

  图3.2-11 uncoded_process 状态机

5、Output arbiter

① 本模块输入输出信号列表及说明

Signal name

Bit width

Input or output

Description

Out_data_out_0

64

input

input data bus from “packing center”

Out_ctrl_out_0

8

Input

input ctrl bus from “packing center”

Data_val_out_0

1

Input

1=data from packing center to output arbiter is valid, 0=otherwise

Rdy_out_0

1

output

1=output arbiter is ready to receive from packing center, 0=otherwise

Out_data_out_1

64

input

input data bus from “input arbiter 1”

Out_ctrl_out_1

8

Input

input ctrl bus from “input arbiter 1”

Data_val_out_1

1

Input

1=data from input arbiter 1 to output arbiter is valid, 0=otherwise

Rdy_out_1

1

output

1=output arbiter is ready to receive from input arbiter 1, 0=otherwise

Out_data_out_2

64

input

input data bus from “input arbiter 2”

Out_ctrl_out_2

8

Input

input ctrl bus from “input arbiter 2”

Data_val_out_2

1

Input

1=data from input arbiter 2 to output arbiter is valid, 0=otherwise

Rdy_out_2

1

output

1=output arbiter is ready to receive from input arbiter 2, 0=otherwise

Out_data_mac

64

output

output data bus to “MAC Layer”

Out_ctrl_mac

8

Output

output ctrl bus to “MAC Layer”

Data_val_mac

1

Output

1=data from output arbiter to MAC layer is valid, 0=otherwise

Rdy_mac

1

Input

1=MAC layer is ready to receive from output arbiter, 0=otherwise

clk

1

Input

System clock running at 125MHz

Rst_n

1

input

System asynchronous reset signal

  ② 功能描述及数据流

  本模块为输出仲裁模块。为协调多路输出通道,避免冲突而设计。入端构建与input arbiter通信的两路端口和与packing通信的一路端口,出端构建与MAC层通信的输出端口。将选通并维护唯一一条输入通道直至该数据包全部发送完毕。采用轮询方式检查三路输入通道以避免冲突。

  ③ 关键时序及状态机

  

 

  图3.2-12 Output arbiter状态机

  3.3 转发路由器详细设计方案

  3.3.1转发路由器系统整体模块图

  

 

  图3.3-1总体模块图

  系统模块功能说明:该模块有两个子模块input_arbiter模块和forward模块构成,其中前者为标准模块;后者为自定义模块,接受来自MAC层的数据包,经过相关处理输出数据包,实现将未编码的IP数据包封装成NCP数据包并进行转发以及将其它非IP数据包或NCP数据包进行直接转发的功能。

  3.3.2系统中各单元模块的功能与时序

  Input_arbiter模块

  ① Input_arbiter模块的内部结构图如图3.3-2

  

 

  图3.3-2 input_arbiter模块

② 本模块的输入输出信号列表及说明(如下例)

信号名称

位宽 bits

I/O

描述

in_data_n(n:0、1、2、3)

64

input

从MAC层输入的data数据

in_ctrl_n(n:0、1、2、3)

8

input

从MAC层输入的ctrlbus数据

in_wr_n(n:0、1、2、3)

1

input

从MAC层输入的数据写使能信号(1为有效)

in_rdy_n(n:0、1、2、3)

1

output

输出至MAC层的准备信号(1为准备完毕,可以写入)

out_data

64

output

输出至forward模块的data数据

out_ctrl

8

output

输出至froward模块的ctrl数据

out_wr

1

output

输出至forward模块的写使能信号(1为写使能有效)

out_rdy

1

input

从forward模块输入的准备信号(1为准备好,可以写入)

 

  本模块的功能描述以及内部数据处理的过程

  功能描述:从MAC层的接口传来的数据信号写入到receivefifo中,每个接口接一个fifo,通过本模块的仲裁,循环查询每个fifo,如果每个fifo不为空则输出该fifo的数据到forward 模块。本次实验只用到接口1,其他接口实际上是没有数据输入,然而为了以后的可拓展设计,采取循环查询每个fifo,这样可以从每个接口进行数据读入数据,更合理。

  ④ 关键时序和状态机转化图

  

 

  图3.3-3 input_arbiter时序图

  2、forward模块

  ① forward模块的内部结构图如图3.3-4

  

 

  图3.3-4

②本模块的输入输出信号列表及说明(如下例)

信号名称

位宽 bits

I/O

描述

out_data

64

input

从input_arbiter模块输出的data数据

out_ctrl

8

input

从input_arbiter模块输出的ctrl数据

out_wr

1

input

从input_arbiter模块输出的写使能信号(1为写使能有效)

out_rdy

1

input

输出至input_arbiter模块的准备使能信号(1为准备使能有效)

out_data_n(n:0、1、2、3)

64

output

输出至MAC层的data数据

out_ctrl_n(n:0、1、2、3)

8

output

输出至MAC层的ctrlbus数据

out_wr_n(n:0、1、2、3)

1

output

输出至MAC层的数据写使能信号(1为有效)

out_rdy_n(n:0、1、2、3)

1

intput

从MAC层输入的准备信号(1为准备完毕,可以写入)

  ③ 本模块的功能描述以及内部数据处理的过程

  (1)Forward模块下子模块Ip_Packet_Arbiter 定义6个寄存器变量分别为:Reg_0—Reg_5 宽度为64bit, 6个寄存器变量:Ctrl_0—Ctrl_5宽度为8bit.分别存储数据包的前48个字节数据和CtrlBus信息。以便对包头进行解析,并进行判断所属的类型。

  (2)判断属于哪一类型的数据包,如果是非IP数据包则从Ip_packet_Arbiter模块发送一个信号Ip_Packet_Check的信号到Transmit模块,通过data信号线和ctrl信号线将数据传送到Transmit模块并转发到各个接口;

  (3)如果属于iP数据包则进一步判断是属于编码后的数据包还是未编码的数据包,如果是编码后的数据包则和①做同样处理,如果是未编码的数据包,则进行相应的处理(更改modulheader、MAC的目标地址、Ip包头、添加NCP包头操作),然后将组合好的数据包头和Ctrlbus 和Ip_Packet_Check信号一起送到Transmit模块。在Transmit模块通过收到的Ip_Packet_Check信号进行判断是否需要对存放数据进行重新的封装并进行相应处理,然后进行转发操作。整个过程的流程图如图3.3-5

  

 

  图3.3-5

  ④关键时序和状态机转化图

  

 

  图3.3-6

  ⑤ froward模块下子模块Transmit的状态机以及描述如图3.3-7

  

 

  图3.3-7

  对整个状态机工作条件进行详细的描述如下:

  当满足满足计数器counter=0的条件时,进入IDLE状态;counter计数器不改变并且不是包头的起始信号时则保持在该状态;如果counter=1,发现包头起始信号则保存该字段的值,并设置counter=2;

  当满足计数器counter=2时,并且是包的中间值信号时则跳转到READ状态;根据counter计数器的值有条件的保存在该状态;counter自加;

  当满足计数器counter=3时,判断MAC字段中上层协议的类型标志,如果为IP数据包继续保持在READ状态,counter+1;当counter=4时 进行判断数据包中协议字段的如果为未编码的IP数据包则保存在该状态,counter+1;

  当满足counter=3时判断上层协议类型标志为非IP数据包,则直接跳转到SEND状态;如果为已经编码的IP数据包既NCP数据包,则调整到SEND状态;

  当counter=7的时候,跳转到ADDNCPHEADER状态;数据处理完毕后state=SEND;

  当暂存的数据包没有发送完之前则保持在该状态;

  当state=SEND时,跳转到SEND状态;

  当暂存的数据包的字段发送完毕后,跳转到CONSENCTIVEPASS(持续发包)状态时;

  判断包尾的结束标志,如果不是包尾的结束标志则保持在该状态;

  判断包尾的结束标志,如果是包尾的结束标志,则发最后一个字段,并跳转到IDLE(起始状态);[!--empirenews.page--]

  3.4 解码路由器详细设计方案

  3.4.1 解码路由器系统整体模块图

  如下图3.4-1所示,为解码路由器的整体模块图

  

 

  3.4-1 解码路由器系统整体模块图

  3.4.2系统中各单元模块的功能与时序

  1、Input_arbiter:采用轮询策略,当fifo非空时从fifo接收数据,根据mac header判断数据是否为IP数据包,若是,则将数据发送到DRAM读写控制模块,同时将信源号、代编号发送到CAM读写控制模块。

  可用一个两状态的状态机实现:即轮询判断输入和数据输出:在FIFO非空时读数据,并根据数据包的类型发送到DRAM读写控制器或output fifo中,若是IP数据包,同时将信源号、代编号发送给CAM读写控制。

主要信号列表:

信号名称

位宽 bit

I/O

描述

Wr_vld_arb

1

 

写DRAM控制器有效

Out_data_0

64

 

输出至DRAM的data

Out_ctrl_0

8

 

输出至DRAM德ctrl

Src_gen_seq

24

 

信源号、代的编号

Cam_vld

1

 

写CAM控制器有效

Port_num_dram

2

 

数据的接收端口号

Out_data_1

64

 

输出至output arbiter的data

Out_ctrl_1

8

 

输出至output arbiter的ctrl

Wr_vld_1

1

 

输出至output arbiter信号有效

2、output_arbiter

  

 

  图3.4-2 output_arbiter结构图

  本模块的结构如图3.4-2所示,由两个输入fifo和一个输出仲裁器组成,两个fifo缓存来自SRAM和input_arbiter的数据包,Output_arbiter的作用是将解码后的数据发送到MAC层。由于对于非IP数据包我们并没有对其进行编码,所以在解码路由器中由input_arbiter判断后直接输出output_arbiter;对于编码后的IP数据包,在解码后先暂存到SRAM中,再发送出去。本模块就是轮流判断并接收来自SRAM和input_arbiter的数据,并将数据包发送到MAC层。

输入输出信号列表:

信号名称

位宽bits

I/O

描述

out_data_3

64

O

输出至MAC层的数据总线

out_ctrl_3

8

O

输出至MAC层的控制总线

out_wr_3

1

O

输出有效

out_rdy_3

1

I

MAC层空闲标志

dcod_data_0

64

I

已经解码的IP数据包的数据总线

dcod_ctrl_0

8

I

已经解码的IP数据包的控制总线

wr_vld_0

1

I

写有效

wr_rdy_0

1

O

接收数据空闲标志

non_ip_data

64

I

非IP数据包数据总线

non_ip_ctrl

8

I

非IP数据包控制总线

wr_vld_1

1

I

写有效

wr_rdy_1

1

O

接收数据空闲标志

 

  3、decoded_reg_grp

  本模块分别与decode_control_panel,decoder和SRAM_contrl相连接,主要作用是记录信源的某代数据包是否已经解码,并将相应的解码信息输出给其他模块,模块结构如图3.4-3:

  

 

  图3.4-3:decoded_reg_grp模块图

端口列表:

信号名称

位宽bits

I/O

描述

rd_dcod_reg_req_0

1

I

读取解码标志位请求

rd_dcod_src_gen_0

12

I

要读取的数据包的信源号和代编号

req_ack_vld_0

1

O

输出有效

alredy_decod_0

1

O

解码标志(“1”代表已经解码,“0”代表未解码)

rd_dcod_reg_req_1

1

I

读取解码标志位请求

rd_dcod_src_gen_1

12

I

要读取的数据包的信源号和代编号

req_ack_vld_1

1

O

输出有效

alredy_decod_1

1

O

解码标志(为1时代表已经解码,为0时未解码)

set_req

1

I

置位请求

set_src_gen

12

I

需要置位的数据包(表示已经解码完毕)

set_info_vld

1

I

置位信息有效

set_ack

1

O

置位请求响应

reset_req

1

I

复位请求

reset_src_gen

12

I

需要复位的数据包(表示解码后已发送完毕)

reset_info_vld

1

I

复位信息有效

reset_ack

1

O

复位请求响应

  ① 读解码标志

  当decoder模块或decode_control_panel读取解码标志时,将查询结果输出,alredy_decod_0和alredy_decod_1为“1”时表示本次查询的数据包已经解码,为“0”时表示未被解码,以与decoder接口为例,读取解码标志的时序如图3.4-4:

  

 

  图3.4-4:读解码标志位时序图

  ② 写解码标志位

  当decoder把一个数据包解码成功后,就把相应的解码标志位置1,当SRAM_control将一个数据包发送出去后,再将相应的解码标志位置0,以置位为例,解码标志位的写时序如图3.4-5:

  

 

  图3.4-5:置位解码标志寄存器

  4、DRAM控制器:接收数据,并顺序存储到DRAM中去。

  注意:我们将DRAM分为三块,分别对应于数据接收的三个信道,即第0个信道的数据存储到DRAM的第0块,第1个信道的数据存储到DRAM的第1块……信道号由port_num给出。由于DRAM是按照block读写的,因此每个block大小为2034字节,位宽为144位。

  

 

  图3.4-6:DRAM控制器模块图

① DRAM控制器与DRAM的接口与读写时序:

Signal Group

Signal Name

Direction

Bits

Description

Request Negotiation

p_wr_req

from user logic to block-of-data rd/wr module

1

1=request for write transfer (data are from user logic to DRAM), 0=otherwise

Request Negotiation

p_wr_ptr

from user logic to block-of-data rd/wr module

PKT_MEM_PTR_WIDTH

the start address of DRAM for transfer. Each unit is 16-byte piece

Request Negotiation

p_wr_ack

from block-of-data rd/wr module to user logic

1

1=the arbiter acknowledges that the write requester can proceed, 0=otherwise

Data Transfer

p_wr_data_vld

from user logic to block-of-data rd/wr module

1

1=the write data is valid, 0=otherwise

Data Transfer

p_wr_data

from user logic to block-of-data rd/wr module

PKT_DATA_WIDTH

the data transferred from user logic to DRAM

Data Transfer

p_wr_full

from block-of-data rd/wr module to user logic

1

1=notify the user logic to pause transfer the next clock cycle until this signal is deasserted, 0=otherwise

Data Transfer

p_wr_done

from block-of-data rd/wr module to user logic

1

1=this is the last write and no more write will be accepted for this block-of-data, 0=otherwise

写DRAM时序如图3.4-7:

图3.4-7 写DRAM时序图

 

读端口:

Signal Group

Signal Name

Direction

Bits

Description

Request Negotiation

p_rd_req

from user logic to block-of-data rd/wr module

1

1=request for read transfer (data are from DRAM to user logic), 0=otherwise

Request Negotiation

p_rd_ptr

from user logic to block-of-data rd/wr module

PKT_MEM_PTR_WIDTH

the start address of DRAM for transfer. Each unit is 16-byte piece

Request Negotiation

p_rd_ack

from block-of-data rd/wr module to user logic

1

1=the arbiter acknowledges that the read requester can proceed, 0=otherwise

Data Transfer

p_rd_rdy

from block-of-data rd/wr module to user logic

1

1=block-of-data rd/wr module has data for user logic to read, 0=otherwise

Data Transfer

p_rd_en

from user logic to block-of-data rd/wr module

1

1=user logic reads out one word of data from the block-of-data rd/wr module, 0=otherwise

Data Transfer

p_rd_data

from block-of-data rd/wr module to user logic

PKT_DATA_WIDTH

data transferred from block-of-data rd/wr module to user logic

Data Transfer

p_rd_done

from block-of-data rd/wr module to user logic

1

1=this is the last read data and no more data will be read for this block-of-data, 0=otherwise

 

读DRAM时序如图3.4-8:

图3.4-8 写DRAM时序图

② 其他模块对DRAM控制器的读/写过程:

当DRAM读写控制器将一个数据包读/写完之后, 就将rd_idle/wr_rdy_arb置为1,当外部模块需要对DRAM进行读写时,首先要判断这两个信号是否有效,在有效的情况下进行对数据的操作。.端口列表如下:

 

信号名称

位宽bits

I/O

描述

wr_vld_arb

1

I

Input_arbiter输入有效

out_data_0

64

I

输入的数据包的data_bus

out_ctrl_0

8

I

输入数据包的ctrl_bus

port_num_dram

2

I

输入信号的端口号,指明数据存放在DRAM的区域

wr_rdy_arb

1

O

写空闲信号

port_num_rd

2

I

读取数据包的区域

addr_vld

1

I

读地址有效

block_num_rd

8

I

数据包存放的block的起始地址

rd_idle

1

O

读空闲信号

in_rdy

1

I

数据输出输出允许信号

out_data

64

O

读出的数据包的data_bus

out_ctrl

8

O

输出数据包的ctrl_bus

data_vld

1

O

输出数据有效

 

(1)当decode_control_panel对DRAM控制器进行读操作时,将信道号和block地址发送至DRAM控制器,接着DRAM控制器从DRAM中读取数据,当decoder空闲时将数据发送出去,时序图如3.4-9所示:

 

图3.4-9 对DRAM控制器的读操作

 

(2)当DRAM控制器进行写操作时,将按照input_arbiter发送过来的端口号,按照地址大小顺序写DRAM,时序图如3.4-10:

 

图3.4-10 对DRAM控制器的写操作

 

5、decode_control_panel

① 本模块的内部结构图如3.4-11所示,它由以下五个模块组成:cam_info_save, decode_control_sm和3个CAM组成。

 

图3.4-11:decode_control_panel内部结构图

 

本模块的输入输出端口定义表如下:

端口名称

位宽  bits

I/O

描述

port_num_cam

2

In

数据写入的CAM号,即信道号

Src_gen_seq

24

In

输入数据包的信源号、代编号

Cam_vld

1

In

写有效

Cam_rdy

1

Out

写Cam准备好

rd_idle

1

In

DRAM准备好

block_num_rd

8

Out

读DRAM的地址

addr_vld

1

Out

读地址有效

port_num_rd

2

out

要读取的DRAM的编号

Pkt_vld

1

Out

要解码的数据包输出有效标志

Pkt_decoding

12

out

正在解码的数据包的信源号、代编号

Decod_com

1

In

数据包解码完成标志

has_other_factor

1

Out

有另外一个解码因子

Pkt_not_find

1

Out

所需要解码数据包未找到

pkt_need_src_gen

12

In

解码需要的数据包

need_pkt_vld

1

In

所需数据包有效

rd_dcod_reg_req_1

1

Out

读解码标志寄存器请求

req_ack_vld_1

1

In

标志位有效

Alredy_Decod_1

1

In

解码标志位

rd_dcod_src_gen_1

12

out

查询数据包是否已经解码

 

② cam_info_save:

该模块的主要功能是将输入的数据包的信源号和代的编号按地址大小顺序存入到三个cam中,每个cam分别对应于三个数据输入通道。每个CAM的大小是24bits×256,我们要求CAM的读写操作可以同时进行,写数据从DIN进入,而读(查询)的数据从CMP_DIN进入,写操作时BUSY信号有效,表示不可以响应其他写请求,图3.4-12是一个CAM的读写操作时序:

 

图3.4-12:CAM读写过程[!--empirenews.page--]

③decode_control_sm

该模块的功能是按照轮询策略,控制decoder解码储存在DRAM中的数据包。通过查询CAM中的数据包的存储地址,将查询到的地址输出给DRAM读写控制模块,从而找到解码所需要的数据,同时将要查询的数据包的信源号和代的编号发送给解码模块。若不能查找到解码因子,则将信号Pkt_not_find置为有效电平,通知decoder无法解码,同时将状态转到解码下一个数据包的状态上。在开始查找CAM时,要等待储存一定数量的数据包,在我们的系统里面,暂定为32。

 

状态机处理控制流程如图3.4-13:

图3.4-13:decode_control_sm状态机及数据处理流程

  6、decoder

  decoder是整个解码路由器的核心之一,它的主要功能是接收来自DRAM的编码后的IP数据包,在decode_control_panel模块的控制下对数据包进行解码,它包括多个小模块,其整体图和内部结构图如3.4-14和3.4-15所示:

  

 

  图3.4-14 decoder整体结构图

  

 

  图3.4-15:decoder内部结构图

  ① header_parser

  分析接收到的数据包,如果已经被编码,根据包头提取信源号、代号、长度和系数给运算控制模块,如果没有被编码,则查询解码标志寄存器,如果已经解码并储存在二级缓存中,则该数据包只是一个解码因子,把数据发送到fwd_sel,若没有解码,则同时发送到capsulation和forward sel。如果数据是编码后的数据包,则将数据包去掉包头后将数据发送给forward sel模块。当发送到最后的64位数据时,eop信号有效,指明是数据包的最后有效字节。

  下图所示为输入输出接口图3.4-16:

  

 

  图3.4-16:header_parser模块图

其输入输出端口列表如下:

信号名称

位宽bits

I/O

描述

in_rdy

1

O

数据输出输入允许信号

out_data

64

I

输入的数据包的data_bus

out_ctrl

8

I

输入数据包的ctrl_bus

data_vld

1

I

输入数据有效

rd_dcod_reg_req_0

1

O

读取解码标志位请求

rd_dcod_src_gen_0

12

O

要读取的数据包的信源号和代编号

req_ack_vld_0

1

I

输入有效

alredy_decod_0

1

I

解码标志(“1”代表已经解码,“0”代表未解码)

Uncod_data

64

O

未编码数据包的数据总线

Uncod_ctrl

8

O

未编码数据包的控制总线

Wr_vld

1

O

写capsulation数据有效

Out_rdy

1

I

输出capsulation允许信号

fwd_rdy

1

I

输出fwd_sel允许信号

out_vld

1

O

输出fwd_sel有效

pay_load

64

O

输出fwd_sel数据(不含包头)

eop

4

O

最后指示一个有效字节的指示

uncod

1

O

指明输出的数据包是否编码

src_gen_num

12

O

Decoder接收到的数据包的信源号和代的编号

len_0

16

O

被编码的第一个数据包的有效载荷的长度

len_1

16

O

被编码的第二个数据包的有效载荷的长度

coef_0

8

O

被编码的第一个数据包的编码系数

coef_1

8

O

被编码的第二个数据包的编码系数

hp_info_vld

1

O

输出信息有效

encod_pkt_trans_fi

1

O

编码数据包传输完毕标志

oc_info_vld

1

I

解码控制输入信息有效

uncod_pkt_need

1

I

未编码的数据包是/否解码因子(1=是,0=否)

 

 

 图3.4-17所示为状态机处理流程:

图3.4-17:header_parser状态机处理流程

 

② forwd_sel

该模块功能主要是转发数据包:接收来自header_parser的数据包,若uncod=0,则表明数据包是编码后数据包,将已经编码后的数据包的载荷转换为72bits后,将数据发送到RAM读写控制器,否则发送到decod_operation。当有反馈输入请求时,若输出到decod_operation 的数据线空闲时,将反馈数据发送到decod_operation。

 

本模块的端口列表如下:

信号名称

位宽bits

I/O

信号描述

fwd_rdy

1

O

输入fwd_sel允许信号

out_vld

1

I

输入fwd_sel有效

pay_load

64

I

输入fwd_sel数据总线(不含包头)

eop

4

I

最后指示一个有效字节的指示

uncod

1

I

指明输出的数据包是否编码

wr_req

1

O

写RAM请求

encod_data

72

O

写RAM的数据总线

ram_data_vld

1

O

数据有效

encod_data_eop

4

O

数据包结束标志,指明最后一个有效字节

wr_ack

1

I

写RAM响应

uncod_data_vld

1

O

输出至dcod_operation的数据有效

uncod_data_factor

64

O

输出至dcod_operation的数据总线

uncod_data_eop

4

O

数据包结束标志,指明最后一个有效字节

dcod_rdy

1

I

输出至dcod_operation允许信号

fd_back_ack

1

O

接受反馈响应

fd_back_vld

1

I

反馈数据有效标志

fd_back_req

1

I

反馈请求

fd_back_data

64

I

反馈数据总线

fd_back_data_eop

4

I

反馈数据结束标志,指明最后一个有效字节

 

③ RAM读写控制器

在写数据时,先从运算控制模块中得出要储存的RAM号,接着RAM读写控制器将从收到forward sel 模块收到的数据存到片内RAM里面去。在读数据时,根据dcod_operation模块提供的ram号,从相应的ram中读取数据,由于使用的是双端口ram,因此读写可以同时进行。模块信号列表如下:

 

信号名称

位宽bits

I/O

信号描述

wr_req

1

I

写RAM请求

encod_data

72

I

写RAM的数据总线

ram_data_vld

1

I

数据有效

encod_data_eop

4

I

数据包结束标志,指明最后一个有效字节

wr_ack

1

O

写RAM响应

wr_ram_num

2

I

要写入的RAM号

info_vld

1

I

数据有效标志

req_ram_num

1

O

读RAM号请求

rd_ram_num

2

I

需要读取数据的RAM号

rd_req

1

I

读RAM请求

ram_data_eop

4

O

数据包结束标志,指明最后一个有效字节

ram_data

72

O

读RAM的数据总线

ram_vld

1

O

读RAM数据有效

 

RAM读写时序图如图3.4-18:

图3.4-18:RAM读写时序

 

每个RAM由双端口block RAM组成,位宽为72位,深度为180,因此读写的地址位宽均为8位。由于RAM的读写控制时序是固定的,所以在此不再赘述。

④ operation_control

运算控制(operation_control)是decoder模块的控制核心,它和decode_control_panel配合,完成对编码数据包的解码。

输入输出信号列表:

信号名称

位宽bits

I/O

信号描述

Pkt_vld

1

I

要解码的数据包输出有效标志

Pkt_decoding

12

I

正在解码的数据包的信源号、代编号

Decod_com

1

O

数据包解码完成标志

has_other_factor

1

I

有另外一个解码因子

Pkt_not_find

1

I

所需要解码数据包未找到

pkt_need_src_gen

12

O

解码需要的数据包

need_pkt_vld

1

O

所需数据包有效

src_gen_num

12

I

Decoder接收到的数据包的信源号和代的编号

len_0

16

I

被编码的第一个数据包的有效载荷的长度

len_1

16

I

被编码的第二个数据包的有效载荷的长度

coef_0

8

I

被编码的第一个数据包的编码系数

coef_1

8

I

被编码的第二个数据包的编码系数

hp_info_vld

1

I

输入信息有效

encod_pkt_trans_fi

1

I

编码数据包传输完毕标志

oc_info_vld

1

O

解码控制输出信息有效

uncod_pkt_need

1

O

未编码的数据包是/否解码因子(1=是,0=否)

wr_ram_num

2

O

要写入的RAM号

info_vld

1

O

数据有效标志

req_ram_num

1

I

读RAM号请求

rd_info_req

1

I

读取解码信息请求

dcod_info_vld

1

O

解码信息有效

ram_num

2

O

解码数据包的所存储的RAM号

coef_mut

8

O

乘法系数

coef_div

8

O

除法系数

cap_info_req

1

I

封装信息请求

dcod_comp

1

I

解码封装完成

cap_info_vld

1

O

封装信息有效

need_feed_back

1

O

需要反馈

pkt_len

16

O

数据包长度

src_num

4

O

数据包的信源号

gen_num

8

O

数据报的代编号

 

Operation_control模块的主要功能是:接收header_parser发送过来的数据,通过计算和比较后与decode control panel通信,告诉decode control panel解码所需要的数据包和解码完成标志;给RAM读写给出RAM号(即存储在哪个RAM中);给decode operation模块提供解码所需要的系数和RAM号;给capsulation模块提供源IP和是否需要反馈数据的命令,其控制状态如图3.4-19下:

 

图3.4-19:Operation_control状态机处理流程

 

⑤ decode operation

decode operation是解码运算模块,它将来自fwd_sel模块的未编码的数据和来自RAM的编码数据完成减法和除法运算,还原被编码的数据。解码后将数据总线的位宽恢复为64bits。解码运算模块的端口列表如下:

 

信号名称

位宽bits

I/O

信号描述

dcod_payload

64

O

解码后的数据包的有效载荷

end_payload

4

O

数据包结束标志,指明最后一个有效字节

payload_vld

1

O

输出数据有效

wr_rdy

1

I

输出数据允许信号

uncod_data_vld

1

I

输入至dcod_operation的数据有效

uncod_data_factor

64

I

输入至dcod_operation的数据总线

uncod_data_eop

4

I

数据包结束标志,指明最后一个有效字节

dcod_rdy

1

O

输入至dcod_operation允许信号

rd_ram_num

2

O

需要读取数据的RAM号

rd_req

1

O

读RAM请求

ram_data_eop

4

I

数据包结束标志,指明最后一个有效字节

ram_data

72

I

读RAM的数据总线

ram_vld

1

I

读RAM数据有效

rd_info_req

1

O

读取解码信息请求

dcod_info_vld

1

I

解码信息有效

ram_num

2

I

解码数据包的所存储的RAM号

coef_mut

8

I

乘法系数

coef_div

8

I

除法系数

 

为了快速完成解码运算,我们在此采取并行除法的方法使之能快速解码,解码运算的算法图如图3.4-20:

图3.4-20 decoder_operation内部的并行除法

⑥ capsulation

Capsulation是解码运算的最后一个模块,其主要功能是封装解码后的数据包。其主要任务是:(1)接收来自decode operation和header_parser的数据;(2)将来自header_parser的未编码的数据包去掉NCP包头;(3)计算新的包头校验和,更新TTL;(4)置位解码标志寄存器;(5)将来自decode operation模块的数据,先向运算控制模块询问是否要反馈,若需要,则将数据反馈至forward_sel模块;(6)恢复IP数据包头;(7)将IP包头和有效载荷封装好,并恢复ctrl_bus和module header,将其一起同步发送出去。

 

端口信号列表如下:

信号名称

位宽bits

I/O

信号描述

decoder_in_rdy

1

I

输出至SRAM允许信号

decoder_in_wr

1

O

输出有效

decoder_in_data

64

O

输出至SRAM数据总线

decoder_in_ctrl

8

O

输出至SRAM控制总线

set_req

1

O

置位请求

set_src_gen

12

O

需要置位的数据包(表示已经解码完毕)

set_info_vld

1

O

置位信息有效

set_ack

1

I

置位请求响应

cap_info_req

1

O

封装信息请求

dcod_comp

1

O

解码封装完成

cap_info_vld

1

I

封装信息有效

need_feed_back

1

I

需要反馈

pkt_len

16

I

数据包长度

src_num

4

I

数据包的信源号

gen_num

8

I

数据报的代编号

dcod_payload

64

I

解码后的数据包的有效载荷

end_payload

4

I

数据包结束标志,指明最后一个有效字节

payload_vld

1

I

输入数据有效

wr_rdy

1

O

输入数据允许信号

fd_back_ack

1

I

接受反馈响应

fd_back_vld

1

O

反馈数据有效标志

fd_back_req

1

O

反馈请求

fd_back_data

64

O

反馈数据总线

fd_back_data_eop

4

O

反馈数据结束标志,指明最后一个有效字节

Uncod_data

64

I

未编码数据包的数据总线

Uncod_ctrl

8

I

未编码数据包的控制总线

Wr_vld

1

I

写capsulation数据有效

Out_rdy

1

O

输入数据包允许信号

 

封装过程中的状态转换图如图3.4-21:

图3.4-21capsulation封装包头流程图

 

7、SRAM读写控制器

SRAM读写控制的作用是:①将capsulation模块来的数据写入SRAM中,写入时按照代的大小和信源号写入block中。SRAM按照地址分为3个区域,每个区域存储对应由一个信源。每个区域分为256个block,每个block深度是400,宽度为36bits,可以存储1800字节的数据(即至少可容纳一个正常大小的IP数据包)。②读取数据时按照block逐个读取,读取后的数据直接发送至output_arbiter。在每发送完一个数据包后,对解码标志寄存器复位。

 

SRAM读写控制器的端口列表如下:

信号名称

位宽bits

I/O

信号描述

decoder_in_rdy

1

O

写SRAM控制器允许信号

decoder_in_wr

1

I

输入有效

decoder_in_data

64

I

输入至SRAM控制器数据总线

decoder_in_ctrl

8

I

输入至SRAM控制器控制总线

reset_req

1

O

复位请求

reset_src_gen

12

O

需要复位的数据包(表示解码后已发送完毕)

reset_info_vld

1

O

复位信息有效

reset_ack

1

I

复位请求响应

dcod_data_0

64

O

输出的IP数据包的数据总线

dcod_ctrl_0

8

O

输出的IP数据包的控制总线

wr_vld_0

1

O

输出有效

wr_rdy_0

1

I

发送数据允许标志

sram_addr

19

O

Sram读/写地址

sram_we

1

O

Sram写使能

sram_bw

4

O

SRAM写入控制信号

sram_wr_data

36

O

SRAM写数据总线

sram_rd_data

36

I

SRAM读数据总线

sram_tri_en

1

O

SRAM写三态控制

 

SRAM的读写时序如图3.4-22:

图3.4-22 SRAM读写时序

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭