CN103645877A - Division operation control unit for multiple floating-point operands - Google Patents
Division operation control unit for multiple floating-point operands Download PDFInfo
- Publication number
- CN103645877A CN103645877A CN201310681578.3A CN201310681578A CN103645877A CN 103645877 A CN103645877 A CN 103645877A CN 201310681578 A CN201310681578 A CN 201310681578A CN 103645877 A CN103645877 A CN 103645877A
- Authority
- CN
- China
- Prior art keywords
- operand
- pulse
- read
- control module
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 22
- 230000002159 abnormal effect Effects 0.000 claims description 11
- 230000001360 synchronised effect Effects 0.000 claims description 11
- 238000001208 nuclear magnetic resonance pulse sequence Methods 0.000 claims description 8
- 238000003672 processing method Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 7
- 230000005856 abnormality Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Images
Landscapes
- Programmable Controllers (AREA)
Abstract
一种多浮点操作数除运算控制器,包括命令字及其操作数写时序控制模块、操作数存储器、浮点操作数读时序控制模块、操作数配置运算控制模块;该控制器应用FPGA设计硬连接控制电路,内部产生写时序脉冲将指令的命令字和浮点操作数按顺序连续写入存储,在内部产生的读时序脉冲作用下,按顺序读出浮点操作数执行除法运算;写入最后一个浮点操作数之后,执行除法运算命令过程不受系统控制,系统能够转去处理其他指令程序;在执行除法运算的过程中,能够读出中间运算和最终运算结果;每条指令可有127个浮点操作数,一条指令相当于多条微处理器除法运算指令,减少了系统的取指和译码、浮点操作数和运算结果写回的传输操作过程,提高了处理速度。
A multi-floating-point operand division operation controller, including a command word and its operand write timing control module, an operand memory, a floating-point operand read timing control module, and an operand configuration operation control module; the controller is designed using FPGA The control circuit is hard-wired, and the internally generated write timing pulses are sequentially written into the command word and the floating-point operands of the instruction, and under the action of the internally generated read timing pulses, the floating-point operands are read out in sequence to perform division operations; After the last floating-point operand is input, the process of executing the division operation command is not controlled by the system, and the system can transfer to process other instruction programs; during the process of executing the division operation, the intermediate operation and final operation results can be read; each instruction can be There are 127 floating-point operands, and one instruction is equivalent to multiple microprocessor division instructions, which reduces the transfer operation process of system instruction fetching and decoding, floating-point operands and operation result write-back, and improves the processing speed.
Description
技术领域 technical field
本发明涉及一种多浮点操作数除运算控制器,尤其涉及一种基于采用FPGA并行操作电路硬连接的多浮点操作数除法运算控制电路及其时序控制方法。 The invention relates to a multi-floating-point operand division operation controller, in particular to a multi-floating-point operand division operation control circuit and a timing control method based on the hard connection of an FPGA parallel operation circuit.
背景技术 Background technique
浮点数除法运算器实现2个32位符合IEEE754标准的浮点数除法运算;运算器输入参与运算的两个浮点操作数,一个是操作数1,一个是操作数2,执行一次除法运算输出一个运算结果,在运算过程中,操作数1和操作数2必须维持稳定;运算器的操作数1输入端与一个暂存器的输出端连接,操作数2与另一个暂存器的输出端连接;除法运算的时间周期比加/减法、乘法运算器长,微处理器将参与运算的两个操作数传输给浮点数除法运算器后,能够转去处理其他程序,运算结束之后分时读出运算结果;对于连续执行多个操作数的除法运算,且运算结果作为被除数,微处理器需要多次分时传输作为除数的操作数,运算结果写回的操作;浮点数除法运算器的设计也采用流水线执行的方式,将运算过程分为若干模块,在微处理器控制部件发出的时序脉冲的控制下,多条浮点数除法运算指令按照模块顺序执行,流水线中的每条指令运算结束都需要将运算结果写回;但对于所执行的浮点数除法运算需要应用上一条运算指令的运算结果作为被除数的指令,则浮点数除法运算的流水线操作失去作用,影响了浮点数除法运算指令执行的速度。
The floating-point number division operator implements two 32-bit floating-point number division operations that conform to the IEEE754 standard; the operator inputs two floating-point operands involved in the operation, one is operand 1, and the other is operand 2. Perform a division operation and output a The operation result, during the operation,
发明内容 Contents of the invention
本发明的目的在于提供一种多浮点操作数除运算控制器,用于实现多个32位符合IEEE754标准的浮点数的除法运算;该控制器应用FPGA设计多浮点操作数除运算控制器的硬连接电路,对于一条多浮点操作数除法运算指令的命令字和多浮点操作数采取连续写入存储的方法,写入过程占用系统总线;控制器在接收命令和第一个操作数后,控制器内部产生与系统时钟Clock信号同步的读时序脉冲信号,在读时序脉冲信号控制下自主完成读出浮点操作数执行除法运算,除法运算命令执行过程不占用系统总线,写入存储多浮点操作数过程与执行除法运算命令的过程能够并行进行;该控制器对于传输参与除法运算的第1个操作数设置除法方式和类型标志,能够实现:第1个操作数/第2个操作数、存储在控制器中的运算结果/第1个操作数、第1个操作数/存储在控制器中的运算结果三种处理方式;在控制器执行除法运算命令过程中,系统能够读出执行除法运算命令过程中的中间运算结果和最终运算结果。 The object of the present invention is to provide a multi-floating-point operand division controller, which is used to realize the division operation of a plurality of 32-bit floating-point numbers conforming to the IEEE754 standard; the controller uses FPGA to design a multi-floating-point operand division controller The hard-wired circuit of a multi-floating-point operand division operation instruction adopts the method of continuously writing and storing the command word and the multi-floating-point operand, and the writing process occupies the system bus; the controller receives the command and the first operand Finally, the controller internally generates a read timing pulse signal synchronized with the system clock Clock signal. Under the control of the read timing pulse signal, it independently completes the reading of the floating-point operand and performs the division operation. The execution process of the division operation command does not occupy the system bus. The floating-point operand process and the process of executing the division operation command can be carried out in parallel; the controller sets the division mode and type flag for the first operand that participates in the division operation, and can realize: the first operand/the second operation number, the operation result stored in the controller/the first operand, the first operand/the operation result stored in the controller; when the controller executes the division operation command, the system can read Intermediate operation results and final operation results during the execution of the division operation command.
解决上述技术问题的技术方案是:一种多浮点操作数除运算控制器,包括命令字及其操作数写时序控制模块、操作数存储器、浮点操作数读时序控制模块、操作数配置运算控制模块; The technical solution for solving the above-mentioned technical problems is: a multi-floating-point operand division operation controller, including a command word and its operand write sequence control module, an operand memory, a floating-point operand read sequence control module, and an operand configuration operation control module;
所述命令字及其操作数写时序控制模块与操作数存储器、浮点操作数读时序控制模块、操作数配置运算控制模块连接; The command word and its operand write sequence control module are connected with the operand memory, the floating point operand read sequence control module, and the operand configuration operation control module;
所述操作数存储器还与浮点操作数读时序控制模块、操作数配置运算控制模块连接; The operand memory is also connected with the floating-point operand read timing control module and the operand configuration operation control module;
所述浮点操作数读时序控制模块还与操作数配置运算控制模块连接; The floating-point operand read timing control module is also connected to the operand configuration operation control module;
所述命令字及其操作数写时序控制模块控制完成指令的写入和存储,需要占用系统总线;一条指令包括9位命令字和若干个操作数,操作数最多为127个;所述命令字及其操作数写时序控制模块被系统选中时,启动命令字及其操作数写时序控制模块工作,内部产生与系统WR信号同步的写时序脉冲序列;在写时序脉冲的控制下,锁存多浮点操作数除法指令的命令字,写入多浮点操作数予以存储;最后一个操作数被写入存储后,所述命令字及其操作数写时序控制模块停止工作; The command word and its operand write timing control module control completes the writing and storage of the instruction, which needs to occupy the system bus; an instruction includes a 9-bit command word and several operands, and the operands are at most 127; the command word and its operand write sequence control module are selected by the system, start the command word and its operand write sequence control module to work, and internally generate a write sequence pulse sequence synchronous with the system WR signal; under the control of the write sequence pulse, latch multiple The command word of the floating-point operand division instruction is written into multiple floating-point operands for storage; after the last operand is written and stored, the command word and its operand writing timing control module stop working;
所述操作数存储器为双端口存储器,一个只写端口,一个只读端口,用于储存浮点操作数(下称为操作数);所述操作数存储器的写端口操作数的写入和读端口操作数的读出不存在需要仲裁的情况;所述操作数存储器的写端口受命令字及其操作数写时序控制模块控制,将系统数据总线DB传输的操作数写入操作数存储器;读端口受浮点操作数读时序控制模块控制,将操作数读出传输到操作数配置运算控制模块; The operand memory is a dual-port memory, with a write-only port and a read-only port for storing floating-point operands (hereinafter referred to as operands); the writing and reading of operands in the write port of the operand memory The readout of the port operand does not have the situation that requires arbitration; the write port of the operand memory is controlled by the command word and its operand write timing control module, and the operand transmitted by the system data bus DB is written into the operand memory; The port is controlled by the floating-point operand read timing control module, and the operand read is transmitted to the operand configuration operation control module;
所述浮点操作数读时序控制模块在内部读时序脉冲的控制下,自主完成浮点操作数从操作数存储器中的读出,不需要占用系统总线;所述浮点操作数读时序控制模块在命令字及其操作数写时序控制模块写入第1个操作数后被启动工作,输出忙信号Busy由“1”→“0”,并根据第1个操作数类型,内部产生与系统时钟Clock信号同步的读时序脉冲序列,按顺序将操作数读出参与除法运算;当参与运算的最后1个操作数读出之后,再经过一个除法运算的时间周期,输出忙信号Busy由“0”→“1”,发出一个时钟周期Clock的结果锁存脉冲后,停止浮点操作数读时序控制模块的工作; The floating-point operand read timing control module is under the control of the internal read timing pulse, and independently completes the reading of the floating-point operand from the operand memory without occupying the system bus; the floating-point operand read timing control module After the command word and its operand writing timing control module is written into the first operand, it will start to work, and the output busy signal Busy will change from "1" to "0", and according to the type of the first operand, the internal generation and system clock Clock signal synchronous read timing pulse sequence, read the operands in order to participate in the division operation; after the last operand involved in the operation is read out, after a division operation time period, the output busy signal Busy changes from "0" → "1", after sending the result latch pulse of one clock cycle Clock, stop the work of the floating-point operand read timing control module;
所述操作数配置运算控制模块根据操作数存储器传输的第1个操作数的除法方式和类型,选通配置除法运算器的二个输入端的操作数1和操作数2,能够锁存每次除法运算的运算结果,判断运算结果是否异常;系统能够从操作数配置运算控制模块中读出中间运算结果和命令执行的最终运算结果。
According to the division mode and type of the first operand transmitted by the operand memory, the operand configuration operation control module gates and configures the
其进一步技术方案是:所述命令字及其操作数写时序控制模块包括控制器识别、写地址计数器、写操作数脉冲发生控制模块、方式类型寄存器和与门Ⅰ; Its further technical solution is: the command word and its operand write timing control module includes controller identification, write address counter, write operand pulse generation control module, mode type register and AND gate I;
所述控制器识别的输入端和系统地址总线AB的A31到A27线连接,CS信号输出端与写操作数脉冲发生控制模块的写启动信号输入端、操作数配置运算控制模块连接;所述控制器识别输入A31到A27的地址值与控制器识别所设定的地址值相等,则控制器识别的CS信号输出端为“0”,否则CS信号输出端为“1”; The input terminal identified by the controller is connected to the A31 to A27 lines of the system address bus AB, and the CS signal output terminal is connected to the write start signal input terminal of the write operand pulse generation control module and the operand configuration operation control module; the control If the address value of the controller identification input A31 to A27 is equal to the address value set by the controller identification, the CS signal output terminal identified by the controller is "0", otherwise the CS signal output terminal is "1";
所述写地址计数器的操作数个数输入端与系统数据总线DB的D6到D0线连接,写预置脉冲输入端与写操作数脉冲发生控制模块的脉冲①_1输出端连接,写计数脉冲输入端与写操作数脉冲发生控制模块的脉冲③_1输出端连接,写地址输出端与操作数存储器的写地址输入端AB_1连接,写溢出输出端和与门Ⅰ的一个输入端连接; The operand number input end of the write address counter is connected to the D6 to D0 lines of the system data bus DB, the write preset pulse input end is connected to the pulse ①_1 output end of the write operand pulse generation control module, and the write count pulse input end It is connected with the pulse ③_1 output terminal of the write operand pulse generation control module, the write address output terminal is connected with the write address input terminal AB_1 of the operand memory, and the write overflow output terminal is connected with an input terminal of AND gate I;
所述写操作数脉冲发生控制模块的写同步脉冲输入端与系统写信号WR线连接,复位输入端和与门Ⅰ的输出端连接,脉冲①_1输出端还与方式类型寄存器锁存信号输入端连接,作为读预置脉冲与浮点操作数读时序控制模块连接,脉冲②_1输出端与操作数存储器写端口的WR_1输入端连接,作为读启动脉冲与浮点操作数读时序控制模块连接; The write synchronization pulse input terminal of the write operand pulse generation control module is connected to the system write signal WR line, the reset input terminal is connected to the output terminal of AND gate I, and the pulse ①_1 output terminal is also connected to the mode type register latch signal input terminal , used as a read preset pulse to connect to the floating-point operand read timing control module, the pulse ②_1 output terminal is connected to the WR_1 input terminal of the operand memory write port, and used as a read start pulse to connect to the floating-point operand read timing control module;
当CS为“0”时,所述写操作数脉冲发生控制模块在系统第1个WR信号的作用下启动工作,按照顺序输出脉冲①_1、脉冲②_1、脉冲③_1,直到复位信号输入端由“1”→“0”才停止工作,置脉冲①_1、脉冲②_1和脉冲③_1输出端为“1”状态; When CS is "0", the write operand pulse generation control module starts to work under the action of the first WR signal of the system, and outputs pulse ①_1, pulse ②_1, and pulse ③_1 in sequence until the input terminal of the reset signal changes from "1 "→"0" to stop working, set the output terminals of pulse ①_1, pulse ②_1 and pulse ③_1 to "1" state;
所述方式类型寄存器的输入端与系统数据总线DB的D8和D7线连接,方式输出端与操作数配置运算控制模块连接,类型输出端与浮点操作数读时序控制模块连接; The input end of the mode type register is connected with the D8 and D7 lines of the system data bus DB, the mode output end is connected with the operand configuration operation control module, and the type output end is connected with the floating-point operand read timing control module;
所述与门Ⅰ的另二个输入端分别与系统复位信号Rst线、操作数配置运算控制模块连接; The other two input terminals of the AND gate I are respectively connected to the system reset signal Rst line and the operand configuration operation control module;
当控制器识别输出的CS信号由“1”→“0”时,所述命令字及其操作数写时序控制模块启动写操作数脉冲发生控制模块工作,写操作数脉冲发生控制模块发出与系统WR信号同步的时序脉冲序列信号,在脉冲①_1下降沿的作用下,将指令的命令字的第1个操作数的除法方式和类型锁存在方式类型寄存器中,将操作数个数值预置给写地址计数器,作为写地址计数器的计数初值和操作数存储器写端口的写地址初值,并置写溢出输出端为“1”状态;脉冲②_1作为操作数存储器写端口的WR_1信号,将操作数写入操作数存储器中;脉冲③_1作为写地址计数器的写计数脉冲,这样每写入一个操作数,产生1个计数脉冲,写地址输出端输出的地址值-1指向操作数存储器写端口的下一个存储单元的地址,当写地址输出端输出的地址值由预置值减至“0”时,写溢出输出端由“1”→“0”,复位写操作数脉冲发生控制模块3,置所有的脉冲输出端为“1”状态。
When the controller recognizes that the output CS signal is from "1" to "0", the command word and its operand write sequence control module start the write operand pulse generation control module to work , and the write operand pulse generation control module sends out and communicates with the system The timing pulse sequence signal synchronized with the WR signal, under the action of the falling edge of pulse ①_1, the division mode and type of the first operand of the command word of the instruction are latched in the mode type register, and the value of the operand is preset to write The address counter is used as the counting initial value of the write address counter and the write address initial value of the operand memory write port, and sets the write overflow output terminal to "1"state; pulse ②_1 is used as the WR_1 signal of the operand memory write port, and the operand Write into the operand memory; pulse ③_1 is used as the write count pulse of the write address counter, so that each time an operand is written, a count pulse is generated, and the address value -1 output by the write address output terminal points to the lower end of the write port of the operand memory For the address of a storage unit, when the address value output by the write address output terminal decreases from the preset value to "0", the write overflow output terminal changes from "1" to "0", resets the write operand pulse
其进一步技术方案是:所述浮点操作数读时序控制模块包括读地址计数器、读操作数脉冲发生控制模块、与门Ⅱ、与门Ⅲ和与门Ⅳ; Its further technical solution is: the floating-point operand read timing control module includes a read address counter, a read operand pulse generation control module, AND gate II, AND gate III, and AND gate IV;
所述读地址计数器的操作数个数输入端与系统数据总线DB的D6和D0线连接,读预置脉冲输入端与写操作数脉冲发生控制模块的脉冲①_1输出端连接,读计数脉冲输入端和与门Ⅳ的输出端连接,读地址输出端与操作数存储器的读地址输入端AB_2连接,读溢出输出端与读操作数脉冲发生控制模块的读溢出输入端连接; The operand number input end of the read address counter is connected with the D6 and D0 lines of the system data bus DB, the read preset pulse input end is connected with the pulse ①_1 output end of the write operand pulse generation control module, and the count pulse input end is read It is connected with the output terminal of AND gate IV, the read address output terminal is connected with the read address input terminal AB_2 of the operand memory, and the read overflow output terminal is connected with the read overflow input terminal of the read operand pulse generation control module;
所述读地址计数器在读预置脉冲的作用下将输入命令的操作数个数作为计数初值、操作数存储器读端口的读地址初值,并置读溢出输出端信号为“1”状态;每来一个读计数脉冲,读地址计数器的读地址值-1,修改操作数存储器读端口存储单元地址值,当读地址计数器输出的读地址值由预置值减至“0”时,读溢出输出端由“1”→“0”,读溢出输出信号是操作数读出过程结束的标志; The read address counter uses the number of operands of the input command as the initial value of counting and the initial value of the read address of the read port of the operand memory under the action of the read preset pulse, and sets the read overflow output terminal signal to "1" state; A read count pulse comes, the read address value of the read address counter is -1, and the address value of the operand memory read port storage unit is modified. When the read address value output by the read address counter is reduced from the preset value to "0", the read overflow output The terminal is from "1" to "0", and the read overflow output signal is a sign of the end of the operand read process;
所述读操作数脉冲发生控制模块的读同步脉冲输入端与系统时钟Clock线连接,复位输入端和与门Ⅲ的输出端连接,读启动输入端与写操作数脉冲发生控制模块的脉冲②_1输出端连接,读时序控制输入端与方式类型寄存器的类型输出端连接;脉冲①_2输出端和与门Ⅱ的一个输入端、操作数配置运算控制模块连接;脉冲②_2输出端和与门Ⅳ的一个输入端、操作数配置运算控制模块连接,脉冲③_2输出端和与门Ⅱ的另一个输入端连接;脉冲④_2输出端和与门Ⅳ的另一个输入端连接;脉冲⑤_2输出端、脉冲⑥_2输出端与操作数配置运算控制模块连接;Busy输出端向系统输出Busy忙信号; The read synchronization pulse input terminal of the read operand pulse generation control module is connected to the system clock Clock line, the reset input terminal is connected to the output terminal of AND gate III, and the read start input terminal is output to the pulse ②_1 of the write operand pulse generation control module connection, the read timing control input terminal is connected to the type output terminal of the mode type register; the pulse ①_2 output terminal is connected to an input terminal of the AND gate II, and the operand configuration operation control module; the pulse ②_2 output terminal is connected to an input terminal of the AND gate IV terminal, operand configuration operation control module connection, pulse ③_2 output terminal is connected with the other input terminal of AND gate II; pulse ④_2 output terminal is connected with the other input terminal of AND gate IV; pulse ⑤_2 output terminal, pulse ⑥_2 output terminal and The operand configuration operation control module is connected; the Busy output terminal outputs a Busy busy signal to the system;
所述与门Ⅱ的输出端与操作数存储器的读信号输入端RD_2连接; The output end of the AND gate II is connected to the read signal input end RD_2 of the operand memory;
所述与门Ⅲ的二个输入端分别与系统复位信号Rst线、操作数配置运算控制模块连接; The two input ends of the AND gate III are respectively connected to the system reset signal Rst line and the operand configuration operation control module;
当复位输入端为“1”时,所述浮点操作数读时序控制模块在脉冲①_1的读预置脉冲作用下将操作数个数值预置给读地址计数器,操作数存储器读端口的地址初值为操作数个数值;在第一个脉冲②_1的读启动脉冲作用下启动读操作数脉冲发生控制模块的工作,Busy输出端由“1”→“0”; When the reset input terminal is "1", the floating-point operand read timing control module presets the operand value to the read address counter under the action of the read preset pulse of pulse ①_1, and the address of the operand memory read port starts The value is a number of operands; under the action of the read start pulse of the first pulse ②_1, the work of the read operand pulse generation control module is started, and the Busy output terminal changes from "1" to "0";
当读操作数脉冲发生控制模块的读时序控制输入端输入的类型信号为“0”时,按照顺序循环发出脉冲③_2、脉冲④_2、脉冲⑤_2,以及发出一个脉冲⑥_2,当读溢出输入端信号由“1”→“0”时,置脉冲③_2、脉冲④_2输出端为“1”,停止脉冲③_2和脉冲④_2产生,经过一个运算周期时间,Busy输出端由“0”→“1”状态,输出一个时钟周期Clock的锁存结果脉冲⑤_2,然后置脉冲⑤_2输出端为“1”,浮点操作数读时序控制模块停止工作; When the input type signal of the read timing control input terminal of the read operand pulse generation control module is "0", pulses ③_2, pulse ④_2, pulse ⑤_2, and a pulse ⑥_2 are sent out in sequence, and when the read overflow input signal is When "1"→"0", set the output terminals of pulse ③_2 and pulse ④_2 to "1", stop the generation of pulse ③_2 and pulse ④_2, and after one operation cycle time, the Busy output terminal changes from "0" to "1", and the output The latch result pulse ⑤_2 of a clock cycle Clock, then set the output terminal of pulse ⑤_2 as "1", and the floating-point operand read timing control module stops working;
当读操作数脉冲发生控制模块的读时序控制输入端输入的类型信号为“1”时,按照顺序发出脉冲①_2和脉冲②_2,再按照顺序循环发出脉冲③_2、脉冲④_2、脉冲⑤_2,脉冲③_2、脉冲④_2、脉冲⑤_2产生过程与类型信号为“0”时相同。 When the input type signal of the read timing control input terminal of the read operand pulse generation control module is "1", pulse ①_2 and pulse ②_2 are issued in sequence, and then pulse ③_2, pulse ④_2, pulse ⑤_2, pulse ③_2, The generation process of pulse ④_2 and pulse ⑤_2 is the same as when the type signal is "0".
其进一步技术方案是:所述操作数配置运算控制模块包括选通器、结果寄存器、操作数交换器、浮点数除法运算器、运算异常标志控制、32位三态门组、与门Ⅴ、与门Ⅵ、或门Ⅰ和或门Ⅱ; Its further technical solution is: the operand configuration operation control module includes a strobe, a result register, an operand switch, a floating-point number division operator, an operation exception flag control, a 32-bit tri-state gate group, an AND gate V, and an AND gate. Gate VI, OR Gate I and OR Gate II;
所述选通器的二个输入端分别和操作数存储器的操作数输出端DB_2、浮点数除法运算器的运算结果输出端连接,输出端和结果寄存器的输入端连接;选通控制输入端和与门Ⅴ的输出端连接; The two input terminals of the strobe are respectively connected with the operand output terminal DB_2 of the operand memory and the operation result output terminal of the floating-point number division operator, and the output terminal is connected with the input terminal of the result register; the strobe control input terminal and Connect with the output terminal of gate V;
所述结果寄存器的输出端和操作数交换器的交换数1输入端、32位三态门组输入端连接;结果锁存信号输入端和与门Ⅵ的输出端连接;
The output end of the result register is connected to the
所述操作数交换器的交换数2输入端与操作数存储器的操作数输出端DB_2连接,交换控制端和或门Ⅰ的输出端连接,二个输出端分别与浮点数除法运算器的操作数1输入端、操作数2输入端连接;
The
所述浮点数除法运算器的运算结果输出端还与运算异常标志控制的运算结果输入端连接; The operation result output terminal of the floating-point number division operator is also connected to the operation result input terminal controlled by the abnormal operation flag;
所述运算异常标志控制的锁存结果脉冲输入端与读操作数脉冲发生控制模块的锁存结果脉冲⑤_2输出端连接;IRQ输出端和与门Ⅰ的另一个输入端、与门Ⅲ的另一个输入端连接,IRQ输出端还向系统输出中断请求信号IRQ;当中间运算结果或最终运算结果出现异常时,所述运算异常标志控制向系统发出中断请求信号IRQ,并复位写操作数脉冲发生控制模块和读操作数脉冲发生控制模块; The latch result pulse input terminal controlled by the abnormal operation flag is connected to the latch result pulse ⑤_2 output terminal of the read operand pulse generation control module; the IRQ output terminal is connected to the other input terminal of AND gate I, and the other input terminal of AND gate III The input terminal is connected, and the IRQ output terminal also outputs an interrupt request signal IRQ to the system; when the intermediate operation result or the final operation result is abnormal, the operation abnormality flag control sends an interrupt request signal IRQ to the system, and resets the write operand pulse generation control module and read operand pulse generation control module;
所述32位三态门组的输出端和系统数据总线DB连接,控制输入端和或门Ⅱ的输出端连接; The output end of the 32-bit tri-state gate group is connected to the system data bus DB, and the control input end is connected to the output end of the OR gate II;
所述与门Ⅴ的二个输入端分别与读操作数脉冲发生控制模块的脉冲①_2、脉冲②_2的输出端连接; The two input terminals of the AND gate V are respectively connected to the output terminals of pulse ①_2 and pulse ②_2 of the read operand pulse generation control module;
所述与门Ⅵ的二个输入端分别与读操作数脉冲发生控制模块的脉冲②_2、脉冲⑤_2的输出端连接; The two input terminals of the AND gate VI are respectively connected to the output terminals of pulse ②_2 and pulse ⑤_2 of the read operand pulse generation control module;
所述或门Ⅰ的一个输入端与方式类型寄存器的方式输出端连接,另一个输入端与读操作数脉冲发生控制模块的脉冲⑥_2输出端连接; An input end of the OR gate I is connected to the mode output end of the mode type register, and the other input end is connected to the pulse ⑥_2 output end of the read operand pulse generation control module;
所述或门Ⅱ的二个输入端分别与控制器识别的CS信号输出端、系统读信号RD线连接;当CS为“0”时,在系统RD信号的作用下,读出中间运算结果或命令执行的最终运算结果。 The two input terminals of the OR gate II are respectively connected to the CS signal output terminal identified by the controller and the system read signal RD line; when CS is "0", under the action of the system RD signal, the intermediate calculation result or The final operation result of command execution.
其进一步技术方案是:所述浮点操作数读时序控制模块与方式类型寄存器的类型输出端连接;所述操作数配置运算控制模块与方式类型寄存器的方式输出端连接;类型的定义是从操作数存储器读出的第1个操作数的类型,方式的定义是当类型为“0”时,第1个操作数参加除法运算的处理方式; Its further technical scheme is: described floating-point operand read timing control module is connected with the type output end of mode type register; Described operand configuration operation control module is connected with the mode output end of mode type register; The definition of type is from operation The type of the first operand read from the number memory, the definition of the method is when the type is "0", the first operand participates in the processing method of the division operation;
类型0:第1个操作数作为参与除运算的操作数2,运算结果作为操作数1;
Type 0: The first operand is used as
类型1:第1个操作数作为参与除运算的操作数1,第2个操作数作为操作数2;
Type 1: The first operand is used as
所述读操作数脉冲发生控制模块输出的脉冲①_2、脉冲②_2只在方式类型寄存器输出的类型为“1”时产生;当脉冲①_2或脉冲②_2为“0”时,选通器的选通控制输入端为“0”,选通器输出从操作数存储器读出的第1个操作数;脉冲①_2和脉冲②_2都为“1”时,选通器输出运算结果; The pulse ①_2 and pulse ②_2 output by the read operand pulse generation control module are only generated when the type of the mode type register output is "1"; when the pulse ①_2 or pulse ②_2 is "0", the gating control of the strobe When the input terminal is "0", the strobe outputs the first operand read from the operand memory; when both pulse ①_2 and pulse ②_2 are "1", the strobe outputs the operation result;
从操作数存储器读出的第1个操作数参加除法运算,方式类型寄存器输出的方式和类型信号控制正在执行命令的第1个操作数和运算结果的除法方式: The first operand read from the operand memory participates in the division operation, and the mode and type signal output by the mode type register control the division mode of the first operand and the operation result of the command being executed:
方式为“0”,类型为“0”:类型为“0”结果寄存器输出的是运算结果,操作数交换器的交换数1输入端为运算结果,操作数交换器的交换数2输入端为从操作数存储器读出的第1个操作数;当读第1个操作数时,此时脉冲⑥_2为“0”有效,由于方式为“0”状态,使得操作数交换器的控制端为“0”,操作数交换器的交换数1输入端的运算结果作为操作数交换器输出的操作数2,操作数交换器的交换数2输入端的第1个操作数作为操作数交换器输出的操作数1,即操作数交换器的2个输入和2个输出进行交换传输,执行第1个操作数/运算结果的除法运算;
The mode is "0", the type is "0": the type is "0", the output of the result register is the operation result, the input terminal of the
方式为“1”,类型为“0”:当读第1个操作数时,此时虽然脉冲⑥_2为“0”有效,但方式为“1”状态,使得操作数交换器的控制端为“1”,操作数交换器的2个输入和2个输出不进行交换传输;运算结果作为浮点数除法运算器的操作数1,第1个操作数作为操作数2,执行运算结果/第1个操作数的除法运算;
The mode is "1" and the type is "0": when reading the first operand, although the pulse ⑥_2 is "0" is valid at this time, but the mode is "1", so that the control terminal of the operand switch is " 1", the 2 inputs and 2 outputs of the operand switcher are not exchanged and transmitted; the operation result is used as operand 1 of the floating-point number division operator, the first operand is used as
当类型为“1”时,第1个操作数的配置与输入的方式信号状态无关,读操作数脉冲发生控制模块不会产生脉冲⑥_2信号,脉冲⑥_2输出端为“1”状态,使得操作数交换器的控制端为“1”,操作数交换器的2个输入和2个输出不进行交换传输;第1个操作数作为浮点数除法运算器的操作数1,第2个操作数作为操作数2,执行第1个操作数/第2个操作数的运算。
When the type is "1", the configuration of the first operand has nothing to do with the signal state of the input mode. The pulse generation control module of the read operand will not generate the pulse ⑥_2 signal, and the output terminal of the pulse ⑥_2 is in the "1" state, making the operand The control terminal of the switch is "1", and the 2 inputs and 2 outputs of the operand switch are not exchanged and transmitted; the first operand is used as operand 1 of the floating-point number division operator, and the second operand is used as the
由于采用以上结构,本发明之多浮点操作数除运算控制器具有以下有益效果: Due to the adoption of the above structure, the multi-floating-point operand division operation controller of the present invention has the following beneficial effects:
一、一条指令的命令字及其多浮点操作数能够连续写入存储 1. The command word of an instruction and its multiple floating-point operands can be continuously written into the storage
本发明之多浮点操作数除运算控制器内部设置有一个操作数存储器,在内部与系统WR脉冲同步的写操作数时序脉冲的控制之下,多浮点操作数除法指令的命令字被写入后,能够将该指令的浮点操作数全部按照顺序写入并存储在操作数存储器中。 The multi-floating-point operand division operation controller of the present invention is provided with an operand memory inside, and under the control of the write operand timing pulse synchronous with the system WR pulse inside, the command word of the multi-floating-point operand division instruction is written After input, all the floating-point operands of the instruction can be written in order and stored in the operand memory.
二、自主控制完成多浮点操作数除法的运算 2. Autonomous control to complete the operation of multi-floating-point operand division
本发明之多浮点操作数除运算控制器在接收指令的命令字和第一个浮点操作数后,启动控制器内部读操作数脉冲发生控制模块,在与系统时钟Clock脉冲同步的读操作数时序脉冲的控制之下,自主完成指令的所有浮点操作数的除法运算,控制器执行多浮点操作数的除法运算命令不受系统控制。 After the multi-floating-point operand division operation controller of the present invention receives the command word and the first floating-point operand of the instruction, it starts the internal read operand pulse generation control module of the controller, and performs the read operation synchronously with the system clock Clock pulse. Under the control of the number timing pulse, the division operation of all floating-point operands of the instruction is completed independently, and the controller executes the division operation command of multiple floating-point operands without being controlled by the system.
三、自动选择第1个浮点操作数除运算的处理方式 3. Automatically select the processing method of the division operation of the first floating-point operand
本发明之多浮点操作数除运算控制器在对第1个浮点操作数进行除法运算时,有三种处理方式,一是第1个浮点操作数作为被除数,实施第1个浮点操作数/第2个浮点操作数的运算;二是第1个浮点操作数作为被除数,实施第1个浮点操作数/运算结果的运算;三是第1个浮点操作数作为除数,实施运算结果/第1个浮点操作数的运算。 The multi-floating-point operand division operation controller of the present invention has three processing methods when performing division operation on the first floating-point operand. One is that the first floating-point operand is used as the dividend to implement the first floating-point operation. number/the second floating-point operand; the second is that the first floating-point operand is used as the dividend, and the first floating-point operand/operation result is implemented; the third is that the first floating-point operand is used as the divisor, Carry out the operation of the operation result/the first floating-point operand.
四、控制器性价比高 Fourth, the controller is cost-effective
本发明之多浮点操作数除运算控制器以FPGA的硬连接控制电路为核心,实现多浮点操作数的除法运算,运算过程不受系统控制;除法运算命令执行过程中,能够读出中间运算结果,除法运算命令执行结束,能够读出最终运算结果;每条指令能够有127个浮点操作数,这样一条指令相当于相同除法运算的多条指令,减少了系统对指令的取指和译码、浮点操作数和运算结果写回的传输操作过程;另一方面,控制器能够应用执行上一条指令的运算结果与新写入指令的第1个浮点操作数进行运算;一条指令相当于相同运算的多条指令,提高了处理速度,具有较高的性价比。 The multi-floating-point operand division operation controller of the present invention takes the hard-wired control circuit of FPGA as the core to realize the division operation of multi-floating-point operands, and the operation process is not controlled by the system; during the execution of the division operation command, it can read the intermediate The operation result, the division operation command is executed, and the final operation result can be read out; each instruction can have 127 floating-point operands, so that one instruction is equivalent to multiple instructions of the same division operation, which reduces the number of instructions fetched by the system and The transmission operation process of decoding, floating-point operand and operation result write-back; on the other hand, the controller can apply the operation result of the previous instruction to perform operation with the first floating-point operand of the newly written instruction; one instruction It is equivalent to multiple instructions of the same operation, which improves the processing speed and has a high cost performance.
下面结合附图和实施例对本发明之多浮点操作数除运算控制器的技术特征作进一步的说明。 The technical features of the multi-floating-point operand division controller of the present invention will be further described below in conjunction with the accompanying drawings and embodiments.
附图说明 Description of drawings
图1:本发明之多浮点操作数除运算控制器的系统结构框图; Fig. 1: the system structural block diagram of multi-floating-point operand division operation controller of the present invention;
图2:本发明之多浮点操作数除运算控制器的命令字及其操作数写时序控制模块的电路连接图; Fig. 2: the circuit connection diagram of the command word of multi-floating-point operand division controller of the present invention and its operand writing sequence control module;
图3:本发明之多浮点操作数除运算控制器的浮点操作数读时序控制模块的电路连接图; Fig. 3: the circuit connection diagram of the floating-point operand reading timing control module of the multi-floating-point operand division operation controller of the present invention;
图4:本发明之多浮点操作数除运算控制器的操作数配置运算控制模块的电路连接图; Fig. 4: the circuit connection diagram of the operand configuration operation control module of the multi-floating-point operand division operation controller of the present invention;
图5:本发明之多浮点操作数除运算控制器的写命令字和多浮点操作数时序图; Fig. 5: write command word and multi-floating-point operand sequence diagram of multi-floating-point operand division operation controller of the present invention;
图6:本发明之多浮点操作数除运算控制器的类型0读多浮点操作数和结果锁存时序图; Fig. 6: the type 0 read multi-floating-point operand and result latch timing diagram of multi-floating-point operand division operation controller of the present invention;
图7:本发明之多浮点操作数除运算控制器的类型1读多浮点操作数和结果锁存时序图。
Fig. 7: A timing diagram of
图中: In the picture:
Ⅰ—命令字及其操作数写时序控制模块,Ⅱ—操作数存储器,Ⅲ—浮点操作数读时序控制模块,Ⅳ—操作数配置运算控制模块; Ⅰ—command word and its operand write sequence control module, Ⅱ—operand memory, Ⅲ—floating point operand read sequence control module, Ⅳ—operand configuration operation control module;
1—控制器识别,2—写地址计数器,3—写操作数脉冲发生控制模块, 4—方式类型寄存器,5—与门Ⅰ,6—读地址计数器,7—读操作数脉冲发生控制模块,8—与门Ⅱ,9—与门Ⅲ,10—与门Ⅳ,11—选通器,12—结果寄存器,13—操作数交换器,14—浮点数除法运算器,15—运算异常标志控制,16—32位三态门组,17—与门Ⅴ,18—与门Ⅵ,19—或门Ⅰ,20—或门Ⅱ。 1—controller identification, 2—write address counter, 3—write operand pulse generation control module, 4—mode type register, 5—AND gate I, 6—read address counter, 7—read operand pulse generation control module, 8—AND gate II, 9—AND gate III, 10—AND gate IV, 11—selector, 12—result register, 13—operand switch, 14—floating-point number division operator, 15—operation exception flag control , 16-32-bit tri-state gate group, 17-AND gate V, 18-AND gate VI, 19-OR gate I, 20-OR gate II.
文中缩略语说明: Explanation of abbreviations in the text:
FPGA-Field Programmable Gate Array,现场可编程门阵列; FPGA-Field Programmable Gate Array, Field Programmable Gate Array;
DB-Data Bus,数据总线; DB-Data Bus, data bus;
AB-Address Bus,地址总线; AB-Address Bus, address bus;
CS-Chip Select,片选或使能,图中CS代表“使能信号”; CS-Chip Select, chip select or enable, CS in the figure represents "enable signal";
Clock-时钟; Clock - clock;
RD-Read,读,图中代表“读信号”; RD-Read, read, the figure represents "read signal";
WR-Write,写,图中代表“写信号”; WR-Write, write, the figure represents "write signal";
IRQ-Interrupt Request,中断申请,图中代表“中断请求信号”; IRQ-Interrupt Request, interrupt application, the figure represents "interrupt request signal";
Busy-忙信号; Busy - busy signal;
Rst-Reset,复位。 Rst-Reset, reset.
具体实施方式 Detailed ways
实施例: Example:
一种多浮点操作数除运算控制器,如图1所示,实现多个32位符合IEEE754标准的浮点数除法运算,该控制器包括命令字及其操作数写时序控制模块Ⅰ、操作数存储器Ⅱ、浮点操作数读时序控制模块Ⅲ、操作数配置运算控制模块Ⅳ; A multi-floating-point operand division controller, as shown in Figure 1, realizes a plurality of 32-bit floating-point number division operations that meet the IEEE754 standard. The controller includes a command word and its operand write timing control module I, operand Memory II, floating-point operand read timing control module III, operand configuration operation control module IV;
所述命令字及其操作数写时序控制模块Ⅰ与操作数存储器Ⅱ、浮点操作数读时序控制模块Ⅲ、操作数配置运算控制模块Ⅳ连接; The command word and its operand writing sequence control module I are connected with the operand memory II, the floating-point operand reading sequence control module III, and the operand configuration operation control module IV;
所述操作数存储器Ⅱ还与浮点操作数读时序控制模块Ⅲ、操作数配置运算控制模块Ⅳ连接; The operand memory II is also connected to the floating-point operand read timing control module III and the operand configuration operation control module IV;
所述浮点操作数读时序控制模块Ⅲ还与操作数配置运算控制模块Ⅳ连接; The floating-point operand read timing control module III is also connected to the operand configuration operation control module IV;
所述命令字及其操作数写时序控制模块Ⅰ控制完成指令的写入和存储,需要占用系统总线;一条指令包括9位命令字和若干个操作数,操作数最多为127个;所述命令字及其操作数写时序控制模块Ⅰ被系统选中时,启动命令字及其操作数写时序控制模块Ⅰ工作,内部产生与系统WR信号同步的写时序脉冲序列;在写时序脉冲的控制下,锁存多浮点操作数除法指令的命令字,写入多浮点操作数予以存储;最后一个操作数被写入存储后,所述命令字及其操作数写时序控制模块Ⅰ停止工作; The command word and its operand write timing control module I control the writing and storage of the instruction, which needs to occupy the system bus; an instruction includes a 9-bit command word and several operands, and the operands are at most 127; the order When the word and its operand write sequence control module Ⅰ is selected by the system, the command word and its operand write sequence control module Ⅰ work, and internally generate a write sequence pulse sequence synchronous with the system WR signal; under the control of the write sequence pulse, Latch the command word of the multi-floating-point operand division instruction, and write the multi-floating-point operand to be stored; after the last operand is written and stored, the command word and its operand writing timing control module I stop working;
所述操作数存储器Ⅱ为双端口存储器,一个只写端口,一个只读端口,用于储存浮点操作数(下称为操作数);所述操作数存储器Ⅱ的写端口操作数的写入和读端口操作数的读出不存在需要仲裁的情况;所述操作数存储器Ⅱ的写端口受命令字及其操作数写时序控制模块Ⅰ控制,将系统数据总线DB传输的操作数写入操作数存储器Ⅱ;读端口受浮点操作数读时序控制模块Ⅲ控制,将操作数读出传输到操作数配置运算控制模块Ⅳ; The operand memory II is a dual-port memory, with a write-only port and a read-only port for storing floating-point operands (hereinafter referred to as operands); the write port operand of the operand memory II There is no need for arbitration in the readout of the operand of the read port; the write port of the operand memory II is controlled by the command word and its operand write timing control module I, and the operand transmitted by the system data bus DB is written into the operation The read port is controlled by the floating-point operand read sequence control module III, and the operand read is transmitted to the operand configuration operation control module IV;
所述浮点操作数读时序控制模块Ⅲ在内部读时序脉冲的控制下,自主完成浮点操作数从操作数存储器Ⅱ中的读出,不需要占用系统总线;所述浮点操作数读时序控制模块Ⅲ在命令字及其操作数写时序控制模块Ⅰ写入第1个操作数后被启动工作,输出忙信号Busy由“1”→“0”,并根据第1个操作数类型,内部产生与系统时钟Clock信号同步的读时序脉冲序列,按顺序将操作数读出参与除法运算;当参与运算的最后1个操作数读出之后,再经过一个除法运算的时间周期,输出忙信号Busy由“0”→“1”,发出一个时钟周期Clock的结果锁存脉冲后,停止浮点操作数读时序控制模块Ⅲ的工作; The floating-point operand read timing control module III, under the control of the internal read timing pulse, independently completes the reading of the floating-point operand from the operand memory II without occupying the system bus; the floating-point operand read timing The control module III is started to work after the command word and its operand writing sequence control module I write the first operand, the output busy signal Busy changes from "1" to "0", and according to the type of the first operand, the internal Generate a read timing pulse sequence synchronized with the system clock Clock signal, and read out the operands in order to participate in the division operation; after the last operand involved in the operation is read out, after a time period of the division operation, the busy signal Busy is output From "0" to "1", after sending a clock cycle Clock result latch pulse, stop the work of the floating-point operand read timing control module III;
所述操作数配置运算控制模块Ⅳ根据操作数存储器Ⅱ传输的第1个操作数的除法方式和类型,选通配置除法运算器的二个输入端的操作数1和操作数2,能够锁存每次除法运算的运算结果,判断运算结果是否异常;系统能够从操作数配置运算控制模块Ⅳ中读出中间运算结果和命令执行的最终运算结果。
According to the division mode and type of the first operand transmitted by the operand memory II, the operand configuration operation control module IV gates and configures the
如图2所示,所述命令字及其操作数写时序控制模块Ⅰ包括控制器识别1、写地址计数器2、写操作数脉冲发生控制模块3、方式类型寄存器4和与门Ⅰ5;
As shown in Figure 2, the command word and its operand write sequence control module I include
所述控制器识别1的输入端和系统地址总线AB的A31到A27线连接,CS信号输出端与写操作数脉冲发生控制模块3的写启动信号输入端、操作数配置运算控制模块Ⅳ连接;所述控制器识别1输入A31到A27的地址值与控制器识别1所设定的地址值相等,则控制器识别1的CS信号输出端为“0”,否则CS信号输出端为“1”;
The input terminal of the
所述写地址计数器2的操作数个数输入端与系统数据总线DB的D6和D0线连接,写预置脉冲输入端与写操作数脉冲发生控制模块3的脉冲①_1输出端连接,写计数脉冲输入端与写操作数脉冲发生控制模块3的脉冲③_1输出端连接,写地址输出端与操作数存储器Ⅱ的写地址输入端AB_1连接,写溢出输出端和与门Ⅰ5的一个输入端连接;
The operand number input end of the
所述写操作数脉冲发生控制模块3的写同步脉冲输入端与系统写信号WR线连接,复位输入端和与门Ⅰ5的输出端连接,脉冲①_1输出端还与方式类型寄存器4锁存信号输入端连接,作为读预置脉冲与浮点操作数读时序控制模块Ⅲ连接,脉冲②_1输出端与操作数存储器Ⅱ写端口的WR_1输入端连接,作为读启动脉冲与浮点操作数读时序控制模块Ⅲ连接;
The write synchronization pulse input terminal of the write operand pulse
当CS为“0”时,所述写操作数脉冲发生控制模块3在系统第1个WR信号的作用下启动工作,按照顺序输出脉冲①_1、脉冲②_1、脉冲③_1(参见图5),直到复位信号输入端由“1”→“0”才停止工作,置脉冲①_1、脉冲②_1和脉冲③_1输出端为“1”状态;
When CS is "0", the write operand pulse
所述方式类型寄存器4的输入端与系统数据总线DB的D8和D7线连接,方式输出端与操作数配置运算控制模块Ⅳ连接,类型输出端与浮点操作数读时序控制模块Ⅲ连接; The input end of the mode type register 4 is connected to the D8 and D7 lines of the system data bus DB, the mode output end is connected to the operand configuration operation control module IV, and the type output end is connected to the floating-point operand read timing control module III;
所述与门Ⅰ5的另二个输入端分别与系统复位信号Rst线、操作数配置运算控制模块Ⅳ连接; The other two input terminals of the AND gate I5 are respectively connected to the system reset signal Rst line and the operand configuration operation control module IV;
当控制器识别1输出的CS信号由“1”→“0”时,所述命令字及其操作数写时序控制模块Ⅰ启动写操作数脉冲发生控制模块3工作,写操作数脉冲发生控制模块3发出与系统WR信号同步的时序脉冲序列信号(参见图5),在脉冲①_1下降沿的作用下,将指令的命令字的第1个操作数的除法方式和类型锁存在方式类型寄存器4中,将操作数个数值预置给写地址计数器2,作为写地址计数器2的计数初值和操作数存储器Ⅱ写端口的写地址初值,并置写溢出输出端为“1”状态;脉冲②_1作为操作数存储器Ⅱ写端口的WR_1信号,将操作数写入操作数存储器Ⅱ中;脉冲③_1作为写地址计数器2的写计数脉冲,这样每写入一个操作数,产生1个计数脉冲,写地址输出端输出的地址值-1指向操作数存储器Ⅱ写端口的下一个存储单元的地址,当写地址输出端输出的地址值由预置值减至“0”时,写溢出输出端由“1”→“0”,复位写操作数脉冲发生控制模块3,置所有的脉冲输出端为“1”状态。
When the controller recognizes that the CS signal output by 1 changes from "1" to "0", the command word and its operand write sequence control module I start the write operand pulse
如图3所示,所述浮点操作数读时序控制模块Ⅲ包括读地址计数器6、读操作数脉冲发生控制模块7、与门Ⅱ8、与门Ⅲ9和与门Ⅳ10;
As shown in Figure 3, the floating-point operand read timing control module III includes a read
所述读地址计数器6的操作数个数输入端与系统数据总线DB的D6和D0线连接,读预置脉冲输入端与写操作数脉冲发生控制模块3的脉冲①_1输出端连接,读计数脉冲输入端和与门Ⅳ10的输出端连接,读地址输出端与操作数存储器Ⅱ的读地址输入端AB_2连接,读溢出输出端与读操作数脉冲发生控制模块7的读溢出输入端连接;
The operand number input end of the read
所述读地址计数器6在读预置脉冲的作用下将输入命令的操作数个数作为计数初值、操作数存储器Ⅱ读端口的读地址初值,并置读溢出输出端信号为“1”状态;每来一个读计数脉冲,读地址计数器6的读地址值-1,修改操作数存储器Ⅱ读端口存储单元地址值,当读地址计数器6输出的读地址值由预置值减至“0”时,读溢出输出端由“1”→“0”,读溢出输出信号是操作数读出过程结束的标志;
The read
所述读操作数脉冲发生控制模块7的读同步脉冲输入端与系统时钟Clock线连接,复位输入端和与门Ⅲ9的输出端连接,读启动输入端与写操作数脉冲发生控制模块3的脉冲②_1输出端连接,读时序控制输入端与方式类型寄存器4的类型输出端连接;脉冲①_2输出端和与门Ⅱ8的一个输入端、操作数配置运算控制模块Ⅳ连接;脉冲②_2输出端和与门Ⅳ10的一个输入端、操作数配置运算控制模块Ⅳ连接,脉冲③_2输出端和与门Ⅱ8的另一个输入端连接;脉冲④_2输出端和与门Ⅳ10的另一个输入端连接;脉冲⑤_2输出端、脉冲⑥_2输出端与操作数配置运算控制模块Ⅳ连接;Busy输出端向系统输出Busy忙信号;
The read synchronization pulse input end of the read operand pulse
所述与门Ⅱ8的输出端与操作数存储器Ⅱ的读信号输入端RD_2连接; The output end of the AND gate II 8 is connected to the read signal input end RD_2 of the operand memory II;
所述与门Ⅲ9的二个输入端分别与系统复位信号Rst线、操作数配置运算控制模块Ⅳ连接; The two input terminals of the AND gate III9 are respectively connected to the system reset signal Rst line and the operand configuration operation control module IV;
当复位输入端为“1”时,所述浮点操作数读时序控制模块Ⅲ在脉冲①_1的读预置脉冲作用下将操作数个数值预置给读地址计数器6,操作数存储器Ⅱ读端口的地址初值为操作数个数值;在第一个脉冲②_1的读启动脉冲作用下启动读操作数脉冲发生控制模块7的工作,Busy输出端由“1”→“0”;
When the reset input terminal is "1", the floating-point operand read timing control module III presets the operand value to the read
当读操作数脉冲发生控制模块7的读时序控制输入端输入的类型信号为“0”时,按照顺序循环发出脉冲③_2、脉冲④_2、脉冲⑤_2,以及发出一个脉冲⑥_2(参见图6),当读溢出输入端信号由“1”→“0”时,置脉冲③_2、脉冲④_2输出端为“1”,停止脉冲③_2和脉冲④_2产生,经过一个运算周期时间,Busy输出端由“0”→“1”状态,输出一个时钟周期Clock的锁存结果脉冲⑤_2,然后置脉冲⑤_2输出端为“1”,浮点操作数读时序控制模块Ⅲ停止工作;
When the type signal input by the read timing control input terminal of the read operand pulse
当读操作数脉冲发生控制模块7的读时序控制输入端输入的类型信号为“1”时,按照顺序发出脉冲①_2和脉冲②_2,再按照顺序循环发出脉冲③_2、脉冲④_2、脉冲⑤_2(参见图7),脉冲③_2、脉冲④_2、脉冲⑤_2产生过程与类型信号为“0”时相同。
When the input type signal of the read timing control input terminal of the read operand pulse
如图4所示,所述操作数配置运算控制模块Ⅳ包括选通器11、结果寄存器12、操作数交换器13、浮点数除法运算器14、运算异常标志控制15、32位三态门组16、与门Ⅴ17、与门Ⅵ18、或门Ⅰ19和或门Ⅱ20;
As shown in Figure 4, the operand configuration operation control module IV includes a
所述选通器11的二个输入端分别和操作数存储器Ⅱ的操作数输出端DB_2、浮点数除法运算器14的运算结果输出端连接,输出端和结果寄存器12的输入端连接;选通控制输入端和与门Ⅴ17的输出端连接;
The two input terminals of the
所述结果寄存器12的输出端和操作数交换器13的交换数1输入端、32位三态门组16输入端连接;结果锁存信号输入端和与门Ⅵ18的输出端连接;
The output end of the
所述操作数交换器13的交换数2输入端与操作数存储器Ⅱ的操作数输出端DB_2连接,交换控制端和或门Ⅰ19的输出端连接,二个输出端分别与浮点数除法运算器14的操作数1输入端、操作数2输入端连接;
The
所述浮点数除法运算器14的运算结果输出端还与运算异常标志控制15的运算结果输入端连接;
The operation result output end of described floating-point number division operator 14 is also connected with the operation result input end of operation
所述运算异常标志控制15的锁存结果脉冲输入端与读操作数脉冲发生控制模块7的锁存结果脉冲⑤_2输出端连接;IRQ输出端和与门Ⅰ5的另一个输入端、与门Ⅲ9的另一个输入端连接,IRQ输出端还向系统输出中断请求信号IRQ;当中间运算结果或最终运算结果出现异常时,所述运算异常标志控制15向系统发出中断请求信号IRQ,并复位写操作数脉冲发生控制模块3和读操作数脉冲发生控制模块7;
The latch result pulse input end of the operation
所述32位三态门组16的输出端和系统数据总线DB连接,控制输入端和或门Ⅱ20的输出端连接;
The output end of the 32-bit
所述与门Ⅴ17的二个输入端分别与读操作数脉冲发生控制模块7的脉冲①_2、脉冲②_2的输出端连接;
The two input terminals of the AND gate V17 are respectively connected with the output terminals of pulse ①_2 and pulse ②_2 of the read operand pulse
所述与门Ⅵ18的二个输入端分别与读操作数脉冲发生控制模块7的脉冲②_2、脉冲⑤_2的输出端连接;
The two input terminals of the AND gate VI18 are respectively connected to the output terminals of the pulse ②_2 and the pulse ⑤_2 of the read operand pulse
所述或门Ⅰ19的一个输入端与方式类型寄存器4的方式输出端连接,另一个输入端与读操作数脉冲发生控制模块7的脉冲⑥_2输出端连接;
An input end of the OR gate I19 is connected to the mode output end of the mode type register 4, and the other input end is connected to the pulse ⑥_2 output end of the read operand pulse
所述或门Ⅱ20的二个输入端分别与控制器识别1的CS信号输出端、系统读信号RD线连接;当CS为“0”时,在系统RD信号的作用下,读出中间运算结果或命令执行的最终运算结果。
The two input terminals of the
如图2、图3、图4所示,所述浮点操作数读时序控制模块Ⅲ与方式类型寄存器4的类型输出端连接;所述操作数配置运算控制模块Ⅳ与方式类型寄存器4的方式输出端连接;类型的定义是从操作数存储器Ⅱ读出的第1个操作数的类型,方式的定义是当类型为“0”时,第1个操作数参加除法运算的处理方式; As shown in Figure 2, Figure 3 and Figure 4, the floating-point operand read timing control module III is connected to the type output of the mode type register 4; the operand configuration operation control module IV and the mode of the mode type register 4 The output terminal is connected; the definition of type is the type of the first operand read from the operand memory II, and the definition of mode is the processing method for the first operand to participate in the division operation when the type is "0";
类型0:第1个操作数作为参与除运算的操作数2,运算结果作为操作数1;
Type 0: The first operand is used as
类型1:第1个操作数作为参与除运算的操作数1,第2个操作数作为操作数2;
Type 1: The first operand is used as
所述读操作数脉冲发生控制模块7输出的脉冲①_2、脉冲②_2只在方式类型寄存器4输出的类型为“1”时产生;当脉冲①_2或脉冲②_2为“0”时,选通器11的选通控制输入端为“0”,选通器11输出从操作数存储器Ⅱ读出的第1个操作数;脉冲①_2和脉冲②_2都为“1”时,选通器11输出运算结果;
The pulse 1._2 and pulse 2._2 output of the read operand pulse
从操作数存储器Ⅱ读出的第1个操作数参加除法运算,方式类型寄存器4输出的方式和类型信号控制正在执行命令的第1个操作数和运算结果的除法方式: The first operand read from the operand memory II participates in the division operation, and the mode and type signal output by the mode type register 4 controls the division mode of the first operand and the operation result of the command being executed:
方式为“0”,类型为“0”:类型为“0”结果寄存器12输出的是运算结果,操作数交换器13的交换数1输入端为运算结果,操作数交换器13的交换数2输入端为从操作数存储器Ⅱ读出的第1个操作数;当读第1个操作数时,此时脉冲⑥_2为“0”有效,由于方式为“0”状态,使得操作数交换器13的控制端为“0”,操作数交换器13的交换数1输入端的运算结果作为操作数交换器13输出的操作数2,操作数交换器13的交换数,2输入端的第1个操作数作为操作数交换器13输出的操作数1,即操作数交换器13的2个输入和2个输出进行交换传输,执行第1个操作数/运算结果的除法运算;
The mode is "0", the type is "0": what the type is "0" the output of the
方式为“1”,类型为“0”:当读第1个操作数时,此时虽然脉冲⑥_2为“0”有效,但方式为“1”状态,使得操作数交换器13的控制端为“1”,操作数交换器13的2个输入和2个输出不进行交换传输;运算结果作为浮点数除法运算器14的操作数1,第1个操作数作为操作数2,执行运算结果/第1个操作数的除法运算;
The mode is "1", and the type is "0": when reading the first operand, although the pulse ⑥_2 is "0" valid at this time, the mode is in the "1" state, so that the control terminal of the
当类型为“1”时,第1个操作数的配置与输入的方式信号状态无关,读操作数脉冲发生控制模块7不会产生脉冲⑥_2信号,脉冲⑥_2输出端为“1”状态,使得操作数交换器13的控制端为“1”,操作数交换器13的2个输入和2个输出不进行交换传输;第1个操作数作为浮点数除法运算器14的操作数1,第2个操作数作为操作数2,执行第1个操作数/第2个操作数的运算。
When the type is "1", the configuration of the first operand has nothing to do with the signal state of the input mode, the read operand pulse
Claims (5)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310681578.3A CN103645877B (en) | 2013-12-13 | 2013-12-13 | Division operation control unit for multiple floating-point operands |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310681578.3A CN103645877B (en) | 2013-12-13 | 2013-12-13 | Division operation control unit for multiple floating-point operands |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103645877A true CN103645877A (en) | 2014-03-19 |
CN103645877B CN103645877B (en) | 2017-01-11 |
Family
ID=50251102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310681578.3A Expired - Fee Related CN103645877B (en) | 2013-12-13 | 2013-12-13 | Division operation control unit for multiple floating-point operands |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103645877B (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5206826A (en) * | 1990-11-07 | 1993-04-27 | Kabushiki Kaisha Toshiba | Floating-point division cell |
CN1149734A (en) * | 1995-10-31 | 1997-05-14 | 三星电子株式会社 | Parallel treatment dividing circuit |
CN201311633Y (en) * | 2008-11-07 | 2009-09-16 | 中国北车股份有限公司大连电力牵引研发中心 | Function module realized by floating point divider based on FPGA |
CN102063284A (en) * | 2010-12-13 | 2011-05-18 | 青岛海信信芯科技有限公司 | Division operation method and device |
-
2013
- 2013-12-13 CN CN201310681578.3A patent/CN103645877B/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5206826A (en) * | 1990-11-07 | 1993-04-27 | Kabushiki Kaisha Toshiba | Floating-point division cell |
CN1149734A (en) * | 1995-10-31 | 1997-05-14 | 三星电子株式会社 | Parallel treatment dividing circuit |
CN201311633Y (en) * | 2008-11-07 | 2009-09-16 | 中国北车股份有限公司大连电力牵引研发中心 | Function module realized by floating point divider based on FPGA |
CN102063284A (en) * | 2010-12-13 | 2011-05-18 | 青岛海信信芯科技有限公司 | Division operation method and device |
Non-Patent Citations (4)
Title |
---|
R.V.K. PILLAI ET AL: "A Low Power Approach to Floating Point Adder Design for DSP Applications", 《JOURNAL OF VLSI SIGNAL PROCESSING SYSTEMS FOR SIGNAL,IMAGE AND VIDEO TECHNOLOGY》 * |
张小妍 等: "高速浮点运算单元的FPGA实现", 《信息化研究》 * |
张素萍 等: "单精度浮点运算单元的FPGA设计与实现", 《计算机测量与控制》 * |
王松: "基于FPGA的浮点协处理器IP核设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN103645877B (en) | 2017-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104317770B (en) | Data store organisation for many-core processing system and data access method | |
CN103927219A (en) | Accurate-period simulation model for reconfigurable special processor core and hardware architecture thereof | |
CN102306141B (en) | Method for describing configuration information of dynamic reconfigurable array | |
CN107562549A (en) | Isomery many-core ASIP frameworks based on on-chip bus and shared drive | |
CN103677742B (en) | Many floating-point operations number plus/minus arithmetic and control unit | |
CN203689501U (en) | Multi-floating-point operand addition/subtraction operation controller | |
CN103645886B (en) | Many floating-point operations number plus/minus, multiplication and division arithmetic and control unit | |
CN105718396B (en) | A kind of I of big data master transmissions2C bus units and its means of communication | |
CN103645887B (en) | Two instruction many floating-points operand plus/minus, multiplication and division operation control device | |
CN102708079B (en) | Be applied to the method and system of the control data transmission of microcontroller | |
CN203746056U (en) | Multi-operand four-arithmetic mixed fixed-point arithmetic operation controller | |
CN103645877B (en) | Division operation control unit for multiple floating-point operands | |
CN203812229U (en) | Multi-floating-point operand addition/subtraction, multiplication, and division operation controller | |
CN103631559B (en) | Double-instruction multi-floating-point operand division operation controller | |
CN103677740B (en) | Floating number plus/minus, multiplication and division computing perform controller | |
CN103645880B (en) | Double instruction many floating-point operations number plus/minus arithmetic and control units | |
CN104238412B (en) | Optoelectronic isolation type SPI-like channel based on DSP driving | |
CN203812228U (en) | Floating-point division execution controller | |
CN103645881B (en) | Execution controller for floating-point number addition/subtractionoperation operation | |
CN203689500U (en) | Multi-floating-point operand division operation controller | |
CN203746055U (en) | Floating-point addition/subtraction, multiplication, and division execution controller | |
CN103645879B (en) | Execution controller for floating-point number division operation | |
CN203746058U (en) | Floating-point addition/subtraction execution controller | |
JP2009527816A5 (en) | ||
CN102033733A (en) | Novel micro controller unit (MCU) structure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170111 Termination date: 20211213 |