Dave Graubart & Parminder Gill November 1, 2010

Slides:



Advertisements
Similar presentations
SOAP.
Advertisements

DCDL The Design Constraints Description Language An Emerging OVI Standard.
The Design Process Outline Goal Reading Design Domain Design Flow
An Introduction to Synopsys Design Automation Jeremy Lee November 7, 2007.
METRICS Standards and Infrastructure for Design Productivity Measurement and Optimization Andrew B. Kahng and Stefanus Mantik UCLA CS Dept., Los Angeles,
ECE 699: Lecture 2 ZYNQ Design Flow.
Foundation and XACTstepTM Software
1 Chapter 7 Design Implementation. 2 Overview 3 Main Steps of an FPGA Design ’ s Implementation Design architecture Defining the structure, interface.
Digital System Design EEE344 Lecture 1 INTRODUCTION TO THE COURSE
Designing Security In Web Applications Andrew Tomkowiak 10/8/2013 UW-Platteville Software Engineering Department
© 2011 Xilinx, Inc. All Rights Reserved This material exempt per Department of Commerce license exception TSU Xilinx Tool Flow.
Robust Low Power VLSI R obust L ow P ower VLSI Memory Management Units for Instruction and Data Cache for OR1200 CPU Core Arijit Banerjee ASIC/SOC Class.
© 2003 Xilinx, Inc. All Rights Reserved CORE Generator System.
Chap. 1 Overview of Digital Design with Verilog. 2 Overview of Digital Design with Verilog HDL Evolution of computer aided digital circuit design Emergence.
Network Security – Part 2 (Continued) Lecture Notes for May 8, 2006 V.T. Raja, Ph.D., Oregon State University.
Objectives Configure routing in Windows Server 2008 Configure Routing and Remote Access Services in Windows Server 2008 Network Address Translation 1.
Ch.9 CPLD/FPGA Design TAIST ICTES Program VLSI Design Methodology Hiroaki Kunieda Tokyo Institute of Technology.
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
1 PAR Presentation DASC meeting at DAC, June 21, 2001 Project title: A standard for an Advanced Library Format (ALF) describing Integrated Circuit (IC)
Xilinx Development Software Design Flow on Foundation M1.5
© 2003 Xilinx, Inc. All Rights Reserved For Academic Use Only Xilinx Design Flow FPGA Design Flow Workshop.
Design Verification An Overview. Powerful HDL Verification Solutions for the Industry’s Highest Density Devices  What is driving the FPGA Verification.
Xilinx Programmable Logic Design Solutions Version 2.1i Designing the Industry’s First 2 Million Gate FPGA Drop-In 64 Bit / 66 MHz PCI Design.
P1800 Requirements for IP Protection John Shields.
Logic Synthesis assign z=a&b a b z What is Synthesis synthesis /sinth siss/ noun ( pl. syntheses /sinth seez/) 1 the combination of components to form.
Professional Encryption Software FINECRYPT 8.1. Contents Introduction Introduction Features Features Installation Installation Tests Tests Results Results.
Chonnam national university VLSI Lab 8.4 Block Integration for Hard Macros The process of integrating the subblocks into the macro.
정 용 군 ( 전자공학과 대학원 ) 대상 : VLSI 설계 연구회 1,2,3 학년 기간 : ~ Synopsys Tool 교육 Synopsys 교육 1.
FORMAL VERIFICATION OF ADVANCED SYNTHESIS OPTIMIZATIONS Anant Kumar Jain Pradish Mathews Mike Mahar.
Introduction to FPGA Created & Presented By Ali Masoudi For Advanced Digital Communication Lab (ADC-Lab) At Isfahan University Of technology (IUT) Department.
© 2006 Synopsys, Inc. (1) CONFIDENTIAL Simulation and Formal Verification: What is the Synergy? Carl Pixley Disclaimer: These opinions are mine alone and.
Chapter 0 deSiGn conCepTs EKT 221 / 4 DIGITAL ELECTRONICS II.
Logic Synthesis assign z=a&b a b z What is Synthesis synthesis /sinth siss/ noun ( pl. syntheses /sinth seez/) 1 the combination of components to form.
ECE 545 Project 2 Specification. Schedule of Projects (1) Project 1 RTL design for FPGAs (20 points) Due date: Tuesday, November 22, midnight (firm) Checkpoints:
Introductory project. Development systems Design Entry –Foundation ISE –Third party tools Mentor Graphics: FPGA Advantage Celoxica: DK Design Suite Design.
Tools - Design Manager - Chapter 6 slide 1 Version 1.5 FPGA Tools Training Class Design Manager.
CORE Generator System V3.1i
The Storyboard stage. Mention what will be your animation medium: 2D or 3D Mention the software to be used for animation development: JAVA, Flash, Blender,
ELEE 4303 Digital II Introduction to Verilog. ELEE 4303 Digital II Learning Objectives Get familiar with background of HDLs Basic concepts of Verilog.
Logic Synthesis assign z=a&b a b z What is Synthesis synthesis /sinth siss/ noun ( pl. syntheses /sinth seez/) 1 the combination of components to form.
Teaching Digital Logic courses with Altera Technology
What’s New in Xilinx Ready-to-use solutions. Key New Features of the Foundation Series 1.5/1.5i Release  New device support  Integrated design environment.
Ready to Use Programmable Logic Design Solutions.
Request approval from DASC for the formation of an IP Encryption Study Group Proposal prepared by: Gary Delp VSI Alliance CTO.
ASIC/FPGA design flow. Design Flow Detailed Design Detailed Design Ideas Design Ideas Device Programming Device Programming Timing Simulation Timing Simulation.
© 2005 Xilinx, Inc. All Rights Reserved This material exempt per Department of Commerce license exception TSU CORE Generator System.
1 2/1/99 Confidential Selling Xilinx Software vs. Altera Xilinx Academy February 24th, 1999.
Eurostat Sharing data validation services Item 5.1 of the agenda.
Design with Vivado IP Integrator
Altera Technical Solutions Seminar Schedule OpeningIntroduction FLEX ® 10KE Devices APEX ™ 20K & Quartus ™ Overview Design Integration EDA Integration.
© Synopsys IP Licensing Recommendations for P1735 Rev 4/16/12.
Based on Draft 3 and 3a work in progress John Shields Mentor Graphics, Inc. P1735 Standard Overview.
ASIC Design Methodology
Digital System Design An Introduction to Verilog® HDL
Topics Modeling with hardware description languages (HDLs).
2. Specification and Modeling
Xilinx Ready to Use Design Solutions
Topics Modeling with hardware description languages (HDLs).
Security at the Application Layer: PGP and S/MIME
Programmable Logic Design Solutions
ELECTRONIC MAIL SECURITY
ECE-C662 Introduction to Behavioral Synthesis Knapp Text Ch
ELECTRONIC MAIL SECURITY
MLWG - User Requirements
ECE 699: Lecture 3 ZYNQ Design Flow.
Xilinx/Model Technology Powerful FPGA Verification Solution
THE ECE 554 XILINX DESIGN PROCESS
H a r d w a r e M o d e l i n g O v e r v i e w
THE ECE 554 XILINX DESIGN PROCESS
Xilinx Alliance Series
Presentation transcript:

Dave Graubart & Parminder Gill November 1, 2010 Synopsys P1735 Proposals Dave Graubart & Parminder Gill November 1, 2010

Agenda Problem Statement Requirements Proposals Plan: Between now and next meeting: collect feedback and contribute to Twiki

Problem Statement Interoperability needs not yet met Rights management More complex tool flows EDA tool version control These are essential for Synopsys FPGA synthesis in first version of 1735 We’re now prepared to make contributions

More Complex Tool Flow C or M High level synthesis RTL SDC Simulation RTL synthesis Netlist Formal Verification Place & Route PlacedNetlist

Requirements Extensibility to any language Tool rights User rights IP creation tool Control of authorized tool versions

Requirement 1: Extensibility to any language Support existing envelope for Verilog and VHDL Support envelope as header in any file Useful for C, M (Matlab), Edif, SDC, and others

Requirement 2: Tool Rights Create rights/control block per key block Plain text so end-user can view Digest line that is tamper-proof and tightly associated with IP Each right can be conditional Narrow scope of public key: key for single tool or family of similar tools, not one key for a big EDA vendor

Requirement 3: User Rights Identical mechanism to Tool Rights Use conditional syntax where condition varies by user Condition can be satisfied in multiple ways such as License requirement Password One-time activation Arbitrary mechanism

Requirement 4: Tool for IP Author Lower barrier for IP author participation Synopsys can contribute script that uses OpenSSL to process: Encryption envelope or source plus commands Key repository

Requirement 5: Control of authorized tool versions Allow IP author to specify minimum version of tool After security fix After functional enhancement Avoid expensive introduction of new keys Different than P1735 version

Details and Proposed Solutions

Encrypted Synthesis flow RTL Technology view RTL view Graphical Views Log file Compile Compiler log messages Map Mapper log messages Netlist

Encrypted Synthesis flow RTL Graphical Views Log file Compile Compiler log messages RTL view Compiler log messages RTL view Map Technology view Mapper log messages Technology view Mapper log messages Technology view Mapper log messages Netlist Netlist Netlist Netlist

Encrypted Synthesis flow RTL Graphical Views Log file Compile Compiler log messages RTL view Compiler log messages RTL view Map Technology view Mapper log messages Technology view Mapper log messages Technology view Mapper log messages Netlist Netlist Netlist Log Messages None, No-name, No-restriction None, Interfaces, No-restriction Netlist Visibility Output Method None, Encrypted, Obfuscated Plain-text

Introducing Control Block Decryption Envelope (current) Key Block - Simulation User Key Block - Synthesis User Data Block

Introducing Control Block Decryption Envelope (enhanced) Basic encryption Key Block - Simulation User Key Block - Synthesis User Encryption with fine grained controls Control Block - Synthesis User Data Block

Enhancing Key Block Decryption Envelope (current) Key Block - Simulation User Session Key (for data-block) Key Block – Synthesis User Session Key (for data-block)

Enhancing Key Block Decryption Envelope (enhanced) Key Block - Simulation User Session Key (for data-block) Key Block – Synthesis User Session Key (for data-block) Session Key (for control-block) Control Block – Synthesis User

Enhancing Key Block Decryption Envelope (enhanced) Key Block - Simulation User Session Key (for data-block) Key Block – Synthesis User A Session Key (for data-block) Session Key (for control-block) Separate Control block for each tool Control Block – Synthesis User A Key Block – Synthesis User B Session Key (for data-block) Separate Control block session key for each tool Session Key (for control-block) Control Block – Synthesis User B

Defining Control Block Decryption Envelope (enhanced) Key Block - Simulation User Key Block - Synthesis User Control Block Control Line: Right=value Control Line: Right=value, condition Control Digest

Syntax Proposal – Key Block Decryption Envelope (current) `protect begin_protected `protect key_keyowner=“IP User”, key_method=“rsa” `protect encoding=(enctype=“base64”, …), key_block <session key> `protect data_method=“des-cbc” `protect encoding=(enctype=“base64”, …), data_block encoded encrypted IP `protect end_protected encoded encrypted

Syntax Proposal – Key Block Decryption Envelope (enhanced) `protect begin_protected `protect key_keyowner=“IP User”, key_method=“rsa” `protect encoding=(enctype=“base64”, …), key_block data-session-key=<session key> control-session-key=<control session key> `protect data_method=“des-cbc” `protect encoding=(enctype=“base64”, …), data_block encoded encrypted IP `protect end_protected encoded encrypted

Syntax Proposal – Control Block Decryption Envelope (re-spaced) `protect begin_protected `protect key_keyowner=“IP User”, key_method=“rsa” `protect encoding=(enctype=“base64”, …), key_block data-session-key=<session key> control-session-key=<control session key> `protect data_method=“des-cbc” `protect encoding=(enctype=“base64”, …), data_block encoded encrypted IP `protect end_protected

Syntax Proposal – Control Block Decryption Envelope (enhanced) `protect begin_protected `protect key_keyowner=“IP User”, key_method=“rsa” `protect encoding=(enctype=“base64”, …), key_block data-session-key=<session key> control-session-key=<control session key> `protect control_keyowner=“IP User”, control_method=“des-cbc”, control_block `protect <right>=<value> `protect <right>=<value>, <conditions> `protect encoding=(enctype=“base64”, …), control_digest encoded encrypted control digest `protect data_method=“des-cbc” `protect encoding=(enctype=“base64”, …), data_block encoded encrypted IP `protect end_protected

Control Block – Internal Details Decryption Envelope (enhanced) Key Block - Simulation User Control Block Control Line: Right=value Control Line: Right=value, condition Control Digest Data Block

Syntax Example – Control Block Decryption Envelope (enhanced with examples) `protect begin_protected `protect key_keyowner=“IP User”, key_method=“rsa” `protect encoding=(enctype=“base64”, …), key_block data-session-key=<session key> control-session-key=<new session key> `protect control_keyowner=“IP User”, control_method=“des-cbc”, control_block `protect control_visibility=none `protect control_visibility=unrestricted, data_state=mapped `protect control_log_messages=noname `protect control_output_method=encrypted `protect control_output_method=plain-text, license=(…) `protect encoding=(enctype=“base64”, …), control_digest encoded encrypted control digest `protect data_method=“des-cbc” `protect encoding=(enctype=“base64”, …), data_block encoded encrypted IP `protect end_protected

Introducing Tool Version Decryption Envelope (enhanced) Key Block - Simulation User Session Key (for data-block) Key Block – Synthesis User Session Key (for data-block) Session Key (for control-block) Synthesis User Tool with version older than this is not allowed to read this IP Tool Version Control Block – Synthesis User

Syntax – Tool Version Decryption Envelope (enhanced with examples) `protect begin_protected `protect key_keyowner=“IP User”, key_method=“rsa” `protect encoding=(enctype=“base64”, …), key_block data-session-key=<session key> control-session-key=<new session key> tool-version=<version number> `protect control_keyowner=“IP User”, control_method=“des-cbc”, control_block `protect control_visibility=none `protect control_visibility=full, data_state=mapped `protect control_log_messages=noname `protect control_output_method=obfuscated `protect control_output_method=plain-text, license=(…) `protect encoding=(enctype=“base64”, …), control_digest encoded encrypted control digest `protect data_method=“des-cbc” `protect encoding=(enctype=“base64”, …), data_block encoded encrypted IP `protect end_protected

Encryption Script (for IP Vendors) IP Source File Verilog source VHDL Source … Encryption Tool/Script Encrypted IP Source (Decryption Envelope) Key Repository IP User A = <Public Key> IP User B = <Public Key>

Encryption Script – Enhancements (for non-HDL files) IP Source File C/EDIF source Design constraints … Encryption Tool/Script Encrypted IP Source (Decryption Envelope) IP Encryption Header `protect pragmas Key Repository IP User A = <Public Key> IP User B = <Public Key>

Syntax Example – Encryption Header Encryption Header file `protect key_keyowner=“IP User”, key_method=“rsa”, key_block `protect control_keyowner=“IP User”, control_method=“des-cbc”, control_block `protect control_visibility=none `protect control_visibility=full, data_state=mapped `protect control_log_messages=noname `protect control_output_method=obfuscated `protect control_output_method=plain-text, license=(…) `protect data_method=“des-cbc”, begin <IP Source File>.c `protect end Optional. If present, ensures encryption header is linked to specified file only

End Thank You