]> git.nickg.me.uk Git - nvc.git/log
nvc.git
19 months agoHack to allow interpreter to be called with FFI protocol
Nick Gasson [Fri, 30 Sep 2022 20:44:36 +0000 (21:44 +0100)]
Hack to allow interpreter to be called with FFI protocol

19 months agoPass JIT handle instead of raw function pointer with closure
Nick Gasson [Wed, 28 Sep 2022 20:50:19 +0000 (21:50 +0100)]
Pass JIT handle instead of raw function pointer with closure

19 months agoConvert Windows to Unix path in install-vivado.sh. Issue #537
Nick Gasson [Tue, 27 Sep 2022 21:09:52 +0000 (22:09 +0100)]
Convert Windows to Unix path in install-vivado.sh. Issue #537

19 months agoFix division by zero error handling in interpreter
Nick Gasson [Tue, 27 Sep 2022 21:08:36 +0000 (22:08 +0100)]
Fix division by zero error handling in interpreter

19 months agoFST dumping for arrays of integer. Fixes #536
Nick Gasson [Mon, 26 Sep 2022 21:21:04 +0000 (22:21 +0100)]
FST dumping for arrays of integer. Fixes #536

19 months agoJIT IR generation for last event/active
Nick Gasson [Sun, 25 Sep 2022 20:46:13 +0000 (21:46 +0100)]
JIT IR generation for last event/active

19 months agoAdd stub for resolve signal opcode in JIT
Nick Gasson [Sun, 25 Sep 2022 20:33:56 +0000 (21:33 +0100)]
Add stub for resolve signal opcode in JIT

19 months agoRemove INIT_SIGNALS exit
Nick Gasson [Sun, 25 Sep 2022 17:21:36 +0000 (18:21 +0100)]
Remove INIT_SIGNALS exit

19 months agoLLVM generation for JIT call ops
Nick Gasson [Sun, 25 Sep 2022 10:39:59 +0000 (11:39 +0100)]
LLVM generation for JIT call ops

19 months agoUse liveness information to generate LLVM IR
Nick Gasson [Sat, 24 Sep 2022 17:31:27 +0000 (18:31 +0100)]
Use liveness information to generate LLVM IR

19 months agoAdd liveness computation for JIT registers
Nick Gasson [Sat, 24 Sep 2022 14:18:47 +0000 (15:18 +0100)]
Add liveness computation for JIT registers

19 months agoFix JIT bug with arrays of signals
Nick Gasson [Sat, 24 Sep 2022 13:11:46 +0000 (14:11 +0100)]
Fix JIT bug with arrays of signals

19 months agoFix storing/loading signal uarrays
Nick Gasson [Sat, 24 Sep 2022 12:02:44 +0000 (13:02 +0100)]
Fix storing/loading signal uarrays

19 months agoInterleave JIT dump with vcode
Nick Gasson [Sat, 24 Sep 2022 10:46:29 +0000 (11:46 +0100)]
Interleave JIT dump with vcode

19 months agoFix sorting of diagnostics
Nick Gasson [Thu, 22 Sep 2022 21:14:50 +0000 (22:14 +0100)]
Fix sorting of diagnostics

19 months agoFix map const in interpreter
Nick Gasson [Thu, 22 Sep 2022 20:57:40 +0000 (21:57 +0100)]
Fix map const in interpreter

19 months agoFixes for interpreter stack trace
Nick Gasson [Wed, 21 Sep 2022 21:05:07 +0000 (22:05 +0100)]
Fixes for interpreter stack trace

19 months agoAdd a test for pulse rejection limit
Nick Gasson [Wed, 21 Sep 2022 20:22:49 +0000 (21:22 +0100)]
Add a test for pulse rejection limit

19 months agoRelax handling of alias subtype for UVVM. Fixes #509
Nick Gasson [Wed, 21 Sep 2022 20:07:56 +0000 (21:07 +0100)]
Relax handling of alias subtype for UVVM. Fixes #509

19 months agoAdd unit test for signal index
Nick Gasson [Tue, 20 Sep 2022 20:30:10 +0000 (21:30 +0100)]
Add unit test for signal index

19 months agoAllow selected name with unconstrained type in port map. Fixes #519
Nick Gasson [Tue, 20 Sep 2022 19:51:07 +0000 (20:51 +0100)]
Allow selected name with unconstrained type in port map. Fixes #519

19 months agoUse UVVM component_list.txt in install-uvvm.sh. Fixes #531
Nick Gasson [Mon, 19 Sep 2022 20:18:27 +0000 (21:18 +0100)]
Use UVVM component_list.txt in install-uvvm.sh. Fixes #531

Co-authored-by: Adam Barnes <ambarnes@gmail.com>
19 months agoHandle partial association of subprogram signal parameter. Issue #511
Nick Gasson [Mon, 19 Sep 2022 17:36:33 +0000 (18:36 +0100)]
Handle partial association of subprogram signal parameter. Issue #511

19 months agoImprove error message when assigning to input parameter
Nick Gasson [Mon, 19 Sep 2022 16:16:55 +0000 (17:16 +0100)]
Improve error message when assigning to input parameter

19 months agoHandle partial array associations in subprogram calls
Nick Gasson [Mon, 19 Sep 2022 16:04:54 +0000 (17:04 +0100)]
Handle partial array associations in subprogram calls

19 months agoHandle procedure call with aggregate out parameter. Issue #511
Nick Gasson [Mon, 19 Sep 2022 12:27:49 +0000 (13:27 +0100)]
Handle procedure call with aggregate out parameter. Issue #511

19 months agoFix uwtable handling with LLVM 15.0
Nick Gasson [Mon, 19 Sep 2022 10:24:26 +0000 (11:24 +0100)]
Fix uwtable handling with LLVM 15.0

19 months agoFix register array name for FreeBSD/arm. Issue #534
Nick Gasson [Mon, 19 Sep 2022 08:14:38 +0000 (09:14 +0100)]
Fix register array name for FreeBSD/arm. Issue #534

19 months agoFix overload resolution with partial named arguments. Issue #532
Nick Gasson [Mon, 19 Sep 2022 08:10:38 +0000 (09:10 +0100)]
Fix overload resolution with partial named arguments. Issue #532

19 months agoFix passing signals to JIT compiled subprograms
Nick Gasson [Sun, 18 Sep 2022 21:00:16 +0000 (22:00 +0100)]
Fix passing signals to JIT compiled subprograms

19 months agoLLVM translation of more JIT opcodes
Nick Gasson [Sun, 18 Sep 2022 19:57:52 +0000 (20:57 +0100)]
LLVM translation of more JIT opcodes

19 months agoGenerate LLVM basic blocks from CFG
Nick Gasson [Sun, 18 Sep 2022 13:53:12 +0000 (14:53 +0100)]
Generate LLVM basic blocks from CFG

19 months agoConstruct control flow graph
Nick Gasson [Sun, 18 Sep 2022 11:22:15 +0000 (12:22 +0100)]
Construct control flow graph

19 months agoOptimise flags usage
Nick Gasson [Sun, 18 Sep 2022 09:05:41 +0000 (10:05 +0100)]
Optimise flags usage

19 months agoRework how comparisons/jumps work in JIT IR
Nick Gasson [Sun, 18 Sep 2022 08:12:21 +0000 (09:12 +0100)]
Rework how comparisons/jumps work in JIT IR

19 months agoLLVM IR generation for some JIT opcodes
Nick Gasson [Fri, 16 Sep 2022 21:31:37 +0000 (22:31 +0100)]
LLVM IR generation for some JIT opcodes

19 months agoSkeleton for LLVM-based JIT backend
Nick Gasson [Thu, 15 Sep 2022 21:25:38 +0000 (22:25 +0100)]
Skeleton for LLVM-based JIT backend

19 months agoFix build with LLVM 15
Nick Gasson [Thu, 15 Sep 2022 19:33:32 +0000 (20:33 +0100)]
Fix build with LLVM 15

19 months agoAdd a simple benchmarking utility
Nick Gasson [Thu, 15 Sep 2022 19:24:26 +0000 (20:24 +0100)]
Add a simple benchmarking utility

19 months agoTemporarily skip Windows tests in GitHub Actions
Nick Gasson [Wed, 14 Sep 2022 21:39:19 +0000 (22:39 +0100)]
Temporarily skip Windows tests in GitHub Actions

19 months agoUnify error handling between interpreter and native code
Nick Gasson [Wed, 14 Sep 2022 20:13:10 +0000 (21:13 +0100)]
Unify error handling between interpreter and native code

19 months agoAllow re-registering global event callback
Nick Gasson [Mon, 12 Sep 2022 21:21:03 +0000 (22:21 +0100)]
Allow re-registering global event callback

19 months agoFix bug where multiple nvc_lock_t hash to the same parking_bay_t
Nick Gasson [Mon, 12 Sep 2022 21:20:40 +0000 (22:20 +0100)]
Fix bug where multiple nvc_lock_t hash to the same parking_bay_t

19 months agoSignal indexes with non-power-of-2 alignment
Nick Gasson [Sun, 11 Sep 2022 16:27:27 +0000 (17:27 +0100)]
Signal indexes with non-power-of-2 alignment

19 months agoOptimise memory management for waveforms
Nick Gasson [Sun, 11 Sep 2022 16:01:49 +0000 (17:01 +0100)]
Optimise memory management for waveforms

19 months agoMinor optimisation to avoid iterating in split_nexus
Nick Gasson [Sun, 11 Sep 2022 12:49:35 +0000 (13:49 +0100)]
Minor optimisation to avoid iterating in split_nexus

19 months agoUse a flat lookup table for signal indexes
Nick Gasson [Sun, 11 Sep 2022 11:47:35 +0000 (12:47 +0100)]
Use a flat lookup table for signal indexes

20 months agoImprove error message for unconstrained element type
Nick Gasson [Sat, 10 Sep 2022 14:00:16 +0000 (15:00 +0100)]
Improve error message for unconstrained element type

20 months agoDo not longjmp out of model_run
Nick Gasson [Sat, 10 Sep 2022 12:42:13 +0000 (13:42 +0100)]
Do not longjmp out of model_run

20 months agoAdd --gtkw option to write GtkWave save file. Issue #526
Nick Gasson [Thu, 8 Sep 2022 18:18:18 +0000 (19:18 +0100)]
Add --gtkw option to write GtkWave save file. Issue #526

20 months agoWrap waveform dumper state in a new wave_dumper_t
Nick Gasson [Thu, 8 Sep 2022 15:38:42 +0000 (16:38 +0100)]
Wrap waveform dumper state in a new wave_dumper_t

20 months agoReplace some uses of deprecate LLVMBuildStructGEP
Nick Gasson [Thu, 8 Sep 2022 11:15:10 +0000 (12:15 +0100)]
Replace some uses of deprecate LLVMBuildStructGEP

20 months agoImplement DIR_ITEM* functions from STD.ENV
Nick Gasson [Sun, 4 Sep 2022 21:00:53 +0000 (22:00 +0100)]
Implement DIR_ITEM* functions from STD.ENV

20 months agoUse static_alloc to allocate rt_net_t
Nick Gasson [Sun, 4 Sep 2022 13:54:06 +0000 (14:54 +0100)]
Use static_alloc to allocate rt_net_t

20 months agoAdd a separate free list for waveforms
Nick Gasson [Sat, 3 Sep 2022 17:11:36 +0000 (18:11 +0100)]
Add a separate free list for waveforms

20 months agoAccidentally disabled LTO
Nick Gasson [Sat, 3 Sep 2022 17:02:53 +0000 (18:02 +0100)]
Accidentally disabled LTO

20 months agoAlign rt_source_t and rt_nexus_t on cacheline boundary
Nick Gasson [Fri, 2 Sep 2022 21:27:54 +0000 (22:27 +0100)]
Align rt_source_t and rt_nexus_t on cacheline boundary

20 months agoCreate private mapping in nvc_mmap
Nick Gasson [Fri, 2 Sep 2022 20:38:50 +0000 (21:38 +0100)]
Create private mapping in nvc_mmap

20 months agoInvalid rewriting of package generic map. Fixes #520
Nick Gasson [Fri, 2 Sep 2022 19:40:50 +0000 (20:40 +0100)]
Invalid rewriting of package generic map. Fixes #520

20 months agoRefactor rtkern.c into a new model object
Nick Gasson [Thu, 1 Sep 2022 21:26:44 +0000 (22:26 +0100)]
Refactor rtkern.c into a new model object

20 months agoRemove accidentally committed debug dump
Nick Gasson [Thu, 1 Sep 2022 20:40:33 +0000 (21:40 +0100)]
Remove accidentally committed debug dump

20 months agoSync NEWS.md from 1.7 branch
Nick Gasson [Wed, 31 Aug 2022 20:54:37 +0000 (21:54 +0100)]
Sync NEWS.md from 1.7 branch

20 months agoDetect duplicate choices in array case statement. Issue #528
Nick Gasson [Mon, 29 Aug 2022 21:43:57 +0000 (22:43 +0100)]
Detect duplicate choices in array case statement. Issue #528

20 months agoHandle alias in case expression
Nick Gasson [Mon, 29 Aug 2022 17:21:00 +0000 (18:21 +0100)]
Handle alias in case expression

20 months agoHandle side effects in pulse reject interval expression. Fixed #527
Nick Gasson [Fri, 26 Aug 2022 18:05:31 +0000 (19:05 +0100)]
Handle side effects in pulse reject interval expression. Fixed #527

20 months agoUpdate Quartus install script
Nick Gasson [Thu, 25 Aug 2022 08:05:56 +0000 (09:05 +0100)]
Update Quartus install script

Co-authored-by: Adam Barnes <ambarnes@gmail.com>
20 months agoDumping for real value signals. Issue #524
Nick Gasson [Thu, 25 Aug 2022 07:21:52 +0000 (08:21 +0100)]
Dumping for real value signals. Issue #524

20 months agoFix crash parsing string literal with enumeration subtype index type
Nick Gasson [Wed, 24 Aug 2022 21:25:19 +0000 (22:25 +0100)]
Fix crash parsing string literal with enumeration subtype index type

20 months agoInclude Git commit hash in --version output
Nick Gasson [Wed, 24 Aug 2022 21:15:52 +0000 (22:15 +0100)]
Include Git commit hash in --version output

20 months agoAdd Quartus install script
Nick Gasson [Wed, 24 Aug 2022 20:43:22 +0000 (21:43 +0100)]
Add Quartus install script

Co-authored-by: Adam Barnes <ambarnes@gmail.com>
20 months agoError with "use work.all" when work library is not named "work"
Nick Gasson [Wed, 24 Aug 2022 20:40:41 +0000 (21:40 +0100)]
Error with "use work.all" when work library is not named "work"

20 months agoFix crash with constrained array declared in entity
Nick Gasson [Wed, 24 Aug 2022 20:05:25 +0000 (21:05 +0100)]
Fix crash with constrained array declared in entity

20 months agoLLVMBasicBlockRef shared by multiple contexts. Fixes #506
Nick Gasson [Wed, 24 Aug 2022 07:22:48 +0000 (08:22 +0100)]
LLVMBasicBlockRef shared by multiple contexts. Fixes #506

20 months agoTemporary workaround for issue #506
Nick Gasson [Tue, 23 Aug 2022 22:06:07 +0000 (23:06 +0100)]
Temporary workaround for issue #506

20 months agoFix bug simplifying case statements with range choices
Nick Gasson [Tue, 23 Aug 2022 19:18:10 +0000 (20:18 +0100)]
Fix bug simplifying case statements with range choices

20 months agoPrefix for debug messages should be "debug". Fixes #523
Nick Gasson [Tue, 23 Aug 2022 19:19:23 +0000 (20:19 +0100)]
Prefix for debug messages should be "debug". Fixes #523

20 months agoAvoid evaluating generic map expressions multiple times
Nick Gasson [Tue, 23 Aug 2022 07:33:03 +0000 (08:33 +0100)]
Avoid evaluating generic map expressions multiple times

20 months agoStart replacing some deprecated LLVM functions
Nick Gasson [Sun, 21 Aug 2022 09:37:14 +0000 (10:37 +0100)]
Start replacing some deprecated LLVM functions

20 months agoBump minimum LLVM version to 8.0
Nick Gasson [Sun, 21 Aug 2022 09:22:30 +0000 (10:22 +0100)]
Bump minimum LLVM version to 8.0

20 months agoOnly check file modification time once
Nick Gasson [Sat, 20 Aug 2022 20:42:53 +0000 (21:42 +0100)]
Only check file modification time once

20 months agoAdd opcodes for scalar to string conversion
Nick Gasson [Sat, 20 Aug 2022 19:55:29 +0000 (20:55 +0100)]
Add opcodes for scalar to string conversion

20 months agoDedicated vcode opcodes for string conversions
Nick Gasson [Sat, 20 Aug 2022 17:22:52 +0000 (18:22 +0100)]
Dedicated vcode opcodes for string conversions

20 months agoIncorrect behaviour of resolution functions with nested records. Issue #516
Nick Gasson [Wed, 17 Aug 2022 18:11:39 +0000 (19:11 +0100)]
Incorrect behaviour of resolution functions with nested records. Issue #516

20 months agoAvoid unnecessary copy on output of resolution function
Nick Gasson [Sat, 20 Aug 2022 09:32:35 +0000 (10:32 +0100)]
Avoid unnecessary copy on output of resolution function

20 months agoFix build with old versions of Glibc
Nick Gasson [Sat, 20 Aug 2022 07:47:39 +0000 (08:47 +0100)]
Fix build with old versions of Glibc

20 months agoIncorrect code generation with array type declared in function
Nick Gasson [Fri, 19 Aug 2022 21:23:53 +0000 (22:23 +0100)]
Incorrect code generation with array type declared in function

20 months agoAlways build VITAL on Windows
Nick Gasson [Fri, 19 Aug 2022 20:03:18 +0000 (21:03 +0100)]
Always build VITAL on Windows

20 months agoUpdate Vivado compile script to use new --install framework
Nick Gasson [Fri, 19 Aug 2022 20:02:33 +0000 (21:02 +0100)]
Update Vivado compile script to use new --install framework

20 months agoImplement working directory functions from VHDL-2019
Nick Gasson [Thu, 18 Aug 2022 21:15:23 +0000 (22:15 +0100)]
Implement working directory functions from VHDL-2019

20 months agoExternal names with record signals. Fixes #520
Nick Gasson [Thu, 18 Aug 2022 13:22:36 +0000 (14:22 +0100)]
External names with record signals. Fixes #520

20 months agoBug in simplification of wait until statement with no sensitivity list
Nick Gasson [Wed, 17 Aug 2022 17:24:05 +0000 (18:24 +0100)]
Bug in simplification of wait until statement with no sensitivity list

20 months agoFix crash with expressions like X'DELAYED'STABLE. Issue #517
Nick Gasson [Wed, 17 Aug 2022 16:54:20 +0000 (17:54 +0100)]
Fix crash with expressions like X'DELAYED'STABLE. Issue #517

20 months agoIncrease default delta cycle limit to 10000. Issue #521
Nick Gasson [Wed, 17 Aug 2022 12:52:45 +0000 (13:52 +0100)]
Increase default delta cycle limit to 10000. Issue #521

20 months agoCrash with type conversion in generic map. Fixes #518
Nick Gasson [Tue, 16 Aug 2022 20:47:48 +0000 (21:47 +0100)]
Crash with type conversion in generic map. Fixes #518

20 months agoFix regression of ctrl-C interrupt handling
Nick Gasson [Tue, 16 Aug 2022 20:40:14 +0000 (21:40 +0100)]
Fix regression of ctrl-C interrupt handling

20 months agoFix crash after out-of-memory. Issue #515
Nick Gasson [Tue, 16 Aug 2022 20:12:28 +0000 (21:12 +0100)]
Fix crash after out-of-memory. Issue #515

20 months agoImprove dumping for qualified expressions
Nick Gasson [Tue, 16 Aug 2022 20:11:40 +0000 (21:11 +0100)]
Improve dumping for qualified expressions

20 months agoBasic support for partial record association in parameter map. Issue #511
Nick Gasson [Tue, 16 Aug 2022 10:15:19 +0000 (11:15 +0100)]
Basic support for partial record association in parameter map. Issue #511

20 months agoRefactor subprogram call argument checking
Nick Gasson [Mon, 15 Aug 2022 20:55:57 +0000 (21:55 +0100)]
Refactor subprogram call argument checking

20 months agoMove some STD.STANDARD functions to a separate file
Nick Gasson [Mon, 15 Aug 2022 13:56:51 +0000 (14:56 +0100)]
Move some STD.STANDARD functions to a separate file