Nick Gasson
f84f50842c
Support bufif for tri1 nets
2008-07-14 19:13:11 +01:00
Nick Gasson
65720f49fe
Simple bufif cases
2008-07-14 19:00:58 +01:00
Nick Gasson
3bd480a375
Allow ouput to be read if connected to child output
...
If output P of A is connected to output Q of B (and A is
instantiated inside B) then VHDL does not allow B to read
the value of Q (also P), but Verilog does. To get around
this the output Q is mapped to P_Sig which is then connected
to P, this allows B to read the value of P/Q via P_Sig.
2008-07-13 12:41:02 +01:00
Nick Gasson
4777966b4c
Bit select bug fixes
2008-07-07 21:19:59 +01:00
Nick Gasson
b0de1a8d7e
Implement part select for LHS of assignment
2008-07-07 16:11:45 +01:00
Nick Gasson
c33600bcc3
Add concatenation operator
2008-07-06 18:21:34 +01:00
Nick Gasson
c54b36c902
Add logical AND operator
2008-07-04 11:10:20 +01:00
Nick Gasson
19cbab78b2
Tidy up code to generate default branch of case
2008-07-03 20:04:47 +01:00
Nick Gasson
930e04f6c7
Ensure port map expressions are globally static
2008-07-01 11:28:02 +01:00
Nick Gasson
050aa277ae
Make vhdl_element::emit a little more generic
2008-07-01 10:37:22 +01:00
Nick Gasson
081f397460
Implement LPM part select
2008-06-27 14:58:03 +01:00
Nick Gasson
fd60bfd3d2
Rewrite function parameter finding code
2008-06-27 12:18:39 +01:00
Nick Gasson
500442e5c5
Working function calls
2008-06-25 22:15:57 +01:00
Nick Gasson
43c671cb5c
Emit VHDL for function declarations
2008-06-25 18:00:48 +01:00
Nick Gasson
a3df37b851
Initial code to generate function calls
...
Also catch a few null-pointer issues
2008-06-25 17:29:09 +01:00
Nick Gasson
c01c2bd742
Dummy code for handling function scopes
2008-06-25 12:48:46 +01:00
Nick Gasson
899a70908e
Fix small bug with initialisation and ammend comments
2008-06-24 20:13:18 +01:00
Nick Gasson
bf95d77562
Finish replacing vhdl_process with vhdl_procedural
2008-06-24 20:01:06 +01:00
Nick Gasson
db992e808f
Start using vhdl_procedural instead of vhdl_process
2008-06-24 19:54:22 +01:00
Nick Gasson
f2aca68b82
Add new vhdl_procedural superclass for process/task/func
2008-06-24 19:50:57 +01:00
Nick Gasson
12b448ef01
Merge branch 'vhdl' of git@github.com:nickg/iverilog into vhdl
...
Conflicts:
tgt-vhdl/vhdl_syntax.cc
2008-06-24 19:42:35 +01:00
Nick Gasson
e77bb0157e
Remove redundant methods from vhdl_arch
2008-06-24 19:39:05 +01:00
Nick Gasson
75631bd8f1
Move is_inital code out of vhdl_process into vhdl_scope
...
Part of tidy up before implementing functions
2008-06-24 19:06:06 +01:00
Nick Gasson
63b1887ff2
Refactor code to use the new vhdl_scope class
2008-06-24 18:52:25 +01:00
Nick Gasson
ba36e47575
Add new vhdl_scope class and refactor
2008-06-24 18:12:00 +01:00
Nick Gasson
3866c4526e
Simplify code to emit operators
2008-06-24 14:58:58 +01:00
Nick Gasson
4188fbecee
Add XOR operator and catch default case branch
2008-06-24 10:55:45 +01:00
Nick Gasson
449cd0a76e
Correctly generate signed/unsigned types
2008-06-23 14:28:27 +01:00
Nick Gasson
e5ef0d97bd
Fix signed/unsigned resizing
2008-06-23 13:04:28 +01:00
Nick Gasson
c9ace14c40
Shift operators working correctly
2008-06-23 12:14:12 +01:00
Nick Gasson
75f7c9ae0c
Only move constant assignments into initialisation
2008-06-21 16:40:18 +01:00
Nick Gasson
c70fb4ba08
Simple implementation of IVL_EX_SELECT
2008-06-21 16:17:44 +01:00
Nick Gasson
7cba9f3cb2
Shift left/right
2008-06-21 15:19:33 +01:00
Nick Gasson
d6acb8d059
Less than / greater than
2008-06-21 15:16:22 +01:00
Nick Gasson
ec23b70bb7
While loops
2008-06-21 15:13:44 +01:00
Nick Gasson
0caf4fd9d0
Add case statement
2008-06-21 15:03:36 +01:00
Nick Gasson
d7bb5658f2
Translate IVL_ST_DELAYX statements
2008-06-19 12:16:19 +01:00
Nick Gasson
254ccb9ccb
First passing at blocking assignment
2008-06-18 13:06:27 +01:00
Nick Gasson
d2bebee9d9
Refactor before adding blocking assignment
2008-06-18 12:51:11 +01:00
Nick Gasson
af8c08e6a7
Allow optional VHPI $finish implementation
2008-06-17 20:16:16 +01:00
Nick Gasson
1debbc3100
Simplify edge_detector() a bit
2008-06-16 20:06:06 +01:00
Nick Gasson
8d0afa632d
Subtraction and multiplication LPM devices
2008-06-16 19:49:24 +01:00
Nick Gasson
ce72eb4eb4
Fix Valgrind warnings
2008-06-16 14:26:38 +01:00
Nick Gasson
7cde5f247e
Add translation for not-equals operator
2008-06-16 12:47:41 +01:00
Nick Gasson
919c1d695c
Adding binary +
2008-06-14 17:09:31 +01:00
Nick Gasson
9fbb449e06
Optimise away empty (VHDL) processes
2008-06-13 14:17:24 +01:00
Nick Gasson
be3c4cf268
Generate signal initial values from `initial' processes
2008-06-13 14:10:28 +01:00
Nick Gasson
0a8fd50c4a
Find assignments that could be initializers
2008-06-13 13:59:48 +01:00
Nick Gasson
0df3eabe26
Convert `if (foo) ..' to `if foo = '1' then ..'
2008-06-12 11:36:21 +01:00
Nick Gasson
8fe2211e2b
Generate `after' modifier instead of `wait' statements
2008-06-12 11:24:43 +01:00
Nick Gasson
7eb41304e6
Generate rising/falling edge detectors
2008-06-12 10:36:38 +01:00
Nick Gasson
a7cfdc3a87
Add VHDL if statement to AST types
2008-06-11 14:11:37 +01:00
Nick Gasson
b010b8e3ca
Use `assert false' as initial translation of $finish
2008-06-11 13:37:21 +01:00
Nick Gasson
26a2c69c2e
Change architecture name to `FromVerilog'
2008-06-11 11:31:43 +01:00
Nick Gasson
5a7cfd8c02
Clean up vhdl_comp_inst
2008-06-10 14:00:15 +01:00
Nick Gasson
babe694366
Generate port mappings
2008-06-10 13:58:41 +01:00
Nick Gasson
f6753a9013
Add ports to component declarations
2008-06-10 11:24:16 +01:00
Nick Gasson
3106fe0ed6
Generate port declarations for entities.
...
But doesn't emit them yet!
2008-06-09 16:27:04 +01:00
Nick Gasson
3b5d56e087
Allow n-ary expressions
2008-06-09 14:53:50 +01:00
Nick Gasson
aa91186119
Add AST elements for unary/binary expressions to model logic gates
2008-06-09 14:39:58 +01:00
Nick Gasson
d08f5af9c6
Add concurrent assignments
2008-06-09 14:21:55 +01:00
Nick Gasson
120b5dc80e
Add constant integers
2008-06-09 12:46:55 +01:00
Nick Gasson
d762253f74
Wait statements
2008-06-09 12:40:59 +01:00
Nick Gasson
1d28b935e8
Split vhdl_element.cc into multiple files
2008-06-08 13:27:48 +01:00