package L1_and_L2_crossbar public with Cheddar_Multicore_Properties; with Cheddar_Transformation_Properties; with aadlv3; with memory_units; processor core end core; processor implementation core.impl subcomponents L1_Instruction_Cache : memory memory_units::Cache.impl { Memory_Size => 1024Bytes; Cheddar_Multicore_Properties::Line_Size => 16Bytes; Cheddar_Multicore_Properties::Cache_Type => Instruction_Cache; Cheddar_Multicore_Properties::Cache_Level => 1; Cheddar_Multicore_Properties::Associativity => 1; Cheddar_Multicore_Properties::Cache_Size => 1024; Cheddar_Multicore_Properties::Block_Reload_Time => 1 us .. 2 us; }; properties Scheduling_Protocol=>(POSIX_1003_HIGHEST_PRIORITY_FIRST_PROTOCOL); end core.impl; system crossbar_multicore end crossbar_multicore; system implementation crossbar_multicore.impl subcomponents core1 : processor core.impl; core2 : processor core.impl; core3 : processor core.impl; L2_data_cache : memory memory_units::Cache.impl; properties aadlv3::System_Soc_Type => SoC_Processing_Unit; Cheddar_Multicore_Properties::SoC_Interconnection_Type => Crossbar; end crossbar_multicore.impl; system l1_l2 end l1_l2; system implementation l1_l2.impl subcomponents Hard : processor core.impl; Soft : process Malardalen.impl; properties Actual_Processor_Binding => (reference (Hard)) applies to Soft; Cheddar_Transformation_Properties::Exported_Attribute_Time_Units => MicroSecond; end l1_l2.impl; process Malardalen end Malardalen; process implementation Malardalen.impl subcomponents Bs : thread Task_Bs; Fac : thread Task_Fac; Fibcall : thread Task_Fibcall; InsertSort : thread Task_InsertSort; end Malardalen.impl; thread Task_Bs properties period => 1000us; Dispatch_Protocol => Periodic; Compute_Execution_Time => 76us..76us; Deadline => 1000us; Cheddar_Multicore_Properties::CFG_Name => "CFG_bs"; Cheddar_Multicore_Properties::CFG_Relocatable => True; Cheddar_Multicore_Properties::Text_Memory_Start_Address => 0; end Task_Bs; thread Task_Fac properties period => 1500us; Dispatch_Protocol => Periodic; Compute_Execution_Time => 125us..125us; Deadline => 1500us; Cheddar_Multicore_Properties::CFG_Name => "CFG_fac"; Cheddar_Multicore_Properties::CFG_Relocatable => True; Cheddar_Multicore_Properties::Text_Memory_Start_Address => 0; end Task_Fac; thread Task_Fibcall properties period => 1500us; Dispatch_Protocol => Periodic; Compute_Execution_Time => 300us..300us; Deadline => 1500us; Cheddar_Multicore_Properties::CFG_Name => "CFG_fibcall"; Cheddar_Multicore_Properties::CFG_Relocatable => True; Cheddar_Multicore_Properties::Text_Memory_Start_Address => 0; end Task_Fibcall; thread Task_InsertSort properties period => 2000us; Dispatch_Protocol => Periodic; Compute_Execution_Time => 450us..450us; Deadline => 2000us; Cheddar_Multicore_Properties::CFG_Name => "CFG_insertsort"; Cheddar_Multicore_Properties::CFG_Relocatable => True; Cheddar_Multicore_Properties::Text_Memory_Start_Address => 0; end Task_InsertSort; end L1_and_L2_crossbar;