基于FPGA的计算机运算器

2014-12-13 08:56祝元兴粘子雄谢艺婷
数字技术与应用 2014年8期
关键词:实验平台

祝元兴++粘子雄++谢艺婷

摘要:为了适应目前学院对计算机组成原理实验平台的要求,开发了一个基于FPGA的计算机运算器,用软件的思想来模拟硬件的功能,利用FPGA芯片模拟8位字长运算器,可实现多种算术运算和逻辑运算并显示。用手动开关给出控制信号来控制运算器的运行,通过观察数据灯、地址灯、状态灯来了解运算器运行情况。该文主要讨论了系统的下位机硬件设计和上下位机的通讯设计。

关键词:FPGA 运算器 实验平台 下位机

中图分类号:TP301-4;TN791 文献标识码:A 文章编号:1007-9416(2014)08-0101-02

目前福建省内还没有高校自主研发的计算机专业体系实验平台,所有的相关实验装置都是从省外购买,购买成本高,难于维护,可移动性差。再加上我们学院的计算机组成原理实验设备结构比较老旧,硬件结构和电路设计比较复杂,体积大,不够灵活,难于扩展和维护等不足,所以研制一种体积小、成本低、实验环境要求不高实验装置是迫切需求的。

基于FPGA的计算机运算器,可以满足计算机组成原理实践课程的部分教学需要,是组成原理实验平台的一部分。该运算器适用教师教学环节,有是面向学生服务的平台,本系统构建可扩展、易维护、灵活性强,实验成本低,适用面广。可通过本项目的开发,在该实验平台的基础上继续开发增加其他计算机的组成模块,满足计算机组成原理实践课程的教学需要,可为计算机工程系相关课程提供一个教学应用平台。并有利我省高校在计算机专业的硬件课程体系实验教学上的改革和提升。

1 系统简介

系统最大的特点就是运用了软件的思想来模拟硬件的功能,完成运算器的算术或逻辑运算,系统设计以学生可以进行计算机组成原理实验为主,让学生从软件和硬件都得到了很好的锻炼。如图1所示,本实验平台包括三部分:下位机、上位机、上下位机之间的通信。

本系统提供脱机、PC联机两种操作方式,灵活方便,通过RS-232通讯接口与计算机联机使用。上位机是基于WIN2000、WINXP等操作系统的联机软件,界面友好,可完成对程序的编辑、下载、读出和保存,并可实时监控实验系统的运行情况,检测实验连线的正确性。生动直观的模拟数据流向及数据、控制线的各种信息,使学生更易理解计算机运算器的组成结构和工作过程。下位机是基于FPGA的开发板和自己设计的输入和输出信号扩展PCB板板所组成,用来构成实验平台的硬件部分。

2 下位机的设计

整个下位机是利用FPGA的开发板Altera DEO开发板架构运算器的功能,利用扩展板来实现数据、控制信号的输入和结果输出。本系统机器字长为8位,即该运算器可以同时进行2个8位二进制数的运算,既数据总线为8位。整个下位机采用功能模块化设计,通过对模块进行功能仿真,可以模拟运算器的工作过程。各模块的组合如图2所示。

2.1 各模块的功能设计

各模块的实现是通过FPGA来模拟,把程序嵌入到FPGA中,用FPGA来模拟硬件功能,留出相应的控制信号和输入输出信号接口,让学生有动手的操作过程,同时又节省了ALU、锁存器和寄存器的硬件电路,适合于应用在教学实践课中。

ALU是整个运算器的核心模块,利用FPGA来模拟实现八位的算术逻辑运算单元ALU的功能。这里的ALU功能是模拟74L181的功能,它可以进行2个8位二进制数的算术逻辑运算,各种工作方式可通过设置其控制信号来实现(S0、 S1、 S2、S3、M、CN)。Altera DEO开发板的P0.16~P0.21接扩展板的开关电路,作为运算器的控制信号 S0、 S1、 S2、S3、M、CN。当实验者正确设置了ALU的各个控制信号,就可以把两个操作数进行相应的运算并输出。通过QuartusⅡ编译生成ALU功能的实现电路如图3所示。

数据输入锁存器DR1和DR2的功能是锁存数据,用来锁存参与运算的两个操作数,使他们都稳定地出现在ALU的输入端,为ALU运算做准备。DR1和DR2什么时候锁存呢,在设计的时候,用VHDL语言来编译锁存器功能,EDR1为低电平,并且D1CK有上升沿时,把来自数据总线的数据打入锁存器DR1。同样使EDR2为低电平、D2CK有上升沿时把数据总线上的数据打入数据锁存器DR2。

在实验中为了避免数据总线上的数据发生冲突,连接在总线上的数据只能分时传送,数据缓冲器SDR对信息起暂存作用。ALU运算完后没有立即把结果输出至总线,是通过数据缓冲寄存器根据其具体的需求来运送到数据总线上,缓冲器是用FPGA模拟74L244的功能。输出缓冲器SDR当控制信号ALU-O为低电平时,SDR导通,把ALU的运算结果输出到数据总线,当ALU-O为高电平时,SDR的输出为高阻。ALU-O为SDR的输出控制信号。

2.2 各模块的整合设计

具体的模块整合的实现是把三个可以独立运行的功能文件放置在同一个文件夹中,再利用QuartusⅡ新建模块文件,导入涉及到的所有模块最后进行模块间的连线和定义来实现,如图4所示。

在新建的NEW1模块中分别导入DR1和DR2、ALU和SDR的功能电路图,以及若干的INPUT和OUTPUT插件。根据插件和定义两端的参数信息进行连线,有需要注意的是在锁存器的输入中定义了相同的管脚来作为控制信号,内部的连接不需要加单独的插件,只需要定义下参数即可。

2.3 输入输出扩展板

系统设计的输入和输出扩展PCB板中有手动输入单元、输出单元。手动输入单元主要由24个拨动开关组成,往上拨开关表示输出高电平1,往下拨开发表示输出低电平0,这24个开关可以为系统提供所需要的数据信息和控制信号信息。输出单元主要是由LED灯组成的,作为数据线上的数据状态的表示灯,灯亮表示数据为1,灯灭表示数据为0。

做实验时,用杜邦线把FPGA的相应的引脚连接到PCB板,,通过波动开关设置参与运算的数据,相应的控制信号状态,就可以通过数据总线的LED观察运算器的运算结果。

3 上下位机的通讯协议设计

上位机可以监视下位机运行的状态等,这里采用的是串行通讯。在串行通讯时,要求通讯双方都采用一个标准接口,使不同 的设备可以方便地连接起来进行通讯。RS-232-C接口(又称 EIA RS-232-C)是目前比较常用的一种串行通讯接口。RS-232是为点对点(即只用一对收、发设备)通讯而设计的,RS-232适合本地设备之间的通信。所以我们的实验平台采用RS-232通讯。

上下位机通讯的实质主要是双方要规定好传输的数据格式,采用异步串行通讯格式,采用一个起始位、数据位、一位检验位、一位停止位。整个通讯过程我们要确保上下位机数据同步、操作同步。

4 结语

本系统与现有的计算机组成原理运算器模块相比较,成本低、体积小、移动性强、维护方便,容易升级和扩展等优势。该系统不仅可以满足计算机组成原理实践课程的部分教学需要,可以适应提高学生的创新能力和动手实践能力的教学要求。在该实验平台的基础上继续开发增加其他计算机的组成模块,满足计算机组成原理实践课程的教学需要,可应用在一般高校,并有利我省高校在计算机专业的硬件课程体系实验教学上的改革和提升。

参考文献

[1]胡科.基于FPGA的VHDL计算机组成实验平台的设计与实现[D].上海:华东师范大学电子信息系,2007.

[2]陈志勇.计算机组成系统实验的改革与实践[J].电气电子教学学报,2007,29(5):74-78.

[3]徐晨,顾晖.应用EDA技术改革计算机组成原理实验教学[J].电气电子教学学报,2004,26(5):66-69.

[4]周宁宁.基于FPGA技术的计算机组成原理实验系统[J].现代电子技术,2005,28(1):23-25.endprint

摘要:为了适应目前学院对计算机组成原理实验平台的要求,开发了一个基于FPGA的计算机运算器,用软件的思想来模拟硬件的功能,利用FPGA芯片模拟8位字长运算器,可实现多种算术运算和逻辑运算并显示。用手动开关给出控制信号来控制运算器的运行,通过观察数据灯、地址灯、状态灯来了解运算器运行情况。该文主要讨论了系统的下位机硬件设计和上下位机的通讯设计。

关键词:FPGA 运算器 实验平台 下位机

中图分类号:TP301-4;TN791 文献标识码:A 文章编号:1007-9416(2014)08-0101-02

目前福建省内还没有高校自主研发的计算机专业体系实验平台,所有的相关实验装置都是从省外购买,购买成本高,难于维护,可移动性差。再加上我们学院的计算机组成原理实验设备结构比较老旧,硬件结构和电路设计比较复杂,体积大,不够灵活,难于扩展和维护等不足,所以研制一种体积小、成本低、实验环境要求不高实验装置是迫切需求的。

基于FPGA的计算机运算器,可以满足计算机组成原理实践课程的部分教学需要,是组成原理实验平台的一部分。该运算器适用教师教学环节,有是面向学生服务的平台,本系统构建可扩展、易维护、灵活性强,实验成本低,适用面广。可通过本项目的开发,在该实验平台的基础上继续开发增加其他计算机的组成模块,满足计算机组成原理实践课程的教学需要,可为计算机工程系相关课程提供一个教学应用平台。并有利我省高校在计算机专业的硬件课程体系实验教学上的改革和提升。

1 系统简介

系统最大的特点就是运用了软件的思想来模拟硬件的功能,完成运算器的算术或逻辑运算,系统设计以学生可以进行计算机组成原理实验为主,让学生从软件和硬件都得到了很好的锻炼。如图1所示,本实验平台包括三部分:下位机、上位机、上下位机之间的通信。

本系统提供脱机、PC联机两种操作方式,灵活方便,通过RS-232通讯接口与计算机联机使用。上位机是基于WIN2000、WINXP等操作系统的联机软件,界面友好,可完成对程序的编辑、下载、读出和保存,并可实时监控实验系统的运行情况,检测实验连线的正确性。生动直观的模拟数据流向及数据、控制线的各种信息,使学生更易理解计算机运算器的组成结构和工作过程。下位机是基于FPGA的开发板和自己设计的输入和输出信号扩展PCB板板所组成,用来构成实验平台的硬件部分。

2 下位机的设计

整个下位机是利用FPGA的开发板Altera DEO开发板架构运算器的功能,利用扩展板来实现数据、控制信号的输入和结果输出。本系统机器字长为8位,即该运算器可以同时进行2个8位二进制数的运算,既数据总线为8位。整个下位机采用功能模块化设计,通过对模块进行功能仿真,可以模拟运算器的工作过程。各模块的组合如图2所示。

2.1 各模块的功能设计

各模块的实现是通过FPGA来模拟,把程序嵌入到FPGA中,用FPGA来模拟硬件功能,留出相应的控制信号和输入输出信号接口,让学生有动手的操作过程,同时又节省了ALU、锁存器和寄存器的硬件电路,适合于应用在教学实践课中。

ALU是整个运算器的核心模块,利用FPGA来模拟实现八位的算术逻辑运算单元ALU的功能。这里的ALU功能是模拟74L181的功能,它可以进行2个8位二进制数的算术逻辑运算,各种工作方式可通过设置其控制信号来实现(S0、 S1、 S2、S3、M、CN)。Altera DEO开发板的P0.16~P0.21接扩展板的开关电路,作为运算器的控制信号 S0、 S1、 S2、S3、M、CN。当实验者正确设置了ALU的各个控制信号,就可以把两个操作数进行相应的运算并输出。通过QuartusⅡ编译生成ALU功能的实现电路如图3所示。

数据输入锁存器DR1和DR2的功能是锁存数据,用来锁存参与运算的两个操作数,使他们都稳定地出现在ALU的输入端,为ALU运算做准备。DR1和DR2什么时候锁存呢,在设计的时候,用VHDL语言来编译锁存器功能,EDR1为低电平,并且D1CK有上升沿时,把来自数据总线的数据打入锁存器DR1。同样使EDR2为低电平、D2CK有上升沿时把数据总线上的数据打入数据锁存器DR2。

在实验中为了避免数据总线上的数据发生冲突,连接在总线上的数据只能分时传送,数据缓冲器SDR对信息起暂存作用。ALU运算完后没有立即把结果输出至总线,是通过数据缓冲寄存器根据其具体的需求来运送到数据总线上,缓冲器是用FPGA模拟74L244的功能。输出缓冲器SDR当控制信号ALU-O为低电平时,SDR导通,把ALU的运算结果输出到数据总线,当ALU-O为高电平时,SDR的输出为高阻。ALU-O为SDR的输出控制信号。

2.2 各模块的整合设计

具体的模块整合的实现是把三个可以独立运行的功能文件放置在同一个文件夹中,再利用QuartusⅡ新建模块文件,导入涉及到的所有模块最后进行模块间的连线和定义来实现,如图4所示。

在新建的NEW1模块中分别导入DR1和DR2、ALU和SDR的功能电路图,以及若干的INPUT和OUTPUT插件。根据插件和定义两端的参数信息进行连线,有需要注意的是在锁存器的输入中定义了相同的管脚来作为控制信号,内部的连接不需要加单独的插件,只需要定义下参数即可。

2.3 输入输出扩展板

系统设计的输入和输出扩展PCB板中有手动输入单元、输出单元。手动输入单元主要由24个拨动开关组成,往上拨开关表示输出高电平1,往下拨开发表示输出低电平0,这24个开关可以为系统提供所需要的数据信息和控制信号信息。输出单元主要是由LED灯组成的,作为数据线上的数据状态的表示灯,灯亮表示数据为1,灯灭表示数据为0。

做实验时,用杜邦线把FPGA的相应的引脚连接到PCB板,,通过波动开关设置参与运算的数据,相应的控制信号状态,就可以通过数据总线的LED观察运算器的运算结果。

3 上下位机的通讯协议设计

上位机可以监视下位机运行的状态等,这里采用的是串行通讯。在串行通讯时,要求通讯双方都采用一个标准接口,使不同 的设备可以方便地连接起来进行通讯。RS-232-C接口(又称 EIA RS-232-C)是目前比较常用的一种串行通讯接口。RS-232是为点对点(即只用一对收、发设备)通讯而设计的,RS-232适合本地设备之间的通信。所以我们的实验平台采用RS-232通讯。

上下位机通讯的实质主要是双方要规定好传输的数据格式,采用异步串行通讯格式,采用一个起始位、数据位、一位检验位、一位停止位。整个通讯过程我们要确保上下位机数据同步、操作同步。

4 结语

本系统与现有的计算机组成原理运算器模块相比较,成本低、体积小、移动性强、维护方便,容易升级和扩展等优势。该系统不仅可以满足计算机组成原理实践课程的部分教学需要,可以适应提高学生的创新能力和动手实践能力的教学要求。在该实验平台的基础上继续开发增加其他计算机的组成模块,满足计算机组成原理实践课程的教学需要,可应用在一般高校,并有利我省高校在计算机专业的硬件课程体系实验教学上的改革和提升。

参考文献

[1]胡科.基于FPGA的VHDL计算机组成实验平台的设计与实现[D].上海:华东师范大学电子信息系,2007.

[2]陈志勇.计算机组成系统实验的改革与实践[J].电气电子教学学报,2007,29(5):74-78.

[3]徐晨,顾晖.应用EDA技术改革计算机组成原理实验教学[J].电气电子教学学报,2004,26(5):66-69.

[4]周宁宁.基于FPGA技术的计算机组成原理实验系统[J].现代电子技术,2005,28(1):23-25.endprint

摘要:为了适应目前学院对计算机组成原理实验平台的要求,开发了一个基于FPGA的计算机运算器,用软件的思想来模拟硬件的功能,利用FPGA芯片模拟8位字长运算器,可实现多种算术运算和逻辑运算并显示。用手动开关给出控制信号来控制运算器的运行,通过观察数据灯、地址灯、状态灯来了解运算器运行情况。该文主要讨论了系统的下位机硬件设计和上下位机的通讯设计。

关键词:FPGA 运算器 实验平台 下位机

中图分类号:TP301-4;TN791 文献标识码:A 文章编号:1007-9416(2014)08-0101-02

目前福建省内还没有高校自主研发的计算机专业体系实验平台,所有的相关实验装置都是从省外购买,购买成本高,难于维护,可移动性差。再加上我们学院的计算机组成原理实验设备结构比较老旧,硬件结构和电路设计比较复杂,体积大,不够灵活,难于扩展和维护等不足,所以研制一种体积小、成本低、实验环境要求不高实验装置是迫切需求的。

基于FPGA的计算机运算器,可以满足计算机组成原理实践课程的部分教学需要,是组成原理实验平台的一部分。该运算器适用教师教学环节,有是面向学生服务的平台,本系统构建可扩展、易维护、灵活性强,实验成本低,适用面广。可通过本项目的开发,在该实验平台的基础上继续开发增加其他计算机的组成模块,满足计算机组成原理实践课程的教学需要,可为计算机工程系相关课程提供一个教学应用平台。并有利我省高校在计算机专业的硬件课程体系实验教学上的改革和提升。

1 系统简介

系统最大的特点就是运用了软件的思想来模拟硬件的功能,完成运算器的算术或逻辑运算,系统设计以学生可以进行计算机组成原理实验为主,让学生从软件和硬件都得到了很好的锻炼。如图1所示,本实验平台包括三部分:下位机、上位机、上下位机之间的通信。

本系统提供脱机、PC联机两种操作方式,灵活方便,通过RS-232通讯接口与计算机联机使用。上位机是基于WIN2000、WINXP等操作系统的联机软件,界面友好,可完成对程序的编辑、下载、读出和保存,并可实时监控实验系统的运行情况,检测实验连线的正确性。生动直观的模拟数据流向及数据、控制线的各种信息,使学生更易理解计算机运算器的组成结构和工作过程。下位机是基于FPGA的开发板和自己设计的输入和输出信号扩展PCB板板所组成,用来构成实验平台的硬件部分。

2 下位机的设计

整个下位机是利用FPGA的开发板Altera DEO开发板架构运算器的功能,利用扩展板来实现数据、控制信号的输入和结果输出。本系统机器字长为8位,即该运算器可以同时进行2个8位二进制数的运算,既数据总线为8位。整个下位机采用功能模块化设计,通过对模块进行功能仿真,可以模拟运算器的工作过程。各模块的组合如图2所示。

2.1 各模块的功能设计

各模块的实现是通过FPGA来模拟,把程序嵌入到FPGA中,用FPGA来模拟硬件功能,留出相应的控制信号和输入输出信号接口,让学生有动手的操作过程,同时又节省了ALU、锁存器和寄存器的硬件电路,适合于应用在教学实践课中。

ALU是整个运算器的核心模块,利用FPGA来模拟实现八位的算术逻辑运算单元ALU的功能。这里的ALU功能是模拟74L181的功能,它可以进行2个8位二进制数的算术逻辑运算,各种工作方式可通过设置其控制信号来实现(S0、 S1、 S2、S3、M、CN)。Altera DEO开发板的P0.16~P0.21接扩展板的开关电路,作为运算器的控制信号 S0、 S1、 S2、S3、M、CN。当实验者正确设置了ALU的各个控制信号,就可以把两个操作数进行相应的运算并输出。通过QuartusⅡ编译生成ALU功能的实现电路如图3所示。

数据输入锁存器DR1和DR2的功能是锁存数据,用来锁存参与运算的两个操作数,使他们都稳定地出现在ALU的输入端,为ALU运算做准备。DR1和DR2什么时候锁存呢,在设计的时候,用VHDL语言来编译锁存器功能,EDR1为低电平,并且D1CK有上升沿时,把来自数据总线的数据打入锁存器DR1。同样使EDR2为低电平、D2CK有上升沿时把数据总线上的数据打入数据锁存器DR2。

在实验中为了避免数据总线上的数据发生冲突,连接在总线上的数据只能分时传送,数据缓冲器SDR对信息起暂存作用。ALU运算完后没有立即把结果输出至总线,是通过数据缓冲寄存器根据其具体的需求来运送到数据总线上,缓冲器是用FPGA模拟74L244的功能。输出缓冲器SDR当控制信号ALU-O为低电平时,SDR导通,把ALU的运算结果输出到数据总线,当ALU-O为高电平时,SDR的输出为高阻。ALU-O为SDR的输出控制信号。

2.2 各模块的整合设计

具体的模块整合的实现是把三个可以独立运行的功能文件放置在同一个文件夹中,再利用QuartusⅡ新建模块文件,导入涉及到的所有模块最后进行模块间的连线和定义来实现,如图4所示。

在新建的NEW1模块中分别导入DR1和DR2、ALU和SDR的功能电路图,以及若干的INPUT和OUTPUT插件。根据插件和定义两端的参数信息进行连线,有需要注意的是在锁存器的输入中定义了相同的管脚来作为控制信号,内部的连接不需要加单独的插件,只需要定义下参数即可。

2.3 输入输出扩展板

系统设计的输入和输出扩展PCB板中有手动输入单元、输出单元。手动输入单元主要由24个拨动开关组成,往上拨开关表示输出高电平1,往下拨开发表示输出低电平0,这24个开关可以为系统提供所需要的数据信息和控制信号信息。输出单元主要是由LED灯组成的,作为数据线上的数据状态的表示灯,灯亮表示数据为1,灯灭表示数据为0。

做实验时,用杜邦线把FPGA的相应的引脚连接到PCB板,,通过波动开关设置参与运算的数据,相应的控制信号状态,就可以通过数据总线的LED观察运算器的运算结果。

3 上下位机的通讯协议设计

上位机可以监视下位机运行的状态等,这里采用的是串行通讯。在串行通讯时,要求通讯双方都采用一个标准接口,使不同 的设备可以方便地连接起来进行通讯。RS-232-C接口(又称 EIA RS-232-C)是目前比较常用的一种串行通讯接口。RS-232是为点对点(即只用一对收、发设备)通讯而设计的,RS-232适合本地设备之间的通信。所以我们的实验平台采用RS-232通讯。

上下位机通讯的实质主要是双方要规定好传输的数据格式,采用异步串行通讯格式,采用一个起始位、数据位、一位检验位、一位停止位。整个通讯过程我们要确保上下位机数据同步、操作同步。

4 结语

本系统与现有的计算机组成原理运算器模块相比较,成本低、体积小、移动性强、维护方便,容易升级和扩展等优势。该系统不仅可以满足计算机组成原理实践课程的部分教学需要,可以适应提高学生的创新能力和动手实践能力的教学要求。在该实验平台的基础上继续开发增加其他计算机的组成模块,满足计算机组成原理实践课程的教学需要,可应用在一般高校,并有利我省高校在计算机专业的硬件课程体系实验教学上的改革和提升。

参考文献

[1]胡科.基于FPGA的VHDL计算机组成实验平台的设计与实现[D].上海:华东师范大学电子信息系,2007.

[2]陈志勇.计算机组成系统实验的改革与实践[J].电气电子教学学报,2007,29(5):74-78.

[3]徐晨,顾晖.应用EDA技术改革计算机组成原理实验教学[J].电气电子教学学报,2004,26(5):66-69.

[4]周宁宁.基于FPGA技术的计算机组成原理实验系统[J].现代电子技术,2005,28(1):23-25.endprint

猜你喜欢
实验平台
生物医学工程专业创新人才培养策略