automatic data path extraction in large scale register
play

Automatic Data Path Extraction in Large-Scale Register-Transfer - PowerPoint PPT Presentation

Automatic Data Path Extraction in Large-Scale Register-Transfer Level Designs Wei Song, Jim Garside and Doug Edwards School of Computer Science, the University of Manchester Manchester M13 9PL United Kingdom 02/06/2014 Advanced Processor


  1. Automatic Data Path Extraction in Large-Scale Register-Transfer Level Designs Wei Song, Jim Garside and Doug Edwards School of Computer Science, the University of Manchester Manchester M13 9PL United Kingdom 02/06/2014 Advanced Processor Technologies Group The School of Computer Science

  2. Motivation • Data path extraction is important – Hardware verification – Synthesis for asynchronous circuits – System partition • Methodology – State-space analysis • actuate but slow and not scalable – Pattern matching • Fast, scalable but inaccurate • Accuracy depends on accurate type recognition Advanced Processor Technologies Group School of 02/06/2014 2 Computer Science

  3. Tool Flow Bison+Flex, support A new graphic abstraction synthesizable Verilog to reveal relations between 2001. Verilog signals. Verilog RTL Abstract Signal-level Verilog RTL Parser Syntax Tree DFG Verilog RTL Data Path Extraction Data Path Only Graphic Remove Signal-level DFG Trimming Control Arcs Remove control Still directly mapped with Remove control related signals. relations. the AST. Possible for code extraction. Advanced Processor Technologies Group School of 02/06/2014 3 Computer Science

  4. Signal-Level Data Flow Graph (DFG) module GCD (Clock,Reset,Load,A,B,Done,Y); A Greatest Common Divider (GCD) Calculator input Clock,Reset,Load; input [7:0] A,B; output Done; output [7:0] Y; A_P Reset_P Load_P B_P Clock_P reg A_lessthan_B, Done; reg [7:0] A_New, A_Hold, B_Hold, Y; I I I I I always @(posedge Clock) Reset A Clock if(Reset) begin Load B A_Hold = 0; B_Hold = 0; end else if(Load) begin A_Hold = A; B_Hold = B; end else if(A_lessthan_B) begin A_Hold = B_Hold; A_lessthan_B B_Hold = A_New; end else A_Hold = A_New; B_Hold FF FF A_Hold always @(A_Hold or B_Hold) A_New if(A_Hold >= B_Hold) begin A_lessthan_B = 0; I i_port A_New = A_Hold - B_Hold; end else begin O o_port A_lessthan_B = 1; A_New = A_Hold; wire end FF register always @(A_Hold or B_Hold) Done Y if(B_Hold == 0) begin Done = 1; Y = A_Hold; MODULE module end else begin clock Done = 0; Y = 0; end Y_P Done_P control endmodule O O data Advanced Processor Technologies Group School of 02/06/2014 4 Computer Science

  5. Definition of a Signal-Level DFG A_P Reset_P Load_P B_P Clock_P I I I I I Reset A Clock Load B A signal-level DFG is a directed multi-graph denoted by a six-tuple: DFG ( , , V AT F T F , , , )  V V A A A_lessthan_B V a finite set of nodes representing Verilog components (signal and m odule) B_Hold FF FF A_Hold A V V a finite set of arcs connecting nodes   A_New T a set of node types { reg wire in out module , , , , } I i_port V F : V  T map types to nodes O o_port V V T a set of arc types { control d , ata clock reset , , } wire A F : A T map types to arcs  FF register Done A A Y MODULE module clock Y_P Done_P control O O data Advanced Processor Technologies Group School of 02/06/2014 5 Computer Science

  6. Node insertion input Clock,Reset,Load; input [7:0] A,B; A_P Reset_P Load_P B_P Clock_P output Done; I I I I I output [7:0] Y; reg A_lessthan_B, Done; Reset A Load B Clock reg [7:0] A_New, A_Hold, B_Hold, Y; always @(posedge Clock) if(Reset) begin A_lessthan_B A_Hold = 0; B_Hold = 0; B_Hold end else if(Load) begin FF FF A_Hold A_Hold = A; B_Hold = B; A_New end else if(A_lessthan_B) begin A_Hold = B_Hold; B_Hold = A_New; end else A_Hold = A_New; Done Y always @(A_Hold or B_Hold) if(B_Hold == 0) begin Latch will be detected Done = 1; Y = A_Hold; by case analysis. Y_P Done_P end else begin O O Done = 0; Y = 0; end Advanced Processor Technologies Group School of 02/06/2014 6 Computer Science

  7. Type Estimation of Arcs Relation Tree always @(posedge Clock) if(Reset) begin A_New A_Hold = 0; B_Hold = 0; B_Hold end else if(Load) begin A_Hold = A_New A_Hold = A; B_Hold = B; A A_lessthan_B end else if(A_lessthan_B) begin A_Hold = B_Hold; If(A_lessthan_B) Load B_Hold = A_New; 0 end else A_Hold = A_New; Reset Clock A_Hold = 0 If(Reset) (posedge Clock) Reset A Clock Load A_Hold control recognition: A_lessthan_B if(sig) Arc connection case(sig) FF A_Hold in DFG C = sig?A:B A_New D = mem[addr] Advanced Processor Technologies Group School of 02/06/2014 7 Computer Science

  8. Remove Control Arcs A_P A_P Reset_P Load_P Reset_P Load_P B_P Clock_P B_P Clock_P I I I I I I I I I I Reset A Clock Reset A Clock Load B Load B A_lessthan_B A_lessthan_B B_Hold B_Hold FF FF FF FF A_Hold A_Hold A_New A_New Done Done Y Y Y_P Done_P Y_P Done_P O O O O Advanced Processor Technologies Group School of 02/06/2014 8 Computer Science

  9. Recursively Remove Dangling Components A_P Reset_P Load_P B_P Clock_P A_P B_P I I I I I I I Nodes to be Reset A Clock Load B A B recursively removed A_lessthan_B dangling B_Hold FF FF B_Hold A_Hold FF FF A_Hold wire A_New A_New dangling FF FF dangling O Done Y output Y dangling I input Y_P Done_P Y_P O O O dangling module module Advanced Processor Technologies Group School of 02/06/2014 9 Computer Science

  10. Hierarchical Designs (SHA-3 Encoder) in out automatic generated data path DFG FF in the manual in_P out_P I O round one counter const round out in FF extracted data path round_in round round_out rconst i rc FF MODULE MODULE Advanced Processor Technologies Group School of 02/06/2014 10 Computer Science

  11. Large-Scale Test Cases Signal al-le leve vel l DFG Data path DFG Time e Designs gns (s) (s) I/O Module Signal I/O Module Signal OR1200 52 37 2074 40 33 1142 1 RSD 7 24 1063 3 23 659 <1 NOVA 19 140 7043 9 103 4279 10 OR1200: A 5-stage OpenRISC processor. RSD: An industrial standard Reed-Solomon decoder. NOVA: An FPGA proven H.264/AVC baseline decoder. Intel Core TM 2 Due 3.00 GHz with 2GB memory Advanced Processor Technologies Group School of 02/06/2014 11 Computer Science

  12. Possible Usages Signal-level DFG • – Code extraction – Controller detection* – Interface recognition (Memory, bus, handshake) Data path extraction • – Data-flow analysis by switching back-annotation – System partition * Wei Song and Jim Garside. Automatic controller detection for large scale RTL designs. In Proc. of EUROMICRO Conference on Digital System Design (DSD), Santander, Spain, pp. 884 – 851, September 2013 Advanced Processor Technologies Group School of 02/06/2014 12 Computer Science

  13. Conclusion Signal-level DFG • – A graphic representation of signal relations in RTL. – A typed and hierarchical multi-graph. Data path extraction • – Trim all control related arcs and nodes. – Automatic control/data recognition. – Able to process large-scale designs. Advanced Processor Technologies Group School of 02/06/2014 13 Computer Science

  14. Implementation and Test Environment Verilog parser • Bison, Flex and Vpreprocessor (Verilog Perl tool) [1] – C++ STL based abstract syntax tree – Signal-level DFG • Boost Graphic Library (data structure) – Open Graph Drawing Framework (automatic layout) [2] – PugiXML (file format) – Qt (diagram drawer) – User interface • Asynchronous Verilog Synthesiser [3] – Command line UI: embedded Tcl with self-defined commands – [1] http://www.veripool.org/verilog-perl [2] http://www.ogdf.net [3] https://github.com/wsong83/Asynchronous-Verilog-Synthesiser Advanced Processor Technologies Group School of 02/06/2014 14 Computer Science

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend