14、硬件语言中的并发系统建模与FPGA实现

硬件语言中的并发系统建模与FPGA实现

1. 并发交通灯系统主模块建模

在硬件语言建模并发系统时,以交通灯系统为例,主模块会将各个组件连接起来。以下是分解后的交通灯系统主模块的Verilog代码:

module traffic_lights_simple_dec
(GC ,YC ,RC ,GP ,RP ,req
,clk , reset );

output GC ,YC ,RC ,GP ,RP;
input req;
input clk , reset ;

wire z [1:5];

S1 SMC1 (GC ,YC ,RC ,z[1] ,z[3] , req ,z[2] , clk , reset );
S2 SMC2 (GP ,z[2] ,z[5] , req ,z[1] ,z[3] ,z[4] , clk ,
reset );
S3 SMC3 (RP ,z[4] , req ,z[2] ,z[5] , clk , reset );

endmodule

此代码展示了如何在Verilog中描述分解后的交通灯系统主模块,通过模块实例化将不同组件连接,以实现整个系统的功能。

2. 可编程设备简介

可编程设备的发展历程悠久,其起源可追溯到20世纪40年代末。当时,第一只晶体管以点接触式锗器件的形式被原型化,这一发明为后续逻辑器件的发展奠定了基础。

2.1 早期数字电路发展

  • 晶体管 - 晶体管逻辑(TTL)设备 :20世纪50年代,第一批数字门和电路——TTL设备得以发展。这些设备最多包含十六个输入/输出引脚,每个引脚执行简单的数字功能。例如,7400设备包含四个2输入与非门,7404包含六个非反相器。
  • 专用集成电路(ASIC) :TTL电路是最早被称为ASIC的设备。这类设备的逻辑功能固定且不可更改,最初包含专用逻辑值,无法重新配置。如今,ASIC通常指由单一公司开发、设计用于特定性能的电路。

2.2 可编程逻辑设备(PLD)

20世纪70年代,可编程逻辑设备(PLD)被引入。PLD由固定的与(或)函数阵列驱动可编程的或(与)函数阵列构成。最初用于实现简单的组合逻辑,后来增加了寄存器和三态输出。

PLD主要分为以下三类:
| 类型 | 特点 |
| ---- | ---- |
| 可编程只读存储器(PROM) | - |
| 可编程逻辑阵列(PLA) | - |
| 可编程阵列逻辑(PAL) | - |

它们的主要区别在于结构(固定/可编程的与/或门阵列)、速度和可配置性。

2.3 复杂可编程逻辑设备(CPLD)

20世纪80年代初,出现了CPLD。典型的CPLD由小的PLD块(也称为简单可编程逻辑设备,SPLD)通过互连阵列连接而成。不同厂商的CPLD制造技术有所不同,但核心思想一致,即所有可编程宏单元(和SPLD)共享公共互连阵列。

宏单元通常包含与 - 或矩阵,还包括可编程触发器和逻辑元件(如多路复用器、异或门)。由于宏单元围绕互连阵列,因此具有完全可配置性,但对于大型复杂功能,可能需要进行分解。

2.4 现场可编程门阵列(FPGA)

20世纪80年代中期,FPGA被引入。典型的FPGA由可编程逻辑块矩阵组成,其结构(逻辑块被可编程互连“海洋”包围)、高性能和高度可配置性(甚至具有部分重新配置的可能性)使其在生活的各个方面得到应用,如医学、密码学、航空航天工程、图像处理、可重构计算、测量以及并发控制系统等。

3. 现场可编程门阵列(FPGA)结构

3.1 FPGA总体结构

FPGA的主要核心是可配置逻辑块(CLB)矩阵,CLB按行和列排列,通过可编程互连连接。此外,设备中还包含额外的存储块——块RAM(BRAM),与外界的通信通过输入/输出(I/O)块实现。

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A(Block RAMs):::process --> B(CLBs):::process
    C(CLBs):::process --> B
    D(CLBs):::process --> B
    E(CLBs):::process --> B
    F(CLBs):::process --> B
    G(I/O Blocks):::process --> B

3.2 BRAM和I/O块

  • BRAM :也称为专用存储块,是FPGA中的一部分存储元素。其主要优点是可配置性和大小,例如,Virtex - 5 FPGA中的BRAM能够存储多达36K位的数据。每个存储块可独立配置,通常位于列中,可从组合逻辑(CLB)相对快速地访问,无需额外延迟。需要注意的是,Xilinx的块RAM是同步的,因此需要提供时钟信号。
  • I/O块 :确保FPGA与原型系统其他元素之间的连接,其重要作用是保证适当的电源供应标准。I/O块组织成银行,每个银行可独立配置,因此可根据标准或电压需求使用不同的I/O标准。

3.3 CLB结构演变

  • 早期CLB :早期的CLB包含一个简单的多路复用器、一个触发器和一个3输入查找表(LUT)。LUT能够执行最多三个输入和一个输出的任何组合逻辑功能,每个LUT与存储元素(触发器)和多路复用器连接,可实现顺序逻辑。
  • 4输入LUT的CLB :后来引入了4输入LUT,为Xilinx的Spartan - 3E或Virtex - II Pro等系列提供了基础。此时,CLB结构发生变化,每个块被分为四个互连的元素,称为切片,切片成对分组,按列组织,具有独立的进位链。
  • Virtex - 5 FPGA的CLB :从5系列FPGA开始,每个CLB被分为两个切片,一个位于底部,另一个位于顶部,两个切片连接到公共可编程互连矩阵。切片按行和列组织,每个切片的位置由“X”和“Y”坐标表示。

Virtex - 5 FPGA的典型切片结构包含:
- 四个6输入查找表
- 四个存储元素(配置为D型触发器或锁存器)
- 多路复用器
- 进位和算术逻辑

其中,有两种类型的切片:典型的SliceL和支持额外功能(如存储数据作为分布式随机存取存储器或移位寄存器)的SliceM。每个LUT有六个独立输入和两个独立输出,输出性能取决于实现的逻辑功能类型。

4. FPGA中并发控制系统的实现

4.1 实现流程概述

在FPGA中实现并发控制系统,通常基于硬件语言对系统的描述,经过逻辑综合、逻辑实现和位流生成等步骤,最终对FPGA进行物理配置。

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A(系统描述):::process --> B(逻辑综合):::process
    B --> C(逻辑实现):::process
    C --> D(位流生成):::process
    D --> E(FPGA配置):::process

4.2 逻辑综合

逻辑综合是将控制器转换为特定网表文件的过程,即将设计转换为门级表示。生成的网表可以有多种格式,这里使用原生通用电路(NGC)格式。并且,原型系统的特定模块可以单独合成,生成独立的NGC文件,这一特性在并发控制系统的部分重新配置中会被用到。综合过程还可以估算实现系统(或特定模块)所需的硬件资源,以目标FPGA中使用的切片LUT和切片触发器表示。

4.3 逻辑实现

逻辑实现包括三个主要子阶段:
1. 转换(Translate) :合并综合过程中获得的所有网表,以目标设备的原语形式生成系统的逻辑描述。此时需要提供约束数据,这些数据包含特定输入/输出信号的放置、I/O标准和电压的定义、时钟信号的时序等信息,通常在用户约束文件(UCF)中指定。
2. 映射(Map) :将原型系统分布到目标FPGA上。
3. 布局和布线(Place and Route) :进行设计的布局和布线,并验证时序约束,以满足用户的期望。

4.4 位流生成

位流生成会产生用于配置目标设备的数据部分。在传统原型设计步骤(无部分重新配置)中,该文件包含FPGA的完整描述。典型的位流文件大小超过一百万位,例如,XC5VLX50(Virtex - 5系列,ML501评估和开发平台的一部分)需要1,569,676位来配置设备。每次设计师准备新的并发控制系统版本时,都需要将这些数据发送到FPGA。不过,有一种技术可以减小配置文件的大小,甚至可以在不影响FPGA其余部分的情况下更换设备的一部分。

5. 并发控制器的部分重新配置

5.1 部分重新配置概念概述

部分重新配置是指在不影响FPGA其他部分的情况下,对并发控制系统的一部分进行重新配置。这一技术可以减小配置文件的大小,提高系统的灵活性和可维护性。

5.2 两种部分重新配置流程

提出了两种新的并发控制系统原型设计流程:
- 静态部分重新配置 :在系统运行前进行部分重新配置。
- 动态部分重新配置 :在系统运行过程中进行部分重新配置。

这两种技术都通过解释Petri网指定的系统示例进行说明。通过部分重新配置,可以在不重新配置整个FPGA的情况下,更新系统的部分功能,从而提高系统的效率和灵活性。

5.3 静态部分重新配置流程

静态部分重新配置是在系统运行前进行的,以下是其具体的操作步骤:
1. 系统分析与模块划分 :对并发控制系统进行详细分析,确定需要进行部分重新配置的模块。这些模块应该具有相对独立的功能,以便在不影响其他部分的情况下进行修改。
2. 独立模块综合 :将需要重新配置的模块单独进行逻辑综合,生成独立的网表文件(如NGC格式)。这样可以确保在重新配置时只更新这些模块的配置信息。
3. 生成部分配置文件 :根据独立模块的网表文件,生成部分配置文件。这些文件只包含需要重新配置的模块的信息,从而减小了配置文件的大小。
4. 系统配置 :在系统启动前,将部分配置文件加载到FPGA中,完成部分重新配置。

5.4 动态部分重新配置流程

动态部分重新配置是在系统运行过程中进行的,其操作步骤如下:
1. 实时监测与需求判断 :在系统运行过程中,实时监测系统的状态和需求。当满足部分重新配置的条件时,触发重新配置操作。
2. 暂停系统部分功能 :为了确保重新配置的安全性,需要暂停与重新配置模块相关的部分系统功能。
3. 加载部分配置文件 :将预先生成的部分配置文件加载到FPGA中,更新相应模块的配置。
4. 恢复系统功能 :重新配置完成后,恢复之前暂停的系统功能,使系统继续正常运行。

5.5 部分重新配置的优势与应用场景

部分重新配置技术具有以下优势:
| 优势 | 说明 |
| ---- | ---- |
| 减小配置文件大小 | 只更新需要修改的部分,减少了数据传输量和配置时间。 |
| 提高系统灵活性 | 可以在不重新配置整个FPGA的情况下,快速更新系统的部分功能。 |
| 增强系统可维护性 | 便于对系统进行局部修改和升级,降低了维护成本。 |

部分重新配置技术适用于以下应用场景:
- 实时系统 :在实时系统中,需要根据不同的任务需求快速调整系统的功能。部分重新配置可以在不影响系统实时性的情况下,实现功能的动态调整。
- 可重构计算 :可重构计算系统需要根据不同的计算任务重新配置硬件资源。部分重新配置可以提高资源的利用率,降低能耗。
- 系统升级与维护 :在系统的生命周期内,可能需要对部分功能进行升级或修复。部分重新配置可以在不中断系统运行的情况下,实现系统的局部更新。

6. 总结与展望

6.1 技术总结

本文介绍了硬件语言中并发系统的建模以及在FPGA中的实现,包括可编程设备的发展历程、FPGA的结构、并发控制系统的实现流程和部分重新配置技术。具体内容如下:
- 可编程设备 :从早期的ASIC到PLD、CPLD和FPGA,可编程设备的功能和可配置性不断提高。
- FPGA结构 :FPGA由CLB、BRAM和I/O块组成,其高度可配置性使其在多个领域得到广泛应用。
- 并发控制系统实现 :通过逻辑综合、逻辑实现和位流生成等步骤,将并发控制系统在FPGA中实现。
- 部分重新配置 :静态和动态部分重新配置技术可以减小配置文件大小,提高系统的灵活性和可维护性。

6.2 未来展望

随着科技的不断发展,并发控制系统和FPGA技术将面临更多的挑战和机遇。未来的发展方向可能包括:
- 更高的集成度和性能 :FPGA将朝着更高的集成度和性能发展,以满足更复杂的应用需求。
- 智能化配置 :实现智能化的部分重新配置,根据系统的实时状态自动调整配置,提高系统的自适应能力。
- 跨领域应用拓展 :将并发控制系统和FPGA技术应用到更多的领域,如人工智能、物联网等,推动这些领域的发展。

总之,并发控制系统在FPGA中的实现和部分重新配置技术具有广阔的应用前景,将为未来的科技发展带来更多的可能性。

随着信息技术在管理上越来越深入而广泛的应用,作为学校以及一些培训机构,都在用信息化战术来部署线上学习以及线上考试,可以线下的考试有机的结合在一起,实现基于SSM的小码创客教育教学资源库的设计实现在技术上已成熟。本文介绍了基于SSM的小码创客教育教学资源库的设计实现的开发全过程。通过分析企业对于基于SSM的小码创客教育教学资源库的设计实现的需求,创建了一个计算机管理基于SSM的小码创客教育教学资源库的设计实现的方案。文章介绍了基于SSM的小码创客教育教学资源库的设计实现系统分析部分,包括可行性分析等,系统设计部分主要介绍了系统功能设计和数据库设计。 本基于SSM的小码创客教育教学资源库的设计实现有管理员,校长,教师,学员四个角色。管理员可以管理校长,教师,学员等基本信息,校长角色除了校长管理之外,其他管理员可以操作的校长角色都可以操作。教师可以发布论坛,课件,视频,作业,学员可以查看和下载所有发布的信息,还可以上传作业。因而具有一定的实用性。 本站是一个B/S模式系统,采用Java的SSM框架作为开发技术,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得基于SSM的小码创客教育教学资源库的设计实现管理工作系统化、规范化。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值