• Nem Talált Eredményt

Értekezésemben a modern SoC áramkörök digitális részegységeinek, makrocelláinak tervezési eljárásaira vonatkozó kutatási eredményeimet mutatom be. Célom egy olyan új módszer kidolgozása volt, amely szigorú időzítési, fogyasztási és/vagy erőforrás-felhasználási kritériumok esetén is hatékony, gyors fejlesztési folyamatot tesz lehetővé, ugyanakkor megőr-zi a klassmegőr-zikus, HDL-alapú RTL-re jellemző részletes tervezés lehetőségét a magas fokú op-timalizáltság elérése céljából. A gyorsaság és a részletgazdagság egymásnak ellentmondó követelményeket támaszt a módszer alapjául szolgáló formális nyelvvel szemben. Ezt az el-lentmondást az adatfolyam jellegű alkalmazások esetén jól bevált HLS módszer alapötletének, az algoritmikus jellegű front-end formalizmusnak RTL szintre való adaptációjával oldottam fel; Az általam kifejlesztett formális nyelv, az AMDL – magas szintű nyelvi szerkezeteinek köszönhetően – a klasszikus HDL-eknél gyorsabb fejlesztési folyamatot tesz lehetővé, ugyan-akkor kifejezései és egyedi vezérlési szerkezetei biztosítják a teljes körű adatút- és ütemezés-optimalizáció lehetőségét. A kidolgozott formális nyelvhez olyan célarchitektúra modellt de-finiáltam, amely kellően rugalmas ahhoz, hogy a tervező szabadságát ne csorbítsa, ugyanak-kor alkalmas arra, hogy alapjául szolgáljon egy hatékony áramkörszintézis módszernek.

Értekezésem második felében a kidolgozott formális nyelvnek a széles körben alkal-mazott, klasszikus digitális áramkörszintézis folyamatba való integrálását mutatom be. Ennek az integrációnak a központi eleme az AMDL-alapú előszintézis eljárás, amely az AMDL nyelvű specifikációból olyan reprezentációt képes előállítani, amely a már rendelkezésre álló RTL szintézis eszközökkel feldolgozható. Az előszintézis eljárás megvalósítására olyan álta-lános, az ún. implementációs séma fogalmára épülő megoldást javasoltam, amely egyazon AMDL modellből többféle, a specifikációban lefektetett követelményekhez, kódolási konven-ciókhoz és a megvalósítás alapjául szolgáló technológiához alkalmazkodni képes kimeneti modellt állíthat elő. Javasoltam továbbá két konkrét implementációs sémát, amelyek standard cellás ASIC és FPGA technológia esetén egyaránt alkalmazhatók és megfelelnek a legelter-jedtebben használt RTL tervezési módszereknek, konvencióknak.

Az általam javasolt tervezési módszer alkalmazhatóságát különböző tesztrendszerek kifejlesztésén és szimulációs vizsgálatán keresztül igazoltam. A tesztrendszerek összetettsége az egyszerű szorzástól a nagy átbocsátóképességű, modern mikroarchitekturális megoldásokat tartalmazó, tárolt programú pipeline mikroprocesszorokig terjed. Megállapítottam, hogy az általam kifejlesztett tervezési módszer jelentősen növelheti a digitális makrocellák fejleszté-sének hatékonyságát, csökkentheti a fejlesztésre fordítandó időt, ugyanakkor lehetővé teszi a minden részletre kiterjedő, optimalizált RTL tervezést.

Köszönetnyilvánítás

Köszönettel tartozom mindenek előtt témavezetőmnek, Dr. Hosszú Gábornak a dokto-ri tanulmányaim előtt és alatt nyújtott támogatásáért és a hasznos tanácsokért, amelyekkel értekezésem létrejöttét segítette.

Köszönöm kollégáimnak, a Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke minden munkatársának, hogy munkámban támogattak és biztosították az alkotó légkört.

Külön köszönöm Dr. Bognár Györgynek, hogy idejekorán arra az útra terelt – és fo-lyamatos bíztatással és motiválással azon az úton tartott –, amelynek végén e dolgozat meg-születhetett. Köszönöm Nagy Gergelynek, Dr. Gärtner Péternek, Dr. Szalai Albinnak, Dr. Juhász Lászlónak és Dr. Timár Andrásnak, hogy időt és fáradságot nem kímélve segítet-tek a dolgozat érthetőségének és színvonalának javításában.

Hálás vagyok családomnak a rengeteg támogatásért és türelemért, amely nélkül soha-sem jutottam volna el idáig. Köszönöm Mayer Adriennek a rendíthetetlen kitartást, odaadást és szeretetet, amellyel biztos hátteret nyújtott a kreatív munkához.

A függelék – Rövidítések jegyzéke

ADL Architecture Description Language

AMDL Algorithmic Microarchitecture Description Language ARTL Algorithmic Register-Transfer Level

ASIC Application-Specific Integrated Circuit

ASIP Application-Specific Instruction Set Processor ATPG Automatic Test Pattern Generation

BiCMOS Bipolar Complementary Metal-Oxide-Semiconductor BSV Bluespec SystemVerilog

CAD Computer-Aided Design CDC Clock Domain Crossing

CMOS Complementary Metal-Oxide-Semiconductor CPLD Complex Programmable Logic Device

DFG Data Flow Graph DMA Direct Memory Access

DRC Design Rule Check

DSP Digital Signal Processing/Processor EBNF Extended Backus-Naur Form

eRM e Reuse Methodology

FPGA Field-Programmable Gate Array

GPCPU General Purpose Central Processing Unit GPIO General Purpose Input/Output

HDL Hardware Description Language HKMG High-K Metal Gate

HLS High Level Synthesis IP Intellectual Property

ISA Instruction Set Architecture

LISA Language for Instruction Set Architecture LUT Look Up Table

LVS Layout vs. Schematic

MEMS Micro-Electro-Mechanical System MOEMS Micro-Opto-Electro-Mechanical System

PDL Processor Description Language PHY Physical Layer Interface

PLA Programmable Logic Array PLD Programmable Logic Device PSoC Programmable System-on-Chip RISC Reduced Instruction Set Processor

RTL Register-Transfer Level SCL Source-Coupled Logic SDC Synopsys Design Constraints

SoC System-on-Chip

SoPC System on a Programmable Chip STA Static Timing Analyzis

TLM Transaction Level Modeling UML Unified Modeling Language

UTMI Universal Transceiver Macrocell Interface UVM Universal Verification Methodology

VHDL Very High Speed Integrated Circuit Hardware Description Language

B függelék – Az AMDL szimulációs szemantikája

Az AMDL utasítások definícióihoz az alábbi jelöléseket használom:

LOAD: [parent,type,id,value] = { az erőforrások bemeneti termináljainak halmaza } o parent: a terminál szülő erőforrásának azonosítója

o type ϵ { output, regInput, regfileWriteAddress, regfileReadAddress, regfileDataIn-put, operatorInput }: a terminál típusa

o id: a terminál neve

o value: logikai vektor, a terminál értéke

DRIVER: [parent,type,id,value] = { az erőforrások kimeneti termináljainak halmaza } o parent: a terminál szülő erőforrásának azonosítója

o type ϵ { input, regOutput, regfileOutput, operatorOutput }: a terminál típusa o id: a terminál neve

o value: logikai vektor, a terminál értéke

 A rendszer állapota: ST = { STconnection ⋃ STstorage } o STconnection = { dlink: [load,driver,evaluated] |

load ϵ LOAD, driver ϵ DRIVER, evaluated ϵ { true, false } }: a rendszer aktív adat-kapcsolatainak halmaza (data link)

o STstorage = { strg: [id,value] }: a rendszer regisztereinek és regisztertömbjeinek ak-tuális tartalma

Az AMDL modell állapota két halmazzal írható le. Az STconnection halmaz az erőforrá-sok közötti kapcsolatokat definiálja. Minden adatkapcsolat (dlink) egy meghajtó (driver) és egy terhelés (load) terminálból áll. Az STstorage halmaz a regiszter és regisztertömb típusú erő-források aktuális értékét tárolja. E két halmaz a következőképpen értelmezhető:

A rendszer műveletvégző és vezérlő egységből épül fel, amelyek mindegyike szinkron szekvenciális hálózatokat tartalmaz. A rendszer teljes állapotának leírásához mindkét archi-tekturális elem állapotát tárolni kell. Az STconnection halmaz definiálja, hogy a műveletvégző egységben mely összeköttetéseket kell megvalósítani az éppen végrehajtott AMDL utasítás-ban szereplő kifejezések kiértékeléséhez. Mivel az összeköttetések útválasztó erőforrások (multiplexerek) segítségével épülnek ki, amelyek állapotát a vezérlő egység határozza meg, ezért az STconnection halmaz közvetett módon a vezérlő egység állapotának feleltethető meg. Az STstorage halmaz a műveletvégző egység állapotregisztereinek összessége. A teljes rendszert tehát az STconnection és az STstorage halmaz együttesen írja le.

Utasítások definíciója

Minden utasítást egy-egy eljárás definiál, amelyek mindegyike két kétértékű (bool tí-pusú) paraméterrel rendelkezik. Az egyes utasítások egymásba ágyazhatók. A beágyazott uta-sítások paramétereinek értékét a beágyazó utasítás határozza meg. A paraméterek értékétől függően az adott utasításban foglalt elemi értékadások többféleképpen hajtódhatnak végre.

Az elemi értékadás (assignment) utasítás értelmezését a B-1. ábra algoritmusa definiálja.

B-1. ábra – Az AMDL értékadás (assignment) értelmezése.

Az AMDL összetett utasításainak jelentését a B-2.-B-6. ábrák algoritmusai írják le.

B-2. ábra – Az AMDL feltételes utasításának (conditional statement) értelmezése.

B-3. ábra – Az AMDL ciklus utasításának (loop statement) értelmezése.

B-4. ábra – Az AMDL concurrent utasításának értelmezése.

B-5. ábra – Az AMDL structure utasításának értelmezése.

B-6. ábra – Az AMDL wait utasításának értelmezése.

A funkcionális tervezési egységek (machine, pipeline) végrehajtását a B-7. és a B-8.

ábrák algoritmusai definiálják.

B-7. ábra – Az AMDL machine tervezési egységének értelmezése.

B-8. ábra – Az AMDL pipeline tervezési egységének értelmezése.

C függelék – Az AMDL EBNF-leírása

system_model ::= (machine_definition | pipeline_definition | isa_definition)+

machine_definition ::= 'machine' id 'is' declaration* 'begin' functional_statement* 'end' 'machine' ';'

pipeline_definition ::= 'pipeline' id 'of' 'machine' id 'is' ( ( declaration* 'begin' functio-nal_statement* 'end' 'pipeline' ';' ) | ( 'like' id 'of' 'machine' id ';' ) )

isa_definition ::= 'isa' 'of' ( ('machine' id) | ('pipeline' id '.' id) ) 'is'

isa_address_length_definition isa_word_length_definition isa_opcode_length_definition 'begin' instruction_definition* 'end' 'isa' ';'

id ::= letter (letter | decimal_number)*

declaration ::= resource_declaration | constant_declaration

functional_statement ::= label? ( assignment | conditional_statement | loop | block | control_statement ) ';'

isa_address_length_definition ::= 'address' 'length' ':' decimal_number+ ';' isa_word_length_definition ::= 'word' 'length' ':' decimal_number+ ';' isa_opcode_length_definition ::= 'opcode' 'length' ':' decimal_number+ ';' instruction_definition ::= id ':' constant_literal instruction_parameter_list ';'

letter ::= 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' | 'A' | 'B' | 'C' | 'D' | 'E'

| 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z' | '_'

decimal_number ::= '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '0'

resource_declaration ::= controlport_declaration | dataport_declaration | reg_declaration | regfi-le_declaration | operator_declaration

constant_declaration ::= 'constant' id ':' constant_literal ';' label ::= 'controlpoint' id ':'

assignment ::= left_expression '<=' right_expression

conditional_statement ::= 'if' condition 'then' functional_statement* elsif_statement* ( 'else' functi-onal_statement* )? 'end' 'if'

loop ::= 'loop' functional_statement* 'end' 'loop'

block ::= concurrent_block | structure_block | stage_block | bypass_block | observer_block

control_statement ::= 'break' | 'continue' | 'stop' | ('wait' '(' (decimal_number)+ ') ') | ('redirect to' id) | (id '.' 'start') | (id '.' 'stop') | 'return' | ( 'bypass' '(' id ')' )

constant_literal ::= ( decimal_number+ ('B' | 'b' | 'H' | 'h' | 'U' | 'u' | 'S' | 's') )? '"' "-"?

hexa_number+ '"'

instruction_parameter_list ::= instruction_word_fields ('+' instruction_word_fields)*

controlport_declaration ::= 'controlport' id ':' ( 'input' | 'output' ) width_definition ';' dataport_declaration ::= 'dataport' id ':' ( 'input' | 'output' ) width_definition ';' reg_declaration ::= 'storage' id ':' 'reg' width_definition ( ":=" constant_literal )? ';'

regfile_declaration ::= 'storage' id ':' 'regfile' width_definition width_definition width_definition width_definition ';'

operator_declaration ::= 'operator' id ':' ( 'async' | 'sync' | 'multicycle' ) operator_port_list ';' left_expression ::= '-' | operator_expression | regfile_expression | simple_reference_expression

right_expression ::= '-' | operator_expression | regfile_expression | simple_reference_expression | constant_literal

condition ::= ( '(' id '.' 'stopped' ')' ) | ( '(' (arithmetic_relation_expression | condition) (lo-gic_relation (arithmetic_relation_expression | condition))* ')' )

elsif_statement ::= 'elsif' condition 'then' functional_statement*

concurrent_block ::= 'concurrent' ( id ':' )? functional_statement* 'end' 'concurrent' structure_block ::= 'structure' ( id ':' )? functional_statement* 'end' 'structure' stage_block ::= 'stage' ( id ':' )? functional_statement* 'end' 'stage'

bypass_block ::= 'bypass' id ':' functional_statement* 'end' 'bypass'

observer_block ::= 'observer' ( id ':' )? functional_statement* 'end' 'observer'

hexa_number ::= '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '0' | 'a' | 'b' | 'c' | 'd' | 'e'

| 'f' | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' simple_reference_expression ::= id bit_index?

instruction_word_fields ::= '(' (instruction_field_definition (',' instruction_field_definition)*)? ')' width_definition ::= '[' decimal_number+ ']'

operator_port_list ::= '(' id width_definition? (',' id width_definition?)* ')' '(' id

width_definition? (":=" constant_literal)? (',' id width_definition? (":=" constant_literal)?

)* ')'

regfile_expression ::= id '.' regfile_port_id '[' (right_expression | decimal_number+)? ']' bit_index?

operator_expression ::= id '.' id bit_index? '(' ( ((id '=>')? right_expression) (',' ( (id '=>')?

right_expression) )* )? ')'

arithmetic_relation_expression ::= right_expression arithmetic_relation right_expression logic_relation ::= 'and' | 'or'

instruction_field_definition ::= decimal_number+ ':' decimal_number+

bit_index ::= '[' decimal_number+ (':' decimal_number+)? ']'

regfile_port_id ::= 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' | 'A' | 'B' | 'C' | 'D'

| 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z'

D függelék – A tesztrendszerek RTL kapcsolási sémái

D-1. ábra – A MULT tesztrendszer RTL kapcsolási sémája.

D-2. ábra – A PIEZO tesztrendszer RTL kapcsolási sémája.

D-3. ábra – A TAYLOR tesztrendszer RTL kapcsolási sémája.

D-4. ábra – A FIR_SPI_4CH tesztrendszer RTL kapcsolási sémája.

D-5. ábra – A MINKOWSKI tesztrendszer RTL kapcsolási sémája.

D-6. ábra – Az FFT tesztrendszer RTL kapcsolási sémája.

D-7. ábra – Az ISP1 tesztrendszer RTL kapcsolási sémája.

D-8. ábra – Az ISP2 tesztrendszer RTL kapcsolási sémája.

Saját közlemények

[S1] Horváth Péter, Hosszú Gábor, Kovács Ferenc. Alkalmazás-orientált szintéziseljárás mikroprocesszoros rendszerekre, HÍRADÁSTECHNIKA 66(2): 17-26, 2011.

[S2] P. Horváth, G. Hosszú, F. Kovács. A Proposed Synthesis Method for Application-Specific Instruction Set Processors, In Microelectronics Journal (MEJ), 46(3): 237-247, 2015. DOI: 10.1016/j.mejo.2015.01.001

[S3] P. Horváth, G. Hosszú, F. Kovács. A Proposed RTL Design Technique for Highly Op-timized Data Processors, In International Journal of Microelectronics and Computer Science – elbírálás alatt

[S4] P. Horváth, G. Hosszú. ARTL-based Hardware Synthesis to Non-Heterogeneous Stan-dard Cell ASIC Technologies, In Journal of Low Power Electronics (JOLPE), 11(3):

278-289, 2015. DOI: 10.1166/jolpe.2015.1402

[S5] G. Nagy, P. Horváth, L. Pohl, A. Poppe. Advancing the thermal stability of 3D-IC's using logi-thermal simulation, In Microelectronics Journal (MEJ), 46(12): 1114-1120, 2015. DOI: 10.1016/j.mejo.2015.06.025

[S6] G. Nagy, P. Horváth, L. Pohl, A. Poppe. Advancing the thermal stability of 3D-IC's using logi-thermal simulation. In Proceedings of the 20th International Workshop on THERMal INvestigation of ICs and Systems (THERMINIC'14), pages 1-5, Greenwich, UK, September 2014. DOI: 10.1109/THERMINIC.2014.6972486

[S7] P. Horváth, G. Hosszú, F. Kovács. A Proposed RTL Design Technique for Highly-Optimized Data Processors of MEMS Sensors. In Proceedings of Design, Test, Integ-ration and Packaging of MEMS/MOEMS (DTIP’15), pages 136-139, Montpellier, Fran-ce, April 2015. DOI: 10.1109/DTIP.2015.7160989

[S8] P. Horváth, G. Hosszú and F. Kovács. A proposed novel description language in the digital system modelling. Encyclopedia of Information Science and Technology: Third Edition. Hershey, New York: IGI Global, pp. 6966-6980, 2015. DOI: 10.4018/978-1-4666-5888-2

[S9] P. Horváth, G. Hosszú, F. Kovács. Semi-Automatic RTL Methods for System-on-Chip IP Delivery in the Cyber-Physical System Era, In Periodica Polytechnica Electrical Engineering and Computer Sciences – nyomtatásban

Tézisekhez szorosan nem kapcsolódó közlemények

[N1] G. Nagy, P. Horváth, A. Poppe. Practical aspects of thermal transient testing in live di-gital circuits. In Proceedings of the 19th International Workshop on THERMal IN-vestigation of ICs and Systems (THERMINIC'13), pages 87-91, Berlin, Germany, Sept-ember 2013. DOI: 10.1109/THERMINIC.2013.6675227

Irodalomjegyzék

[1] L.E.M. Brackenbury, L.A. Plana, J. Pepper. System-on-Chip Design and Implementation, IEEE Transac-tions on Education, 53(2): 272-281, 2010, DOI: 10.1109/TE.2009.2014858

[2] L. Saleh, S. Wilton, A. Hu, M. Greenstreet, G. Lemieux, P.P. Pande, C. Grecu, A. Ivanov. System-on-Chip: Reuse and Integration, Proceedings of the IEEE, 94(6): 1050-1069, 2006, DOI:

10.1109/JPROC.2006.873611

[3] H. Yamada, Y. Onozuka, A. Iida, K. Itaya, H. Funaki, K. Takahashi, H. Toshiyoshi. A wafer-level system integration technology for flexible pseudo-SOC incorporates MEMS-CMOS heterogeneous devices, CPMT Symposium Japan, pp. 1-4, 2010, DOI: 10.1109/CPMTSYMPJ.2010.5679651

[4] Yu-Jie Huang, Te-Hsuen Tzeng, Tzu-Wei Lin, Che-Wei Huang, Pei-Wen Yen, Po-Hung Kuo, Chih-Ting Lin, Shey-Shi Lu, A Self-Powered CMOS Reconfigurable Multi-Sensor SoC for Biomedical Applicati-ons, IEEE Journal of Solid-State Circuits, 49(4): 851-866, 2014, DOI: 10.1109/JSSC.2013.2297392 [5] D.D. John, C. Burgner, B. Potsaid, M. Robertson, B. Lee, W. Choi, A. Cable, J. Fujimoto, V. Jayaraman.

Wideband Electrically-Pumped 1050 nm MEMS-Tunable VCSEL for Ophthalmic Imaging, Journal of Lightwave Technology, in press, 2015, DOI: 10.1109/JLT.2015.2397860

[6] V. Bardinal, T. Camps, B. Reig, S. Abada, E. Daran, J.-B. Doucet. Advances in Polymer-Based Optical MEMS Fabrication for VCSEL Beam Shaping, IEEE Journal of Selected Topics in Quantum Electronics, 21(4): Article#: 2700308, 2015, DOI: 10.1109/JSTQE.2014.2369743

[7] T. Vogt, N. Wehn. A Reconfigurable ASIP for Convolutional and Turbo Decoding in an SDR Environ-ment, IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 16(10): 1309-1320, 2008, DOI: 10.1109/TVLSI.2008.2002428

[8] J. Mooney, A.E. Mahdi, M. Halton. Application-Specific Instruction-Set Processor for Control of Multi-Rail DC-DC Converter Systems, IEEE Transactions on Circuits and Systems I: Regular Papers, 60(1):

243-254, 2013, DOI: 10.1109/TCSI.2012.2215783

[9] Z. Liu, K. Dickson, J. McCanny. Application-Specific Instruction Set Processor for SoC Implementation of Modern Signal Processing Algorithms, IEEE Transactions on Circuits and Systems, 52(4): 755-765, 2005, DOI: 10.1109/TCSI.2005.844109

[10] M. Keating, P. Bricaud. Reuse Methodology Manual for System-on-a-Chip Designs, 3rd edition, ch. 3.1.2, Dordrecht, Kluwer Academic Publishers, 2002.

[11] S. Anvar, O. Gachelin, P. Kestener, H. Le Provost, I. Mandjavidze. FPGA-based system-on-chip designs for real-time applications in particle physics, 14th IEEE-NPSS Real Time Conference, 2005, DOI:

10.1109/RTC.2005.1547440

[12] Y. Ando, Y. Ishida, S. Honda, H. Takada, M. Edahiro. Automatic synthesis of inter-heterogeneous-processor communication implementation for programmable system-on-chip, International Conference on VLSI Systems, Architecture, Technology and Applications (VLSI-SATA), pp. 1-6, 2015, DOI:

10.1109/VLSI-SATA.2015.7050464

[13] S. Qingshan, D. Bullock, C.J. Summer, T.M. Shackleton. Monitoring Lick Responses in Animal Behavio-ral Experiments Using a PSoC, IEEE International Conference on High Performance Computing (HPCC), pp. 633-640, 2014, DOI: 10.1109/HPCC.2014.120

[14] S. Salunke, S. Darne, K. Shah, R. Dhamapurkar. Electromyograph data acquisition and application using Cypress Programmable System on Chip, 27th IEEE International System-on-Chip Conference (SOCC), pp. 115-118, 2014, DOI: 10.1109/SOCC.2014.6948910

[15] M. Keating, P. Bricaud. Reuse Methodology Manual for System-on-a-Chip Designs, 3rd edition, ch. 2.2.1, Dordrecht, Kluwer Academic Publishers, 2002.

[16] M. Barnasconi, M. Dietrich, K. Einwich, T. Vortler, R. Lucas, J.P. Chaput, F. Pecheux, Z. Wang, P. Cue-not, I. Neumann, T. Nguyen, R. Lucas. UVM-SystemC-AMS Framework for System-Level Verification and Validation of Automotive Use Cases, IEEE Design and Test, in press, 2015, DOI:

10.1109/MDAT.2015.2427260

[17] Z. Bel Hadj Amor, L. Pierre, D. Borrione. A tool for the automatic TLM-to-RTL conversion of embedded systems requirements for a seamless verification flow, 22nd International Conference on Very Large Scale Integration (VLSI-SoC), pp. 1-6, 2014, DOI: 10.1109/VLSI-SoC.2014.7004196

[18] O.M. Chandran, T.T. Libin, S. Krishnakumar Rao, B.C. Oommen. SystemVerilog based design and imp-lementation of LCD Controller IP Core, International Conference on VLSI Systems, Architecture, Tech-nology and Applications, pp. 1-6, 2015, DOI: 10.1109/VLSI-SATA.2015.7050481

[19] K. Jaeha, Y. Sijung, J. Ji-Eun. PPV-based modeling and event-driven simulation of injection-locked oscillators in SystemVerilog, IEEE Proceedings of the Custom Integrated Circuits Conference (CICC), pp. 1-4, 2014, DOI: 10.1109/CICC.2014.6946010

[20] F. Neumann, M. Sathyamurthy, L. Kotynia, E. Hennig, R. Sommer. UVM-based verification of smart-sensor systems, International Conference on Synthesis, Modeling, Analysis and Simulation Methods and Applications to Circuit Design (SMACD), pp. 21-24, 2012, DOI: 10.1109/SMACD.2012.6339407 [21] D. D. Gajski, R. H. Kuhn. Guest editor’s introduction: New VLSI tools. IEEE Computer 16(12): 11-14,

1983.

[22] R. Nikhil. Bluespec System Verilog: efficient, correct RTL from high level specifications, IEEE Interna-tional Conference on Formal Methods and Models for Co-Design, pp. 69-70, 2004, DOI:

10.1109/MEMCOD.2004.1459818

[23] R. Nikhil, K. Czeck. BSV by Example, ch. 5.2, Bluespec, Inc., 2010.

[24] E.S. Chung, J.C. Hoe. High-Level Design and Validation of the BlueSPARC Multithreaded Processor, IEEE Transactions on Computer-Aided Design of Circuits and Systems, 29(10): 1459-1470, 2010, DOI:

10.1109/TCAD.2010.2057870

[25] H. Nikolov, A. Rao, E.F. Deprettere, S.K. Nandy, R. Narayan. A H.264 Decoder: A Design Style Com-parison Case Study, Conference Record of the 43rd Asilomar Conference on Signals, Systems and Compu-ters (ACSSC), pp. 236-242, 2009, DOI: 10.1109/ACSSC.2009.5470115

[26] Achieving Timing Closure with Bluespec SystemVerilog, White Paper, Bluespec, Inc., 2004.

http://www.bluespec.com/forum/download.php?id=22

[27] P. Mishra, N. Dutt. Processor Description Languages, ch. 1, San Francisco, CA, USA, Morgan Kaufmann Publishers, 2008.

[28] G. Hadjiyiannis, S. Hanono, S. Devadas. ISDL: An Instruction Set Description Language For Retargeta-bility, Proceedings of the 34th Design Automation Conference, pp. 299-302, 1997, DOI:

10.1109/DAC.1997.597161

[29] P. Marwedel. The MIMOLA Design System: Tools for the Design of Digital Processors, 21st Conference on Design Automation, pp. 587-593, 1984, DOI: 10.1109/DAC.1984.1585857

[30] P. Marwedel. Matching system and component behaviour in MIMOLA synthesis tools, Proceedings of the European Design Automation Conference, pp. 146-156, 1990, DOI: 10.1109/EDAC.1990.136636 [31] C. Tradowsky, T. Harbaum, S. Deyerle and J. Becker. LImbiC: An adaptable architecture description

language model for developing an application-specific image processor, IEEE Computer Society Annual Symposium on VLSI (ISVLSI), pp. 34-39. 2013, DOI: 10.1109/ISVLSI.2013.6654619

[32] A. Halambi, P. Grun, V. Ganesh, A. Khare, N. Dutt and A. Nicolau. EXPRESSION: A language for architecture exploration through compiler/simulator retargetability, Proceedings of European Conference on Design, Automation and Test (DATE), pp. 485-490, 1999, DOI: 10.1109/DATE.1999.761170 [33] O. Schliebusch, A. Chattopadhyay, R. Leupers, G. Ascheid, H. Meyr, M. Steinert, G. Braun, A. Nohl.

RTL processor synthesis for architecture exploration and implementation, Proceedings of Design, Auto-mation and Test in Europe Conference and Exhibition, 3: 156-160, 2004, DOI:

10.1109/DATE.2004.1269223

[34] O. Schliebusch, A. Chattopadhyay, E. Witte, D. Kammler, G. Ascheid, R. Leupers and H. Meyr. Optimi-zation techniques for ADL-driven RTL processor synthesis, 16th International Workshop on Rapid System Prototyping (RSP 2005), pp. 165-171, 2005, DOI: 10.1109/RSP.2005.36

[35] P. Mishra, N. Dutt. Processor Description Languages, ch. 13.1, San Francisco, CA, USA, Morgan Kauf-mann Publishers, 2008.

[36] P. Mishra, N. Dutt. Processor Description Languages, ch. 5.3.2, San Francisco, CA, USA, Morgan Kauf-mann Publishers, 2008.

[37] T. Taghavi, A.D. Pimentel, M. Thompson. System-level MP-SoC design space exploration using tree visualization, IEEE/ACM/IFIP 7th Workshop on Embedded Systems for Real-Time Multimedia, pp. 80-88, 2009, DOI: 10.1109/ESTMED.2009.5336816

[38] M. Fingeroff. High-Level Synthesis Blue Book, Xlibris Corporation, 2010.

[39] P. Coussy, D.D. Gajski, M. Meredith, A. Takach. An Introduction to High-Level Synthesis, IEEE Design

& Test of Computers, 26(4): 8-17, 2009, DOI: 10.1109/MDT.2009.69

[40] G. Martin, G. Smith. High-Level Synthesis: Past, Present, and Future, IEEE Design & Test of Computers, 26(4): 18-25, 2009, DOI: 10.1109/MDT.2009.83

[41] H. Kaeslin. Digital Integrated Circuit Design: From VLSI Architectures to CMOS Fabrication, New York, Cambridge University Press, 2008.

[42] Arvind, R.S. Nikhil, D.L. Rosenband, N. Dave. High-level synthesis: an essential ingredient for designing complex ASICs, IEEE/ACM International Conference on Computer Aided Design (ICCAD), pp. 775-782, 2004, DOI: 10.1109/ICCAD.2004.1382681

[43] Achieving Timing Closure with Bluespec SystemVerilog, White Paper, Bluespec, Inc., 2004, http://www.bluespec.com/forum/download.php?id=22

[44] R. Nikhil, K. Czeck. BSV by Example, ch. 1.3, Bluespec, Inc., 2010.

[45] D. Gajski, L. Ramachandran. Introduction to High-Level Synthesis, IEEE Design & Test of Computers, 11(4): 44-54, 1994, DOI: 10.1109/54.329454

[46] Xilinx MicroBlaze Soft Processor Core: http://www.xilinx.com/tools/microblaze.htm, Május, 2015.

[47] NiosII Processor: The World’s Most Versatile Embedded Processor:

http://www.altera.com/devices/processor/nios2/ni2-index.html, Május, 2015.

[48] R.E. Gonzalez. Xtensa: a configurable and extensible processor, IEEE Micro, 20(2): 60-70, 2000, DOI:

10.1109/40.848473

[49] G. Ezer. Xtensa with User Defined DSP Coprocessor Microarchitectures, Proceedings of International Conference on Computer Design, pp. 335-342, 2000, DOI: 10.1109/ICCD.2000.878305

[50] Cadence Design Systems Encounter RTL Compiler:

http://www.cadence.com/products/ld/rtl_compiler/pages/default.aspx, Június, 2015.

[51] Xilinx WebPACK Design Software: http://www.xilinx.com/products/design-tools/ise-design-suite/ise-webpack.html, Június, 2015.

[52] Quartus II Subscription Edition: https://www.altera.com/products/design-software/fpga-design/quartus-ii/quartus-ii-subscription-edition.html, Június, 2015.

[53] S. Saponara, L. Fanucci, S. Marsi, G. Ramponi, D. Kammler, E. Witte. Application-Specific Instruction-Set Processor for Retinex-Like Image and Video Processing, IEEE Transactions on Circuits and Systems, 54(7): 596-600, 2007, DOI: 10.1109/TCSII.2007.896778

[54] Y. Zhang, H. He, Z. Shen, Y. Sun. ASIP approach for multimedia applications based on a scalable VLIW DSP architecture, Tsinghua Science and Technology, 14(1): 126-132, 2009, DOI: 10.1016/S1007-0214(09)70018-5

[55] A. Jafri, A. Baghdadi, M. Jézéquel. ASIP-Based Universal Demapper for Multiwireless Standards, IEEE Embedded Systems Letters, 1(1): 9-13, 2009, DOI: DOI: 10.1109/LES.2009.2028041

[56] Neves, N. Sebastiao, A. Patricio, D. Matos, P. Tomas, P. Flores, N. Roma. BioBlaze: Multi-Core SIMD ASIP for DNA sequence alignment, Proceedings of IEEE 24th International Conference on Application-Specific Systems, Architectures and Processors (ASAP), pp. 241-244, 2013, DOI:

10.1109/ASAP.2013.6567581

[57] P. Brisk. Architecture and Design Automation for Application-Specific Processors, Proceeding of the 9th International Conference on ASIC (ASICON), pp. 1094-1097, 2011, DOI:

10.1109/ASICON.2011.6157399

[58] M. Santosh, K. C. Behera, S. C. Bose. Design of an on-chip read-out circuit for piezo-resistive MEMS pressure sensor. Proceeding of the International Conference on Devices, Circuits and Systems (ICDCS), pp. 94-98, 2012, DOI: 10.1109/ICDCSyst.2012.6188681

[59] E. Patrick, V. Sankar, W. Rowe, J. C. Sanchez, T. Nishida. An implantable integrated low-power amplifi-er-microelectrode array for Brain-Machine Interfaces. Annual International Conference on Engineering in Medicine and Biology Society (EMBC), pp. 1816-1819, 2010, DOI: 10.1109/IEMBS.2010.5626419 [60] Hao, Jiang, Di Lan, K. Goldman, M. Etemadi, H. Shahnasser, S. Roy. The responsivity of a miniaturized

passive implantable wireless pressure sensor, IEEE Topical Conference on Biomedical Wireless Techno-logies, Networks, and Sensing Systems (BioWireleSS), pp. 11-14, 2011, DOI:

10.1109/BIOWIRELESS.2011.5724342

[61] Sheng-Ren Chiu, Chung-Yang Sue, Lu-Pu Liao, Li-Tao Teng, Yu-Wen Hsu, Zan/Kuin Su. A fully integ-rated circuit for MEMS vibrating gyroscope using standard 0.25um CMOS process, Proceedings of Mic-rosystems, Packaging, Assembly and Circuits Technology Conference (IMPACT), pp. 315-318, 2011, DOI: 10.1109/IMPACT.2011.6117258

[62] E. M. Boujamaa, N. Dumas, L. Latorre, F. Mailly, P. Nouet. An innovative, offset immune, conditioning and read-out circuitry for resistive MEMS sensors, IEEE North-East Workshop on Circuits and Systems and TAISA Conference (NEWCAS-TAISA), pp. 1-4, 2009, DOI: 10.1109/NEWCAS.2009.5290466 [63] E. M. Boujamaa, B. Alandry, S. Hacine, L. Latorre, F. Mailly, P. Nouet. A low power interface circuit for

resistive sensors with digital offset compensation, Proceedings of IEEE International Symposium on Cir-cuits and Systems (ISCAS), pp. 3092-3095, 2010, DOI: 10.1109/ISCAS.2010.5537970

[64] A. Timár, M. Rencz. Studying the influence of chip temperatures on timing integrity using improved power modeling, Journal of Low Power Electronics, 7(10): 531–540, 2011. DOI:

10.1166/jolpe.2011.1153.

[65] A. Timár, M. Rencz. Temperature dependent timing in standard cell designs, Microelectronics Journal, 45(5): 521–529, 2010, DOI: doi:10.1016/j.mejo.2013.08.016

[66] G. Nagy, A. Poppe. Simulation Framework for Multilevel Power Estimation and Timing Analysis of Digital Systems Allowing the Consideration of Thermal Effects, Proceedings of the 13th IEEE Latin-American Test Workshop (LATW'12), pp. 1-5, 2012, DOI: 10.1109/LATW.2012.6261250

Ábrák jegyzéke

2-1. ábra – SoC áramkörök digitális adatfeldolgozó alrendszereinek általános szerkezete. ... 3

2-2. ábra – Makrocellák és almoduljaik tervezési folyamata. ATPG: Automatic Test Pattern Generation. ... 7

2-3. ábra – Az elvonatkoztatási szintek Gajski-Kuhn-féle Y-diagramja. ... 10

2-4. ábra – Egy összegző áramkör magas szintű (C++) modellje. ... 11

2-5. ábra – Az összegző áramkör egy lehetséges RTL megvalósítása VHDL nyelven. ... 12

2-6. ábra – Shift&Add szorzó egység BSV modellje. ... 14

2-7. ábra – Explicit hardver leírás a LISA modellben. ... 17

2-8. ábra – Implicit hardver leírás a LISA modellben. ... 17

2-9. ábra – Informális hardver leírás a LISA modellben. Az _in és _out utótagok a port irányát jelzik. ... 18

2-10. ábra – Egy akkumulátor áramkör C++ modellje. ... 19

2-11. ábra – DFG konstruálás és erőforrás-allokáció. ... 20

2-12. ábra – Ütemezés; vezérlési állapotok létrehozása és regiszterek beiktatása az adatútba. ... 20

2-13. ábra – Erőforrás megosztás, kimeneti modell előállítása. ... 21

3-1. ábra – Az ARTL elhelyezkedése a GK-diagramon. ... 22

3-2. ábra – A makrocella-modell által definiált szerkezet. ... 25

3-3. ábra – Az architektúra-elemek belső szerkezete. ... 26

3-4. ábra – A többciklusú feldolgozó viselkedését leíró algoritmus. ... 27

3-5. ábra – Az adatfolyam feldolgozó viselkedését leíró algoritmus. ... 28

3-6. ábra – Az utasításfolyam feldolgozó viselkedését leíró algoritmus. ... 28

3-7. ábra – Az AMDL tervezési egység-típusok közötti kapcsolatok. ... 29

3-8. ábra – A funkcionális tervezési egységek szerkezete egy Shift&Add szorzó példáján bemutatva. ... 31

3-9. ábra – Példák interfészjelek és regiszterek használatára. ... 34

3-10. ábra – Példák regisztertömbök használatára. ... 34

3-11. ábra – Példák operátorok használatára. ... 35

3-12. ábra – Példák konstansok használatára. ... 35

3-13. ábra – Értékadás előkészítési fázisának szemléltetése (FSM: Finite State Machine). ... 36

3-14. ábra – Előjel nélküli, háromfokozatú szorzó áramkör AMDL modellje. ... 38

3-15. ábra – Az ISA tervezési egység használata. ... 39

4-1. ábra – Az AMDL-alapú tervezési módszer. ... 42

4-2. ábra – Elsődleges RTL tervezési részfeladatok elvégzése AMDL-ben. ... 43

4-3. ábra – Az AMDL-alapú tervezési módszer lépései. ... 44

4-4. ábra – A PIEZO példarendszer áramköri környezetének felépítése. ... 45

4-5. ábra – Az implementációs séma-alapú modelltranszformáció szemléltetése. ... 50

4-6. ábra – A javasolt implementációs sémák elhelyezkedése az ARTL-lel kiegészített GK-diagramon. ... 52

4-7. ábra – Az adatfeldolgozó rendszerek elemeinek megjelenése a viselkedési RTL modellben. ... 53

4-8. ábra – A pipeline szorzó p1 egységének VHDL megvalósítása a viselkedési RTL séma szerint. ... 56

4-9. ábra – Vezérlő állapotgép megvalósítása az összevont strukturális RTL sémában. ... 57

4-10. ábra – Műveletvégző egység megvalósítása az összevont strukturális RTL sémában. ... 57

4-11. ábra – Fázisjelek a strukturális RTL implementációs sémában. ... 59

4-12. ábra – A pipeline szorzót vezérlő állapotgép VHDL megvalósítása a strukturális RTL séma szerint. ... 61

4-13. ábra – Megvalósítási lehetőségek összehasonlítása a FIR_SPI_4CH tesztrendszer esetén. ... 68

4-14. ábra – Megvalósítási lehetőségek összehasonlítása az FFT tesztrendszer esetén. ... 68

5-1. ábra – Négymagos mikroprocesszor logi-termikus szimulációjának eredménye. ... 71