数字系统接口设计(数字系统接口设计图)

网友投稿 329 2022-12-31


本篇文章给大家谈谈数字系统接口设计,以及数字系统接口设计图对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享数字系统接口设计的知识,其中也会对数字系统接口设计图进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

数字电路设计中,不同逻辑电平接口设计需要考虑哪些因素

首先应该考虑不同逻辑电平之间是否需要隔离,是否共地。

其次在设计时要详细参阅各个逻辑芯片的资料,以确定相连接的芯片间逻辑电平输出与输入的电压值是否可以兼容,最好不要恰好在临界值,会导致系统不稳定。

各芯片的输出端口电流驱动能力,是否可以满足需要?

基于fpga/cpld的数字系统设计流程包括哪些步骤

EDA技术的设计流程:

1、设计输入

用一定的逻辑表达手段表达出来。

2、逻辑综合

将用一定的逻辑表达手段表达出来的设计经过一系列的操作,分解成一系列的逻辑电路及对应关系(电路分解)。

3、目标器件的适配

在选用的目标器件中建立这些基本逻辑电路的对应关系(逻辑实现)。

4、目标器件的编程/下载

将前面的软件设计经过编程变成具体的设计系统(物理实现)。

5、仿真/硬件测试

验证所设计的系统是否符合要求。同时,再设计过程中要进行有关“仿真”,即模拟有关设计结果,验证是否与设计构想相符。


扩展资料:

基于fpga/cpld数字系统的设计规则:

1、分割准则

(1)、分割后最底层的逻辑块应适合用逻辑语言进行表达。

(2)、相似的功能应该设计成共享的基本模块。

(3)、接口信号尽可能少。

(4)、同层次的模块之间,在资源和i/o分配上,尽可能平衡,以便结构匀称。模快的划分和设计,尽可能做到通用性好,易于移植。

2、系统设计的可测性

具有系统的关键点信号,如时钟、同步信号和状态等信号;具有代表性的节点和线路上的信号等。

3、系统设计的重用性

(1)、设计者应该尽可能采用同步电路进行设计,系统中应该有时钟和复位信号。

(2)、fpga/cpld的结构可以提供一定数量的片上存储器块。

(3)、复杂、系统级芯片需要各种标准的i/o接口。

(4)、编码是数字系统设计者应该给予足够重视的一项工作。

4、最优化设计

由于可编程器件的逻辑资源、连接资源和i/o资源有限,器件的速度和性能也是有限的,用器件设计系统的过程相当于求最优解的过程。

5、可靠性设计

基于CPCI系统的高速数字通信接口电路设计与应用

基于CPCI系统的高速数字通信接口电路设计与应用

在CPCI系统环境下高速数字通信AFDX协议端系统接口的电路设计与功能实现。采用Verilog编程实现基于FPGA的硬件设计部分,采用C编程实现基于MicroBlaze的嵌入式软件设计。

0 引 言

随着通信技术的高速发展,嵌入式系统对数据传输速率的要求更高。在航空等军用电子设备中,实现信号处理算法的数字信号处理机,起着至关重要的作用。CPCI总线技术有效解决了高速互联问题。

20世纪90年代,PCI总线技术被广泛应用,但是它可靠性较低,无法满足对正常运行时间要求较高的高可用性系统。加之其主板连接器可靠性低,更换时易被损坏。CPCI的高带宽特点,决定了其适用于高速数据通信场合。随着国外著名计算机系统公司基于CPCI产品和方案的推广及PICMG/PRC对CPCI技术的宣传,我国工业控制领域越来越多地把CPCI应用于高性能嵌入式系统之中。本文研究了在CPCI系统环境下高速数字通信AFDX协议端系统接口的电路设计与功能实现。采用Verilog编程实现基于FPGA的硬件设计部分,采用C编程实现基于MicroBlaze的嵌入式软件设计。

1 基于FPGA的硬件设计

1.1 MAC模块、FIFO模块和MII模块

FIFO模块分为接收FIFO和发送FIFO,通过调用IP核来实现。本文所设计的MAC模块和FIFO模块的基本结构如图1所示。MAC核通过MII接口和PHY芯片进行外部通信,通过发送FIFO和接收FIFO进行FPGA内部数据的通信。

1.2 CRC模块

CRC模块通过检验数据的CRC值,判决接收的数据的正确性和有效性。在数据包被发送后,紧接着该数据包的4 B CRC也会被发送。接收者通过数据包和CRC数据就可以得出新的CRC值。若新CRC值为0,表明接收和发送的数据不一致,crc_error将会置1。其管脚定义如表2所示。

1.3 规整模块和冗余管理模块

规整模块根据每条VL的BAG,Lmax值,对其数据流进行规整。具体方式为:当该VL的BAG时间达到,且Jitter在最大抖动的范围内、帧长小于Lmax,则置FTT标识有效,此时多路复用器模块会申请对该VL进行调度;反之,不能对该VL进行调度。将固定带宽分配给每个VL,等价于把接收端与发送端之间的数据传输限制在一个BAG内,即在一个BAG内只有一次数据传输,如果数据包过大,将其分为多个帧进行发送,也将会在各自的BAG内进行发送。所以,为了保证任意时间段使用的带宽都是可以被确定的,必须把一个时间段合理地分配给不同的终端系统使用,规整器的输入输出示意图如图3所示。

从图3可看出,两个数据帧之间的长度大于BAG,那么正常接收;当两个数据帧之间的长度小于一个BAG,就将后一个数据帧移动到第二个BAG的起始位置。 在AFDX网络中,通过不同的AFDX网络交换机将两个互为冗余的帧传递到同一个目的端系统。只要交换机输出端口的输入流量大于输出流量,就必定会产生交换延迟。因为不同的交换机的交换延迟不是确定值,所以两个互为冗余的帧到达目的端的时间间隔也是不确定的。设计时,将SkewMax(最大偏斜)用于AFDX的接收冗余管理中以便对冗余帧的接收时间进行限制。冗余管理模块的功能是对接收帧的有效性进行验证,并将重复的有效帧进行消除。冗余管理模块的框图如图4所示。

1.4 发送和接收模块

发送数据的基本过程如下:要发送数据时,将待发送数据传输到MAC的发送缓存中,发送缓存接收到的数据达到设定值时,数据发送模块开始进行帧间隔计时;发送帧的前导码;发送帧起始定界符;帧长计数、CRC校验和计算,同时将数据按半位元组(4 b)发送给MII接口;在发送过程中,如果MAC检测到该帧的长度小于最小帧长(64 B),则进行数据填充达到64 B为止。

AFDX发送部分的状态机如图6所示,发送数据主要包括等待、数据长度检测、插入前导码和帧起始界定符、数据发送以及CRC校验结果状态。系统在工作的时候,一直处于wait状态,当需要发送数据的时候,状态机将进入下一个状态从而开始数据的发送。

接收为发送的反过程,首先对接收到的4位信息进行帧检测,当检测到前导码和帧起始定界符的时候,则认为一帧数据接收到了,然后开始对数据帧进行解析,得到帧数据中的各类数据信息。

AFDX接收过程如下:数据通过PHY芯片解码后进入到MAC 核,然后进入接收FIFO。当MAC接收到数据有效后,从MII接口读入数据后检测前导码和帧起始定界符,当检测到有效的帧起始定界符,就会开始对帧长进行计数。接收模块在接收数据的过程中将已接收到的帧的`前导域,SFD域,CRC域和PAD域进行剥离。

2 基于MicroBlaze的软件设计

2.1 设计说明

在MicroBlaze中将主要完成AFDX协议栈中UDP层和IP层的数据发送和接收部分,对数据进行封装、解析和控制。发送部分主要完成以下几个工作:当一个帧数据进入AFDX端口时,发送部分就开始对该帧数据进行封装,其中UDP层将对数据添加UDP头,包括源和目标UDP端口号。IP层将UDP层处理完的数据添加IP 包头和以太网头,然后送入虚链路层并添加序列号。接收部分主要完成如下几个工作:当一个帧信号通过PHY解码送入MAC后,通过接收FIFO送入AFDX接收模块,那么接收过程开始。在链路层首先对该帧信号进行完整性检测和冗余管理,然后进入IP层,进行IP 校验和检查,然后送入UDP层,通过多路分配器后将对应的帧数据发送出去,实现数据的解封装功能。

2.2 设计流程

基于MicroBlaze的系统设计需要分别对系统的硬件和软件进行协同编译。完成MicroBlaze的软件设计之后,将MicroBlaze作为ISE工程下的一个子模块进行调用。为了验证程序的正确性,利用ISE调用ModelSim对其进行仿真。具体做法是在ISE工程中添加一个以MicroBlaze处理器为基础的IP核,并编写测试文件,为处理器的输入信号提供激励,输出信号提供端口。

3 测试与验证

两个MAC核的仿真意义是相同的,所以针对第一个MAC核的仿真波形进行说明。mii_tx_en_0为帧使能信号,当MAC核正常工作时,有数据发送的时候该信号为1;当发送为0的时候,该信号使能为0,mii_txd_0为发送的数据。当有接收信号进入MAC核时,mii_rx_dv_0为高电平,对应的数据为接收的数据;当接收的数据发生错误时,mii_rx_er_0会出现高电平,如果接收到的数据没有发生错误,那么该信号为低电平。

在接收端,判断接收数据的CRC计算结果是否为0,如果为1,则表明接收过程中有CRC校验错误。CRC 校验模块的仿真结果如图11所示。由图11可以看出,对接收到的数据以及发送过来的这些数据的CRC 校验值(d19167bc)一起计算,计算出来的校验值为0,证明接收的数据没有问题。

规整模块的仿真数据如图12所示。此处接收到的数据位1,2,3,4,…是不等间隔的,通过规整之后输出的数据1,2,3,4是等间隔的,这个模块的初始输出数据是错误的,所以会重复输出第一帧的数据,后面将输出正确的数据。

主机要发送数据时,首先给MAC的发送缓存中发送数据。发送缓存接收到的数据与设定值相符时,开始进行长度检测,检测完成后,数据发送模块开始进行帧间隔计时。根据帧计数器的值开始发送帧的前导码、帧起始定界符,将4位数据发送给MII接口,最后把数据从物理层发送到网络介质上。发送模块的仿真结果如图13所示。

此处仿真波形的信号i_start_or_not为高电平时,AFDX 发送模块开始工作,i_data为需要发送的数据,i_data_number为需要发送数据的个数,i_aim_address 为发送信号的目标地址,i_orig_address为发送的源地址,i_head_ip为发送信号的IP头,i_head_udp为发送信号。当发送开始时,系统首先检测需要发送的数据长度,如果数据长度大于64,则开始发送,如果发送数据长度小于64,那么进行填充,补充到64为止。通过AFDX发送模块,得到发送的帧数据o_AFDX_data以及帧信号对应的帧使能信号o_afdx_frame,完成了数据的正常发送。

接收模块的仿真结果如图14所示。当外部数据通过PHY解码后进入MAC核,接收端开始进入接收状态机,首先检测前导码和帧起始界定符。如果检测正确,那么系统进入下一个状态。从图14的仿真结果可以看出,当检测完前导码和帧起始界定符时,current_state将进入下一个状态。然后开始接收数据,o_data就为接收到的数据。 4 结 论

本文在对航空全双工以太网(AFDX)协议深入研究的基础上,介绍了一种通用信号处理平台中的一块AFDX接口板卡,该板卡扣在相应的XMC载卡上应用于CPCI系统中。该板卡XMC传输速率为3.125 Gb/s,可高速传输RapidIO协议数据,兼容32 b PCI接口和LINK口协议。由于该板卡支持多种接口模式的背板,为各种高速板卡之间的互联提供了平台。

基于AFDX接口板卡,采用FPGA设计了一种AFDX端系统接口功能的实现方法,该方法基于FPGA的硬件设计和基于MicroBlaze的嵌入式软件设计,采用FPGA和PHY芯片实现End System端的AFDX接口,完成传输层(UDP)、网络层(IP)、链路层(Virtual Link)及物理层(PHY)四层协议数据传输,使得该接口具备实时、可靠传输AFDX 数据的能力。由于该网络协议比较复杂,开发设计具有一定难度。本文的设计基本实现了AFDX端系统的接口发送和接收功能,基本达到了预期目标。AFDX端系统作为AFDX网络协议的重要组成部分,为航空电子系统提供了安全可靠的数据交换服务接口,今后必会得到更加广泛的应用。

;

什么是数字系统的自上而下的设计方法

自上而下的设计方法从系统设计开始,逐渐向模块设计、器件设计和版图设计等更物理的层次推进。系统设计是将设计要求在系统一级对功能和性能(技术指标)进行描述,并将系统划分成不同功能的子系统,同时确定各子系统之间的接口关系;模块设计是在子系统一级描述电路模块的功能,将子系统划分成更细的逻辑模块;器件设计是将逻辑模块的功能采用通用集成电路或者ASIC来实现;版图设计则包含ASIC芯片版图设计和PCB版图设计。

Verilog数字系统设计教程的作品目录

第一部分 Verilog数字设计基础
第1章 Verilog的基本知识
1.1 硬件描述语言HDL
1.2 Verilog HDL的历史
1.2.1 什么是Verilog HDL
1.2.2 Verilog HDL的产生及发展
1.3 Verilog HDL和 VHDL的比较
1.4 Verilog的应用情况和适用的设计
1.5 采用Verilog HDL设计复杂数字电路的优点
1.5.1 传统设计方法——电路原理图输入法
1.5.2 Verilog HDL设计法与传统的电路原理图输入法的比较
1.5.3 Verilog的标准化与软核的重用
1.5.4 软核、固核和硬核的概念及其重用
1.6 采用硬件描述语言(Verilog HDL)的设计流程简介
1.6.1 自顶向下(Top_Down)设计的基本概念
1.6.2 层次管理的基本概念
1.6.3 具体模块的设计编译和仿真的过程
1.6.4 具体工艺器件的优化、映像和布局布线
小结
思考题
第2章 Verilog语法的基本概念
概述
2.1 Verilog模块的基本概念
2.2 Verilog用于模块的测试
小结
思考题
第3章 模块的结构、数据类型、变量和基本运算符号
概述
3.1 模块的结构
3.1.1 模块的端口定义
3.1.2 模块内容
3.1.3 理解要点
3.1.4 要点总结
3.2 数据类型及其常量和变量
3.2.1 常量
3.2.2 变量
3.3 运算符及表达式
3.3.1 基本的算术运算符
3.3.2 位运算符
小结
思考题
第4章 运算符、赋值语句和结构说明语句
概述
4.1 逻辑运算符
4.2 关系运算符
4.3 等式运算符
4.4 移位运算符
4.5 位拼接运算符
4.6 缩减运算符
4.7 优先级别
4.8 关 键 词
4.9 赋值语句和块语句
4.9.1 赋值语句
4.9.2 块语句
小结
思考题
第5章 条件语句、循环语句、块语句与生成语句
概述
5.1 条件语句(if_else语句)
5.2 case语句
5.3 条件语句的语法
5.4 多路分支语句
5.5 循环语句
5.5.1 forever语句
5.5.2 repeat语句
5.5.3 while语句
5.5.4 for语句
5.6 顺序块和并行块
5.6.1 块语句的类型
5.6.2 块语句的特点
5.7 生成块
5.7.1 循环生成语句
5.7.2 条件生成语句
5.7.3 case生成语句
5.8举例
5.8.1 四选一多路选择器
5.8.2 四位计数器
小结
思考题
第6章 结构语句、系统任务、函数语句和显示系统任务
概述
6.1 结构说明语句
6.1.1 initial语句
6.1.2 always语句
6.2 task和function说明语句
6.2.1 task和function说明语句的不同点
6.2.2 task说明语句
6.2.3 function说明语句
6.2.4 函数的使用举例
6.2.5 自动(递归)函数
6.2.6 常量函数
6.2.7 带符号函数
6.3 关于使用任务和函数的小结
6.4 常用的系统任务
6.4.1 $display和$write任务
6.4.2 文件输出
6.4.3 显示层次
6.4.4 选通显示
6.4.5 值变转储文件
6.5 其他系统函数和任务
小结
思考题
第7章 调试用系统任务和常用编译预处理语句
概述
7.1 系统任务 $monitor
7.2 时间度量系统函数$time
7.3 系统任务$finish
7.4 系统任务$stop
7.5 系统任务$readmemb和$readmemh
7.6 系统任务 $random
7.7 编译预处理
7.7.1 宏定义?define
7.7.2 文件包含处理?include
7.7.3 时间尺度?timescale
7.7.4 条件编译命令?ifdef、?else、?endif
7.7.5 条件执行
小结
思考题
第8章 语法概念总复习练习
概述
小结
第二部分 设计和验证部分
第9章 Verilog HDL模型的不同抽象级别
概述
9.1 门级结构描述
9.1.1 与非门、或门和反向器及其说明语法
9.1.2 用门级结构描述D触发器
9.1.3 由已经设计成的模块构成更高一层的模块
9.2 Verilog HDL的行为描述建模
9.2.1 仅用于产生仿真测试信号的Verilog HDL行为描述建模
9.2.2 Verilog HDL建模在TopDown设计中的作用和行为建模的可综合性问题
9.3 用户定义的原语
小结
思考题
第10章 如何编写和验证简单的纯组合逻辑模块
概述
10.1 加法器
10.2 乘法器
10.3 比较器
10.4 多路器
10.5 总线和总线操作
10.6 流水线
小结
思考题
第11章 复杂数字系统的构成
概述
11.1 运算部件和数据流动的控制逻辑
11.1.1 数字逻辑电路的种类
11.1.2 数字逻辑电路的构成
11.2 数据在寄存器中的暂时保存
11.3 数据流动的控制
11.4 在Verilog HDL设计中启用同步时序逻辑
11.5 数据接口的同步方法
小结
思考题
第12章 同步状态机的原理、结构和设计
概述
12.1 状态机的结构
12.2 Mealy状态机和Moore状态机的不同点
12.3 如何用Verilog来描述可综合的状态机
12.3.1 用可综合Verilog模块设计状态机的典型办法
12.3.2 用可综合的Verilog模块设计、用独热码表示状态的状态机
12.3.3 用可综合的Verilog模块设计、由输出指定的码表示状态的状态机
12.3.4 用可综合的Verilog模块设计复杂的多输出状态机时常用的方法
小结
思考题
第13章 设计可综合的状态机的指导原则
概述
13.1 用Verilog HDL语言设计可综合的状态机的指导原则
13.2 典型的状态机实例
13.3 综合的一般原则
13.4 语言指导原则
13.5 可综合风格的Verilog HDL模块实例
13.5.1 组合逻辑电路设计实例
13.5.2 时序逻辑电路设计实例
13.6 状态机的置位与复位
13.6.1 状态机的异步置位与复位
13.6.2 状态机的同步置位与复位
小结
思考题
第14章 深入理解阻塞和非阻塞赋值的不同
概述
14.1 阻塞和非阻塞赋值的异同
14.1.1 阻塞赋值
14.1.2 非阻塞赋值
14.2 Verilog模块编程要点
14.3 Verilog的层次化事件队列
14.4 自触发always块
14.5 移位寄存器模型
14.6 阻塞赋值及一些简单的例子
14.7 时序反馈移位寄存器建模
14.8 组合逻辑建模时应使用阻塞赋值
14.9 时序和组合的混合逻辑——使用非阻塞赋值
14.10 其他阻塞和非阻塞混合使用的原则
14.11 对同一变量进行多次赋值
14.12 常见的对于非阻塞赋值的误解
小结
思考题
第15章 较复杂时序逻辑电路设计实践
概述
小结
思考题
第16章 复杂时序逻辑电路设计实践
概述
16.1 二线制I2C CMOS串行EEPROM的简单介绍
16.2 I2C总线特征介绍
16.3 二线制I2C CMOS串行EEPROM的读写操作
16.4 EEPROM的Verilog HDL程序
总结
思考题
第17章 简化的 RISC_CPU设计
概述
17.1 课题的来由和设计环境介绍
17.2 什么是CPU
17.3 RISC_CPU结构
17.3.1 时钟发生器
17.3.2 指令寄存器
17.3.3 累加器
17.3.4 算术运算器
17.3.5 数据控制器
17.3.6 地址多路器
17.3.7 程序计数器
17.3.8 状态控制器
17.3.9 外围模块
17.4 RISC_CPU 操作和时序
17.4.1 系统的复位和启动操作
17.4.2 总线读操作
17.4.3 总线写操作
17.5 RISC_CPU寻址方式和指令系统
17.6 RISC_CPU模块的调试
17.6.1 RISC_CPU模块的前仿真
17.6.2 RISC_CPU模块的综合
17.6.3 RISC_CPU模块的优化和布局布线
小结
思考题
第18章 虚拟器件/接口、IP和基于平台的设计方法及其在大型数字系统设计中的作用
概述
18.1 软核和硬核、宏单元、虚拟器件、设计和验证IP以及基于平台的设计方法
18.2 设计和验证IP供应商
18.3 虚拟模块的设计
18.4 虚拟接口模块的实例
小结
思考题
第三部分 设计示范与实验练习
概述
练习一 简单的组合逻辑设计
练习二 简单分频时序逻辑电路的设计
练习三 利用条件语句实现计数分频时序电路
练习四 阻塞赋值与非阻塞赋值的区别
练习五 用always块实现较复杂的组合逻辑电路
练习六 在Verilog HDL中使用函数
练习七 在Verilog HDL中使用任务(task)
练习八 利用有限状态机进行时序逻辑的设计
练习九 利用状态机实现比较复杂的接口设计
练习十 通过模块实例调用实现大型系统的设计
练习十一 简单卷积器的设计
附录一 A/D转换器的Verilog HDL模型机所需要的技术参数
附录二 2K*8位 异步 CMOS 静态RAM HM65162模型
练习十二 利用SRAM设计一个FIFO
第四部分 语法篇
语法篇1 关于Verilog HDL的说明
一、 关于 IEEE 1364标准
二、 Verilog简介
三、 语法总结
四、 编写Verilog HDL源代码的标准
五、 设计流程
语法篇2 Verilog硬件描述语言参考手册
一、 Verilog HDL语句与常用标志符(按字母顺序排列)
二、 系统任务和函数(System task and function)
三、 常用系统任务和函数的详细使用说明
四、 Command Line Options 命令行的可选项
五、 IEEE Verilog 13642001标准简介
参考文献

数字电路设计的内容简介:

《数字电路设计》是“图解实用电子技术丛书”之一。《数字电路设计》从数字电路与模拟电路的区别入手,介绍数字电路和数字IC,基本元件AND、0R、NOT的动作,触发器,计数器,定时器与时钟电路的制作,移位寄存器,高性能组合电路,基本接口,绝缘接口,由HDL组成的数字电路设计等。

关于数字系统接口设计和数字系统接口设计图的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 数字系统接口设计的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于数字系统接口设计图、数字系统接口设计的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:微服务网关用什么开发(什么是微服务网关)
下一篇:开源 api网关(api网关的作用)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~