]> git.nickg.me.uk Git - nvc.git/log
nvc.git
19 months agoGenerate constraints for port with unconstrained record type. Issue #544
Nick Gasson [Tue, 11 Oct 2022 21:08:27 +0000 (22:08 +0100)]
Generate constraints for port with unconstrained record type. Issue #544

19 months agoAppend mode truncates file. Fixes #551
Nick Gasson [Tue, 11 Oct 2022 19:47:05 +0000 (20:47 +0100)]
Append mode truncates file. Fixes #551

19 months agoDo not constant fold if-statements that contain drivers
Nick Gasson [Sun, 9 Oct 2022 09:13:27 +0000 (10:13 +0100)]
Do not constant fold if-statements that contain drivers

19 months agoLLVM IR generation for copy opcode
Nick Gasson [Sun, 9 Oct 2022 08:27:47 +0000 (09:27 +0100)]
LLVM IR generation for copy opcode

19 months agoLLVM IR generation for more operations
Nick Gasson [Sat, 8 Oct 2022 18:11:38 +0000 (19:11 +0100)]
LLVM IR generation for more operations

19 months agoImprove type inference for LLVM values
Nick Gasson [Sat, 8 Oct 2022 11:43:02 +0000 (12:43 +0100)]
Improve type inference for LLVM values

19 months agoAllow protected objects in concurrent procedure calls. Issue #547
Nick Gasson [Sat, 8 Oct 2022 08:31:13 +0000 (09:31 +0100)]
Allow protected objects in concurrent procedure calls. Issue #547

19 months agoAllow signal declarations in entity declarative part. Issue #547
Nick Gasson [Thu, 6 Oct 2022 18:35:58 +0000 (19:35 +0100)]
Allow signal declarations in entity declarative part. Issue #547

19 months agoProperly handle procedure returns in JIT irgen
Nick Gasson [Wed, 5 Oct 2022 21:11:38 +0000 (22:11 +0100)]
Properly handle procedure returns in JIT irgen

19 months agoFix "signal argument must have signal type" error. Issue #543
Nick Gasson [Wed, 5 Oct 2022 20:41:10 +0000 (21:41 +0100)]
Fix "signal argument must have signal type" error. Issue #543

19 months agoImprove testing of guarded signals
Nick Gasson [Mon, 3 Oct 2022 20:19:41 +0000 (21:19 +0100)]
Improve testing of guarded signals

19 months agoImprove "does not have item .." error message. Issue #539
Nick Gasson [Mon, 3 Oct 2022 19:52:34 +0000 (20:52 +0100)]
Improve "does not have item .." error message. Issue #539

19 months agoMOD and REM are defined for physical types in 2008. Fixes #540
Nick Gasson [Mon, 3 Oct 2022 19:45:26 +0000 (20:45 +0100)]
MOD and REM are defined for physical types in 2008. Fixes #540

19 months agoFix longest static prefix with 'RANGE expression. Fixes #542
Nick Gasson [Mon, 3 Oct 2022 19:39:12 +0000 (20:39 +0100)]
Fix longest static prefix with 'RANGE expression. Fixes #542

19 months agoRework how disconnected drivers are represented
Nick Gasson [Sun, 2 Oct 2022 18:24:49 +0000 (19:24 +0100)]
Rework how disconnected drivers are represented

19 months agoAvoid locking in work queue when there are no worker threads
Nick Gasson [Sun, 2 Oct 2022 15:58:27 +0000 (16:58 +0100)]
Avoid locking in work queue when there are no worker threads

19 months agoUse work queues for effective/driving value updates
Nick Gasson [Sun, 2 Oct 2022 15:15:44 +0000 (16:15 +0100)]
Use work queues for effective/driving value updates

19 months agoUse work queue for delta cycle process list
Nick Gasson [Sun, 2 Oct 2022 14:27:51 +0000 (15:27 +0100)]
Use work queue for delta cycle process list

19 months agoUse work queue for all sensitivity list events
Nick Gasson [Sun, 2 Oct 2022 10:03:50 +0000 (11:03 +0100)]
Use work queue for all sensitivity list events

19 months agoUse work queue for executing processes
Nick Gasson [Sun, 2 Oct 2022 08:40:41 +0000 (09:40 +0100)]
Use work queue for executing processes

19 months agoMake expected test output independent of execution order
Nick Gasson [Sun, 2 Oct 2022 08:38:12 +0000 (09:38 +0100)]
Make expected test output independent of execution order

19 months agoAdd a context parameter to work queues
Nick Gasson [Sat, 1 Oct 2022 17:18:04 +0000 (18:18 +0100)]
Add a context parameter to work queues

19 months agoAvoid allocating memory when registering diagnostic callbacks
Nick Gasson [Sat, 1 Oct 2022 11:21:05 +0000 (12:21 +0100)]
Avoid allocating memory when registering diagnostic callbacks

19 months agoMake MODEL_ENTER reentrant
Nick Gasson [Sat, 1 Oct 2022 11:02:02 +0000 (12:02 +0100)]
Make MODEL_ENTER reentrant

19 months agoUse shared work queue for code generation
Nick Gasson [Fri, 22 Jul 2022 15:55:38 +0000 (16:55 +0100)]
Use shared work queue for code generation

19 months agoAdd a work stealing task queue
Nick Gasson [Fri, 22 Jul 2022 14:55:42 +0000 (15:55 +0100)]
Add a work stealing task queue

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

20 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

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

20 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

20 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