Questions tagged [simics]

Simics is an efficient, instrumented, system level instruction set simulator.

Simics is a fast system-level virtual platform that can simulate any electronic system. It scales from single cores running firmware to very large heterogeneous multi-core multi-processor multi-board configurations.

Simics can simulate arbitrary systems including many different types of processors at once (such as big Intel cores along with embedded firmware engines, or networks containing ARM, Intel, and other types of SoCs). Simics is built to be fast, and for Intel-on-Intel it uses VT-x to reach speeds close to common virtual machine systems. Multiple networked machines can be simulated inside a single Simics simulation process, and run in parallel using multicore hosts.

Simics models include both processor cores and the peripheral devices, allowing the execution of unmodified real-world software including both boot-up firmware, BIOS and UEFI, and full software stacks including hypervisors.

The end uses for Simics include pre-silicon software development, debug, and testing, program analysis, computer architecture research, network simulation, and more. Simics has very powerful built-in instrumentation, tracing, inspection, and debug features that operate on the target software without disturbing its execution in any way. Simics applies to software at all levels: firmware, boot code, operating systems, drivers, hypervisors, and user-level applications.

Simics is developed by Intel, and also sold commercially by Wind River.

56 questions
4
votes
1 answer

How to write Sparc assembly and run its binary in Qemu or Simics?

I am trying to start writing some Sparc assembly, but I can't figure out how to assemble and run the code. I have written arc with arcTools, but that's as far as I have gone with assembly. I have downloaded both simics and qemu, but I don't know…
user1078516
3
votes
1 answer

apply init_val template to the uint64_attr

​Hi all, I want to apply the init_val template to several attributes in my model to reset them by sreset template. Attribute definition below can't be compiled by 166 base, any suggestions? attribute attr1[10] is (uint64_attr, init_val) { param…
Dmitry
  • 31
  • 2
3
votes
2 answers

Issue logging within an embedded C function

I'd like to generate logging messages from within a C function embedded in a DML method. Take the example code below where the fib() function is called from the write() method of the regs bank. The log methods available to C all require a pointer to…
3
votes
1 answer

Does Simics use SMM?

I'd like to understand if the QSP-x86 project is simulating SMM at all. I didn't see anything in the available registers/memory from the GUI debugger that would suggest there was a way for me to see SMRAM / SMI handler code. Therefore I'm wondering…
Jimmy Wu
  • 149
  • 7
3
votes
1 answer

How do I get time stamps on Simics log messages?

By default, Simics log messages only show the object that logged the message. Like these, for example: [board.mb.sb.spi.bank.spi_regs spec-viol] Write to read-only field spi_regs.hsfsts.fdv (value written = 0x0000, contents =…
jakobengblom2
  • 5,531
  • 2
  • 25
  • 33
2
votes
1 answer

No GUI windows on Linux. Probably a problem with wxPython package

I'm trying to use Simics on Linux but I can't get the serial and graphical console windows to popup. The simics shell itself and the whole simulation seems to work. The only clue of what's going wrong I found by trying to use the win-about command.…
2
votes
1 answer

Simics qsp-x86 change default network adapter

I'm porting an hobby OS I wrote under QEMU to Simics free version (simics-qsp-x86-6.0.43). I'm experiencing problems with the network adapter. My OS supports 8254x cards whereas Simics-qsp-x86 comes with 82567lf-2 Intel PCI-E card. I didn't find any…
2
votes
2 answers

How to get the clock argument of event.post(clock, data, duration) in a python device?

I cannot find an example in the Simics documentation on how the clock object is obtained so that we can use it as an argument in the post() method. I suspect that either an attribute can be used to get the clock or in the ConfObject class scope we…
2
votes
2 answers

How to iterate over the unmapped registers of a bank in DML 1.4?

I am trying to migrate some modules to DML 1.4 and I face some problems during bank content iteration. Specifically, I originally have the snippet below: select reg in ($signals.unmapped_registers) where (reg.signal_number == signal) { // some…
ggiakoum
  • 23
  • 2
2
votes
2 answers

How to call Python functions from DML?

I would like to have a DML device with interfaces and register banks as the TOP-level of my device but offload processing to Python. Is there a lightweight method of calling into Python from DML? This post How can I unit test a specific DML method?…
2
votes
1 answer

Unable to lo load symbols table and perform symbolic debugging with Simics

I'm trying to debug my custom kernel under Simics preview 6.0.43. I'm able to boot the kernel, set a breakpoint on a memory address and to have the execution hit the breakpoint. Anyway I'm not able to load symbols for symbolic debugging. This what I…
2
votes
1 answer

Is "step-out" / "step-over-instruction" broken in Simics 2021.24?

Step-out seems to be broken in Simics 2021.24. I did "enable-debugger" but it still doesn't work. Please see below: simics> [board.mb.cpu0.core[0][0]] cs:0x00000000def963ae p:0x0def963ae sbb rax,rax …
Rohan
  • 33
  • 2
2
votes
1 answer

Why do neither trace-msr nor break-msr show changes to msr_ia32_smbase in Simics?

I tried multiple ways to break on the write to smbase. First I tried board.mb.cpu0.core[0][0].break-msr 0x9E But when I run, it just runs forever without breaking. Then I tried to break in SMM, and then just trace its access, but this showed no…
Jimmy Wu
  • 149
  • 7
2
votes
1 answer

Is there a way to see the raw bytes in disassembly view?

Is there a way to see the raw bytes of assembly instructions in the disassembly view? (One of the downsides of the HTML documentation is that it doesn't seem to be searchable?) Also, is Simics Eclipse even an option for the free preview? (It seems…
Jimmy Wu
  • 149
  • 7
2
votes
1 answer

Simics 1.1.0 "run-command-file targets\qsp-x86\firststeps.simics" breaks when enabling reverse execution

If the first thing I do in simics is enable the "Enable reverse execution on startup" in the preferences, and then restart it, when I try to run "run-command-file targets\qsp-x86\firststeps.simics" then I get the following error…
Jimmy Wu
  • 149
  • 7
1
2 3 4