CN1333356C - Write serialization and resource duplication combined multi-port register file design method - Google Patents
Write serialization and resource duplication combined multi-port register file design method Download PDFInfo
- Publication number
- CN1333356C CN1333356C CNB2004100450813A CN200410045081A CN1333356C CN 1333356 C CN1333356 C CN 1333356C CN B2004100450813 A CNB2004100450813 A CN B2004100450813A CN 200410045081 A CN200410045081 A CN 200410045081A CN 1333356 C CN1333356 C CN 1333356C
- Authority
- CN
- China
- Prior art keywords
- write
- register file
- port
- read
- data
- 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.)
- Expired - Fee Related
Links
Landscapes
- Static Random-Access Memory (AREA)
Abstract
The present invention discloses a design method for a multi-port register file of combined writing serialization and resource duplication, which aims to solve the technical problem that a design method for a multi-port register file having the characteristics of strong universality, small cost of hardware, high performance and short design period is not provided. The present invention has the technical scheme that a register file is designed into two parts, one part is a writing serialization part, and the other part comprises a storage body and a reading port part. A plurality of writing ports can be realized by a method of writing operation serialization in the writing serialization part; static RAM arranged in the design of FPGA and ASIC is utilized, and a plurality of reading ports can be realized by a method of resource duplication in the storage body and the reading part. The present invention has the advantages of strong universality, reduced complexity of design, reduced hardware needed in the realization of the design and improved performance.
Description
Technical field: the present invention relates in the integrated circuit (IC) design design and the implementation method of multiport register file in the design of register file design method, especially on-site programmable gate array FPGA and application-specific integrated circuit ASIC.
Background technology: microprocessor is the core component of current computer and embedded system.Along with the raising of integrated circuit technology level and the development of designing technique, the design of FPGA or ASIC has become the important component part of microprocessor Design and checking.Register file is a vitals of microprocessor, and the scale that characteristics of modern high performance microprocessor are register files is big, reading-writing port is many.In FPGA, use though also exist the static SRAM of single port or dual-port to can be used as register file, its port number can not directly use as multiport register file very little.In FPGA, realize multiport register file at present, generally adopt a kind of as
Www.fpgacpu.orgThe method of announcing that is called " Double Ram ", but this method hardware spending is big, and hardware consumption is difficult to stand after port surpasses some.In the ASIC design, the general method for designing that adopts full customization of multiport register file, yet technical threshold height, the design cycle of full Custom Design are long, are dissolved into the view that goes also must set up various complexity in the present ASIC design cycle in order to make full customized module.Therefore, concerning FPGA and ASIC design, seek and a kind ofly not only be applicable to FPGA but also be applicable to that the multiport register file method for designing of ASIC is the key issue that needs to be resolved hurrily.
Summary of the invention: the technical problem to be solved in the present invention is: at the problem that multiport register file design in present FPGA and the ASIC design exists, the method for designing of the multiport register file that provide a kind of highly versatile, hardware spending is little, performance is high, the design cycle is short.
Technical scheme of the present invention is that register file design is become two parts, and a part is to write the serial parts, and a part is memory bank and read port parts.In writing the serial parts, adopt the serialized method of write operation to realize a plurality of write ports; The static RAM (SRAM) that provides in FPGA and the ASIC design is provided, and the method by resources duplication in memory bank and read port parts realizes a plurality of read ports.One has the specific design method of the multiport register file of m read port and n write port to be:
1. determine the implementation method of single port register file, in FPGA, the single port register file is realized by distributed RAM; In the ASIC design, the single port register file generates with memory bank compiler (MemoryCompiler) compiling.The single port register file is the register file with a read port and a write port, and read port comprises to be read the address and read enable signal input end, read data output terminal; Write port comprises write data, write address, writes the enable signal input end.
2. in writing the serial parts, adopt and write n the write port that the serialization method realizes register file, write the serial parts and form by n bank of latches, a mould k counter and a MUX:
1) bank of latches of n group by the major clock clk control of system is set, a bank of latches is made up of data latches, address latch and enable signal latch, the rising edge of system clock clk with data, the address of n write port, write enable signal and be latched into n group bank of latches respectively, promptly the data of the 1st write port are write the write data latch device that is latched into bank of latches 1; The address latch of the 1st write port is to the write address latch of bank of latches 1; The 1st write port write the enable latch of writing that enable signal is latched into bank of latches 1; The data of the 2nd write port are write the write data latch device that is latched into bank of latches 2; The address latch of the 2nd write port is to the write address latch of bank of latches 2; The 2nd write port write the enable latch of writing that enable signal is latched into bank of latches 2; ... and the like, the data of n write port are write the write data latch device that is latched into bank of latches n; The address latch of n write port is to the write address latch of bank of latches n; N write port write the enable latch of writing that enable signal is latched into bank of latches n.The data of supposing write port are a position, and the address is the b position, and enable signal is 1, and then a bank of latches is (a+b+1) individual latch.
2) a mould k counter by clock clk_fast control is set, k 〉=n, the frequency of clock clk_fast be clock clk frequency k doubly, after the rising edge of clk, the value of mould k counter is 0, adds 1 counting thereafter.
3) MUX by mould k counter controls is set.MUX selects 1 MUX to form by 3 n, is respectively write data, write address, writes the enable signal MUX.The input of MUX comes from n group latch, under the control of mould k counter, at quick clock
Clk_fastEach bat, select a bank of latches respectively, with wherein write data, write address and write enable signal and deliver to memory bank and read port parts.The currency that makes mould k counter is cur_count, and when cur_count=i, the output of i group latch is selected; When cur_count=i+1, the output of i+1 group latch is selected; And the like, when cur_count=i+n-2, the output of n-1 group latch is selected; When cur_count 〉=i+n-1, the output of n group latch is selected, wherein i 〉=0 and i≤k-n.
3. adopt the resources duplication method to realize m read port of register file in memory bank and read port parts: memory bank and read port parts are made up of m single port register file.The write data of m single port register file, write address and write the enable signal input end all respectively with write data, write address, write the output that enables MUX and link to each other.Under the control of quick clock clk_fast, each data of clapping a write port writes m single port register file simultaneously, like this, the data of n write port just are written in m the single port register file successively serially simultaneously, because write data, the write address of m single port register file and the signal of writing the connection of enable signal input end all are the same, therefore the data of their storages are the same, have guaranteed m the data consistent that read port has access to.The m of a multiport register file of the present invention read port is corresponding one by one with m single port register file, the data that read the address of i read port of multiport register file and read enable signal and be connected respectively to i single port register file and read the address and read to enable input end, i single port register file are i the data that read port is read just.
Adopt the present invention can produce following useful technique effect:
1. the present invention both had been applicable to the design of the register file of FPGA, was applicable to the design of the register file of ASIC again, highly versatile.
2. the resource that can provide in FPGA and the ASIC design has been provided, has reduced the complexity of design.
3. pass through the write operation serialization, a write port of single port register file is shared in a plurality of write port timesharing, and the hardware spending of having avoided a plurality of write ports of direct realization to bring has reduced the hardware that the design realization needs.
4. by resources duplication, simplify the design realization of read port, and can guarantee effectively that the data that read port has access to are consistent, improved performance.
Description of drawings:
Fig. 1 is a building-block of logic with register file of m read port and n write port that adopts the present invention to realize;
Embodiment:
Fig. 1 is a building-block of logic with register file of m read port and n write port that adopts the present invention to realize.The present invention becomes two parts with register file design, and a part is to write the serial parts, and a part is memory bank and read port parts.Writing the serial parts is made up of the counter of n bank of latches, a MUX and a mould k.The number of bank of latches equates with the write port number, each bank of latches is made up of a data latch, a b address latch and 1 enable signal latch, and the rising of system clock clk or negative edge are with data, the address of write port and write enable signal and latch respectively.MUX in each bat of clock clk_fast fast, is selected a bank of latches respectively under the control of mould k (k is a number that is not less than n) counter, wherein data, address and enable signal are delivered to memory bank and read port parts.Memory bank and read port parts are made up of m single port register file, and the single port register file is the register file with a read port and a write port, and read port comprises to be read the address and read enable signal input end, read data output terminal; Write port comprises write data, write address, writes the enable signal input end.M is the number of read port.The write data of m single port register file, write address and write the enable signal input end all respectively with write data, write address, write the output that enables MUX and link to each other.Under the control of quick clock clk_fast, each data of clapping a write port writes m single port register file.Because write data, the write address of m single port register file all are the same with the signal of writing the connection of enable signal input end, so the data that their are stored also are the same.The m of a multiport register file of the present invention read port is corresponding one by one with m single port register file, the data that read the address of i read port of multiport register file and read enable signal and be connected respectively to i single port register file and read the address and read to enable input end, i single port register file are i the data that read port is read just.
The present invention adopts in the functional verification of the dsp chip FT-C62 that University of Science and Technology for National Defence develops voluntarily.In the FPGA of FT-C67 CPU core simulating, verifying, adopt the present invention in a slice FPGA, to realize comprising two 10 CPU core of reading 6 register files of writing.Before adopt the present invention, singly be 80% the resource of the register file FPGA VirtexII xcv4000 that just taken 4,000,000 in Xilinx company; Adopt the present invention, two register files have only taken about 40% resource altogether.
Claims (1)
1. write the multiport register file method for designing that serialization and resources duplication combine for one kind, it is characterized in that register file design is become two parts, a part is to write the serial parts, a part is memory bank and read port parts, adopts the serialized method of write operation to realize a plurality of write ports in writing the serial parts; The static RAM (SRAM) that provides in FPGA and the ASIC design is provided, and the method by resources duplication in memory bank and read port parts realizes a plurality of read ports, and one has the specific design method of the multiport register file of m read port and n write port to be:
1.1 determine the implementation method of single port register file, in FPGA, the single port register file is realized by distributed RAM; In the ASIC design, the single port register file generates with the compiling of memory bank compiler, and the single port register file is the register file with a read port and a write port, and read port comprises to be read the address and read enable signal input end, read data output terminal; Write port comprises write data, write address, writes the enable signal input end;
1.2 in writing the serial parts, adopt and write n the write port that the serialization method realizes register file, write the serial parts and form by n bank of latches, a mould k counter and a MUX:
1.2.1 the bank of latches of n group by the major clock clk control of system is set, a bank of latches is made up of data latches, address latch and enable signal latch, the rising of system clock clk or negative edge with data, the address of n write port, write enable signal and be latched into n group bank of latches respectively, the data of write port are a position, the address is the b position, enable signal is 1, and then a bank of latches is (a+b+1) individual latch;
1.2.2 a mould k counter by clock clk_fast control is set, k 〉=n, the frequency of clock clk_fast be clock clk frequency k doubly, after the rising edge of clk, the value of mould k counter is 0, adds 1 counting thereafter;
1.2.3 a MUX by mould k counter controls is set, and MUX selects 1 MUX to form by 3 n, is respectively write data, write address, writes the enable signal MUX; The input of MUX comes from n group latch, under the control of mould k counter, in each bat of clock clk_fast fast, selects a bank of latches respectively, with wherein write data, write address and write enable signal and deliver to memory bank and read port parts; The currency that makes mould k counter is cur_count, and when cur_count=i, the output of i group latch is selected; When cur_count=i+1, the output of i+1 group latch is selected; And the like, when cur_count=i+n-2, the output of n-1 group latch is selected; When cur_count 〉=i+n-1, the output of n group latch is selected, wherein i 〉=0 and i≤k-n;
1.3 adopt the resources duplication method to realize m read port of register file in memory bank and read port parts: memory bank and read port parts are made up of m single port register file, the write data of m single port register file, write address and write the enable signal input end all respectively with write data, write address, write the output that enables MUX and link to each other; Under the control of quick clock clk_fast, each data of clapping a write port writes m single port register file simultaneously, like this, the data of n write port just are written in m the single port register file successively serially simultaneously, because write data, the write address of m single port register file and the signal of writing the connection of enable signal input end all are the same, therefore the data of their storages are the same, have guaranteed m the data consistent that read port has access to; The m of a multiport register file read port is corresponding one by one with m single port register file, the data that read the address of i read port of multiport register file and read enable signal and be connected respectively to i single port register file and read the address and read to enable input end, i single port register file are i the data that read port is read just.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100450813A CN1333356C (en) | 2004-07-23 | 2004-07-23 | Write serialization and resource duplication combined multi-port register file design method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100450813A CN1333356C (en) | 2004-07-23 | 2004-07-23 | Write serialization and resource duplication combined multi-port register file design method |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1598806A CN1598806A (en) | 2005-03-23 |
CN1333356C true CN1333356C (en) | 2007-08-22 |
Family
ID=34665609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100450813A Expired - Fee Related CN1333356C (en) | 2004-07-23 | 2004-07-23 | Write serialization and resource duplication combined multi-port register file design method |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1333356C (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100929832B1 (en) * | 2008-02-29 | 2009-12-07 | 주식회사 하이닉스반도체 | Semiconductor memory device for high speed data input / output |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11175394A (en) * | 1997-12-11 | 1999-07-02 | Nec Corp | Information processor and multi-port register file |
US20010011342A1 (en) * | 1998-07-09 | 2001-08-02 | Pechanek Gerald G. | Methods and apparatus for dynamic instruction controlled reconfigurable register file with extended precision |
US6343348B1 (en) * | 1998-12-03 | 2002-01-29 | Sun Microsystems, Inc. | Apparatus and method for optimizing die utilization and speed performance by register file splitting |
CN1501292A (en) * | 2002-09-11 | 2004-06-02 | �����ɷ� | High-level synthesis method for producing the explanation of digital circuit |
-
2004
- 2004-07-23 CN CNB2004100450813A patent/CN1333356C/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11175394A (en) * | 1997-12-11 | 1999-07-02 | Nec Corp | Information processor and multi-port register file |
US20010011342A1 (en) * | 1998-07-09 | 2001-08-02 | Pechanek Gerald G. | Methods and apparatus for dynamic instruction controlled reconfigurable register file with extended precision |
US6343348B1 (en) * | 1998-12-03 | 2002-01-29 | Sun Microsystems, Inc. | Apparatus and method for optimizing die utilization and speed performance by register file splitting |
CN1501292A (en) * | 2002-09-11 | 2004-06-02 | �����ɷ� | High-level synthesis method for producing the explanation of digital circuit |
Also Published As
Publication number | Publication date |
---|---|
CN1598806A (en) | 2005-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9390212B2 (en) | Methods and apparatus for synthesizing multi-port memory circuits | |
US20070245278A1 (en) | Simulation of power domain isolation | |
US8132144B2 (en) | Automatic clock-gating insertion and propagation technique | |
US7800974B2 (en) | Adjustable pipeline in a memory circuit | |
KR100613030B1 (en) | Register file and method for designing a register file | |
CN103219037A (en) | In-chip memory with multi-port read-write | |
CN1627521B (en) | Semiconductor integrated circuit device | |
US7778105B2 (en) | Memory with write port configured for double pump write | |
CN102610269B (en) | Write-once read-many disc internal memory | |
CN105045335A (en) | FPGA information processing system with embedded 8051IP core | |
CN105426314B (en) | A kind of process mapping method of FPGA memories | |
CN102844742A (en) | Pulse dynamic logic gates with mux-d scan functionality | |
CN103412848A (en) | Method for sharing single program memory by four-core processor system | |
US7884649B1 (en) | Selection of optimal clock gating elements | |
CN1333356C (en) | Write serialization and resource duplication combined multi-port register file design method | |
CN105589679A (en) | Register file organization for sharing processor process context | |
CN1815621B (en) | Systems and methods for accessing memory cells | |
CN110097902B (en) | Read-write control module and method for same port and dual-port memory | |
CN101689851A (en) | Logic state catching circuits | |
Chatterjee et al. | Verification and debugging of lc-3 test bench environment using system verilog | |
CN100565443C (en) | A kind of adiabatic fifo circuit based on CTGAL | |
Fuketa et al. | An average-performance-oriented subthreshold processor self-timed by memory read completion | |
CN103377029A (en) | Parametric universal FIFO control method | |
Sit et al. | A four-phase handshaking asynchronous static RAM design for self-timed systems | |
Takahashi et al. | The circuits and physical design of the synergistic processor element of a CELL processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070822 Termination date: 20190723 |
|
CF01 | Termination of patent right due to non-payment of annual fee |