1-- Flags for synthesis. 2-- Copyright (C) 2019 Tristan Gingold 3-- 4-- This file is part of GHDL. 5-- 6-- This program is free software; you can redistribute it and/or modify 7-- it under the terms of the GNU General Public License as published by 8-- the Free Software Foundation; either version 2 of the License, or 9-- (at your option) any later version. 10-- 11-- This program is distributed in the hope that it will be useful, 12-- but WITHOUT ANY WARRANTY; without even the implied warranty of 13-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14-- GNU General Public License for more details. 15-- 16-- You should have received a copy of the GNU General Public License 17-- along with this program; if not, write to the Free Software 18-- Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, 19-- MA 02110-1301, USA. 20 21with Grt.Severity; 22 23package Synth.Flags is 24 -- Control name generation. The same entity can be synthesized in very 25 -- different designs because of the generics. We need to give unique names 26 -- to these designs. 27 type Name_Encoding is 28 ( 29 -- Use the entity name as is for the design name. Possible for the 30 -- top entity (and also for entities without generics and one config). 31 Name_Asis, 32 33 -- Add generic values or/and an hash. Results in unique but long names. 34 -- This allows partial synthesis: black-boxes can be synthesized later. 35 Name_Hash, 36 37 -- Just append a unique index. Create shorter names than Name_Hash, 38 -- but the names depend on the whole design. So it won't be possible 39 -- to do partial synthesis (ie synthesizing a sub-module, and then its 40 -- parent considering the sub-module as a black-box). 41 Name_Index, 42 43 -- Use the entity name but also add parameters to the module. 44 Name_Parameters 45 ); 46 47 Flag_Debug_Noinference : Boolean := False; 48 49 Flag_Debug_Nocleanup : Boolean := False; 50 51 -- Do not reduce muxes in dyn extract/insert chains. 52 Flag_Debug_Nomemory1 : Boolean := False; 53 54 Flag_Debug_Nomemory2 : Boolean := False; 55 56 Flag_Debug_Noexpand : Boolean := False; 57 58 Flag_Trace_Statements : Boolean := False; 59 60 -- True to start debugger at elaboration. 61 Flag_Debug_Init : Boolean := False; 62 63 -- True to start debugger on error. 64 Flag_Debug_Enable : Boolean := False; 65 66 -- Maximum number of iterations for (while)/loop. 0 means unlimited. 67 Flag_Max_Loop : Natural := 1000; 68 69 -- Level at which an assert stop the simulation. 70 Severity_Level : Integer := Grt.Severity.Error_Severity; 71 72 -- Synthesize PSL and assertions. 73 Flag_Formal : Boolean := True; 74 75 -- If true, automatically add a cover on PSL asserts to know if the 76 -- asserted has been started. 77 Flag_Assert_Cover : Boolean := True; 78 79 -- If true, treat all PSL assert directives like assume directives 80 Flag_Assert_As_Assume : Boolean := False; 81 82 -- If true, treat all PSL assume directives like assert directives 83 Flag_Assume_As_Assert : Boolean := False; 84 85 Flag_Verbose : Boolean := False; 86end Synth.Flags; 87