aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2019-12-30 16:46:22 +0100
committerTristan Gingold <tgingold@free.fr>2019-12-30 16:46:22 +0100
commit6340fddff21567b10dd774d5459536d37c6239dc (patch)
tree36706a03719471083be6934bb2e432cb4a386128
parente9dfd170410bc6fc534f845976e08082fe217fc5 (diff)
downloadghdl-6340fddff21567b10dd774d5459536d37c6239dc.tar.gz
ghdl-6340fddff21567b10dd774d5459536d37c6239dc.tar.bz2
ghdl-6340fddff21567b10dd774d5459536d37c6239dc.zip
ams-vhdl: add frequency function, minor fixes.
-rw-r--r--python/libghdl/thin/vhdl/nodes.py361
-rw-r--r--src/vhdl/translate/trans-chap7.adb3
-rw-r--r--src/vhdl/vhdl-evaluation.adb1
-rw-r--r--src/vhdl/vhdl-nodes.ads1
-rw-r--r--src/vhdl/vhdl-sem_stmts.adb2
-rw-r--r--src/vhdl/vhdl-sem_types.adb6
-rw-r--r--src/vhdl/vhdl-std_package.adb19
7 files changed, 207 insertions, 186 deletions
diff --git a/python/libghdl/thin/vhdl/nodes.py b/python/libghdl/thin/vhdl/nodes.py
index 06c9a750b..dce74a709 100644
--- a/python/libghdl/thin/vhdl/nodes.py
+++ b/python/libghdl/thin/vhdl/nodes.py
@@ -1136,186 +1136,187 @@ class Iir_Predefined:
Endfile = 169
Now_Function = 170
Real_Now_Function = 171
- PNone = 172
- Foreign_Untruncated_Text_Read = 173
- Foreign_Textio_Read_Real = 174
- Foreign_Textio_Write_Real = 175
- Ieee_1164_Scalar_And = 176
- Ieee_1164_Scalar_Nand = 177
- Ieee_1164_Scalar_Or = 178
- Ieee_1164_Scalar_Nor = 179
- Ieee_1164_Scalar_Xor = 180
- Ieee_1164_Scalar_Xnor = 181
- Ieee_1164_Scalar_Not = 182
- Ieee_1164_Vector_And = 183
- Ieee_1164_Vector_Nand = 184
- Ieee_1164_Vector_Or = 185
- Ieee_1164_Vector_Nor = 186
- Ieee_1164_Vector_Xor = 187
- Ieee_1164_Vector_Xnor = 188
- Ieee_1164_Vector_Not = 189
- Ieee_1164_To_Bitvector = 190
- Ieee_1164_Vector_Is_X = 191
- Ieee_1164_Scalar_Is_X = 192
- Ieee_1164_Rising_Edge = 193
- Ieee_1164_Falling_Edge = 194
- Ieee_1164_Vector_And_Reduce = 195
- Ieee_1164_Vector_Or_Reduce = 196
- Ieee_1164_Condition_Operator = 197
- Ieee_Numeric_Std_Toint_Uns_Nat = 198
- Ieee_Numeric_Std_Toint_Sgn_Int = 199
- Ieee_Numeric_Std_Touns_Nat_Nat_Uns = 200
- Ieee_Numeric_Std_Touns_Nat_Uns_Uns = 201
- Ieee_Numeric_Std_Tosgn_Int_Nat_Sgn = 202
- Ieee_Numeric_Std_Tosgn_Int_Sgn_Sgn = 203
- Ieee_Numeric_Std_Resize_Uns_Nat = 204
- Ieee_Numeric_Std_Resize_Sgn_Nat = 205
- Ieee_Numeric_Std_Resize_Uns_Uns = 206
- Ieee_Numeric_Std_Resize_Sgn_Sgn = 207
- Ieee_Numeric_Std_Add_Uns_Uns = 208
- Ieee_Numeric_Std_Add_Uns_Nat = 209
- Ieee_Numeric_Std_Add_Nat_Uns = 210
- Ieee_Numeric_Std_Add_Uns_Log = 211
- Ieee_Numeric_Std_Add_Log_Uns = 212
- Ieee_Numeric_Std_Add_Sgn_Sgn = 213
- Ieee_Numeric_Std_Add_Sgn_Int = 214
- Ieee_Numeric_Std_Add_Int_Sgn = 215
- Ieee_Numeric_Std_Add_Sgn_Log = 216
- Ieee_Numeric_Std_Add_Log_Sgn = 217
- Ieee_Numeric_Std_Sub_Uns_Uns = 218
- Ieee_Numeric_Std_Sub_Uns_Nat = 219
- Ieee_Numeric_Std_Sub_Nat_Uns = 220
- Ieee_Numeric_Std_Sub_Sgn_Sgn = 221
- Ieee_Numeric_Std_Sub_Sgn_Int = 222
- Ieee_Numeric_Std_Sub_Int_Sgn = 223
- Ieee_Numeric_Std_Mul_Uns_Uns = 224
- Ieee_Numeric_Std_Mul_Uns_Nat = 225
- Ieee_Numeric_Std_Mul_Nat_Uns = 226
- Ieee_Numeric_Std_Mul_Sgn_Sgn = 227
- Ieee_Numeric_Std_Mul_Sgn_Int = 228
- Ieee_Numeric_Std_Mul_Int_Sgn = 229
- Ieee_Numeric_Std_Div_Uns_Uns = 230
- Ieee_Numeric_Std_Div_Uns_Nat = 231
- Ieee_Numeric_Std_Div_Nat_Uns = 232
- Ieee_Numeric_Std_Div_Sgn_Sgn = 233
- Ieee_Numeric_Std_Div_Sgn_Int = 234
- Ieee_Numeric_Std_Div_Int_Sgn = 235
- Ieee_Numeric_Std_Gt_Uns_Uns = 236
- Ieee_Numeric_Std_Gt_Uns_Nat = 237
- Ieee_Numeric_Std_Gt_Nat_Uns = 238
- Ieee_Numeric_Std_Gt_Sgn_Sgn = 239
- Ieee_Numeric_Std_Gt_Sgn_Int = 240
- Ieee_Numeric_Std_Gt_Int_Sgn = 241
- Ieee_Numeric_Std_Lt_Uns_Uns = 242
- Ieee_Numeric_Std_Lt_Uns_Nat = 243
- Ieee_Numeric_Std_Lt_Nat_Uns = 244
- Ieee_Numeric_Std_Lt_Sgn_Sgn = 245
- Ieee_Numeric_Std_Lt_Sgn_Int = 246
- Ieee_Numeric_Std_Lt_Int_Sgn = 247
- Ieee_Numeric_Std_Le_Uns_Uns = 248
- Ieee_Numeric_Std_Le_Uns_Nat = 249
- Ieee_Numeric_Std_Le_Nat_Uns = 250
- Ieee_Numeric_Std_Le_Sgn_Sgn = 251
- Ieee_Numeric_Std_Le_Sgn_Int = 252
- Ieee_Numeric_Std_Le_Int_Sgn = 253
- Ieee_Numeric_Std_Ge_Uns_Uns = 254
- Ieee_Numeric_Std_Ge_Uns_Nat = 255
- Ieee_Numeric_Std_Ge_Nat_Uns = 256
- Ieee_Numeric_Std_Ge_Sgn_Sgn = 257
- Ieee_Numeric_Std_Ge_Sgn_Int = 258
- Ieee_Numeric_Std_Ge_Int_Sgn = 259
- Ieee_Numeric_Std_Eq_Uns_Uns = 260
- Ieee_Numeric_Std_Eq_Uns_Nat = 261
- Ieee_Numeric_Std_Eq_Nat_Uns = 262
- Ieee_Numeric_Std_Eq_Sgn_Sgn = 263
- Ieee_Numeric_Std_Eq_Sgn_Int = 264
- Ieee_Numeric_Std_Eq_Int_Sgn = 265
- Ieee_Numeric_Std_Ne_Uns_Uns = 266
- Ieee_Numeric_Std_Ne_Uns_Nat = 267
- Ieee_Numeric_Std_Ne_Nat_Uns = 268
- Ieee_Numeric_Std_Ne_Sgn_Sgn = 269
- Ieee_Numeric_Std_Ne_Sgn_Int = 270
- Ieee_Numeric_Std_Ne_Int_Sgn = 271
- Ieee_Numeric_Std_Shl_Uns_Nat = 272
- Ieee_Numeric_Std_Shr_Uns_Nat = 273
- Ieee_Numeric_Std_Shl_Sgn_Nat = 274
- Ieee_Numeric_Std_Shr_Sgn_Nat = 275
- Ieee_Numeric_Std_Rol_Uns_Nat = 276
- Ieee_Numeric_Std_Ror_Uns_Nat = 277
- Ieee_Numeric_Std_Rol_Sgn_Nat = 278
- Ieee_Numeric_Std_Ror_Sgn_Nat = 279
- Ieee_Numeric_Std_Not_Uns = 280
- Ieee_Numeric_Std_Not_Sgn = 281
- Ieee_Numeric_Std_And_Uns_Uns = 282
- Ieee_Numeric_Std_And_Sgn_Sgn = 283
- Ieee_Numeric_Std_Or_Uns_Uns = 284
- Ieee_Numeric_Std_Or_Sgn_Sgn = 285
- Ieee_Numeric_Std_Nand_Uns_Uns = 286
- Ieee_Numeric_Std_Nand_Sgn_Sgn = 287
- Ieee_Numeric_Std_Nor_Uns_Uns = 288
- Ieee_Numeric_Std_Nor_Sgn_Sgn = 289
- Ieee_Numeric_Std_Xor_Uns_Uns = 290
- Ieee_Numeric_Std_Xor_Sgn_Sgn = 291
- Ieee_Numeric_Std_Xnor_Uns_Uns = 292
- Ieee_Numeric_Std_Xnor_Sgn_Sgn = 293
- Ieee_Numeric_Std_Neg_Uns = 294
- Ieee_Numeric_Std_Neg_Sgn = 295
- Ieee_Numeric_Std_Match_Log = 296
- Ieee_Numeric_Std_Match_Uns = 297
- Ieee_Numeric_Std_Match_Sgn = 298
- Ieee_Numeric_Std_Match_Slv = 299
- Ieee_Numeric_Std_Match_Suv = 300
- Ieee_Math_Real_Ceil = 301
- Ieee_Math_Real_Log2 = 302
- Ieee_Math_Real_Sin = 303
- Ieee_Math_Real_Cos = 304
- Ieee_Std_Logic_Unsigned_Add_Slv_Slv = 305
- Ieee_Std_Logic_Unsigned_Add_Slv_Int = 306
- Ieee_Std_Logic_Unsigned_Add_Int_Slv = 307
- Ieee_Std_Logic_Unsigned_Add_Slv_Sl = 308
- Ieee_Std_Logic_Unsigned_Add_Sl_Slv = 309
- Ieee_Std_Logic_Unsigned_Sub_Slv_Slv = 310
- Ieee_Std_Logic_Unsigned_Sub_Slv_Int = 311
- Ieee_Std_Logic_Unsigned_Sub_Int_Slv = 312
- Ieee_Std_Logic_Unsigned_Sub_Slv_Sl = 313
- Ieee_Std_Logic_Unsigned_Sub_Sl_Slv = 314
- Ieee_Std_Logic_Unsigned_Lt_Slv_Slv = 315
- Ieee_Std_Logic_Unsigned_Lt_Slv_Int = 316
- Ieee_Std_Logic_Unsigned_Lt_Int_Slv = 317
- Ieee_Std_Logic_Unsigned_Le_Slv_Slv = 318
- Ieee_Std_Logic_Unsigned_Le_Slv_Int = 319
- Ieee_Std_Logic_Unsigned_Le_Int_Slv = 320
- Ieee_Std_Logic_Unsigned_Gt_Slv_Slv = 321
- Ieee_Std_Logic_Unsigned_Gt_Slv_Int = 322
- Ieee_Std_Logic_Unsigned_Gt_Int_Slv = 323
- Ieee_Std_Logic_Unsigned_Ge_Slv_Slv = 324
- Ieee_Std_Logic_Unsigned_Ge_Slv_Int = 325
- Ieee_Std_Logic_Unsigned_Ge_Int_Slv = 326
- Ieee_Std_Logic_Unsigned_Eq_Slv_Slv = 327
- Ieee_Std_Logic_Unsigned_Eq_Slv_Int = 328
- Ieee_Std_Logic_Unsigned_Eq_Int_Slv = 329
- Ieee_Std_Logic_Unsigned_Ne_Slv_Slv = 330
- Ieee_Std_Logic_Unsigned_Ne_Slv_Int = 331
- Ieee_Std_Logic_Unsigned_Ne_Int_Slv = 332
- Ieee_Std_Logic_Unsigned_Conv_Integer = 333
- Ieee_Std_Logic_Signed_Add_Slv_Slv = 334
- Ieee_Std_Logic_Signed_Add_Slv_Int = 335
- Ieee_Std_Logic_Signed_Add_Int_Slv = 336
- Ieee_Std_Logic_Signed_Add_Slv_Sl = 337
- Ieee_Std_Logic_Signed_Add_Sl_Slv = 338
- Ieee_Std_Logic_Signed_Sub_Slv_Slv = 339
- Ieee_Std_Logic_Signed_Sub_Slv_Int = 340
- Ieee_Std_Logic_Signed_Sub_Int_Slv = 341
- Ieee_Std_Logic_Signed_Sub_Slv_Sl = 342
- Ieee_Std_Logic_Signed_Sub_Sl_Slv = 343
- Ieee_Std_Logic_Arith_Conv_Unsigned_Int = 344
- Ieee_Std_Logic_Arith_Conv_Unsigned_Uns = 345
- Ieee_Std_Logic_Arith_Conv_Unsigned_Sgn = 346
- Ieee_Std_Logic_Arith_Conv_Unsigned_Log = 347
- Ieee_Std_Logic_Arith_Conv_Integer_Int = 348
- Ieee_Std_Logic_Arith_Conv_Integer_Uns = 349
- Ieee_Std_Logic_Arith_Conv_Integer_Sgn = 350
- Ieee_Std_Logic_Arith_Conv_Integer_Log = 351
+ Frequency_Function = 172
+ PNone = 173
+ Foreign_Untruncated_Text_Read = 174
+ Foreign_Textio_Read_Real = 175
+ Foreign_Textio_Write_Real = 176
+ Ieee_1164_Scalar_And = 177
+ Ieee_1164_Scalar_Nand = 178
+ Ieee_1164_Scalar_Or = 179
+ Ieee_1164_Scalar_Nor = 180
+ Ieee_1164_Scalar_Xor = 181
+ Ieee_1164_Scalar_Xnor = 182
+ Ieee_1164_Scalar_Not = 183
+ Ieee_1164_Vector_And = 184
+ Ieee_1164_Vector_Nand = 185
+ Ieee_1164_Vector_Or = 186
+ Ieee_1164_Vector_Nor = 187
+ Ieee_1164_Vector_Xor = 188
+ Ieee_1164_Vector_Xnor = 189
+ Ieee_1164_Vector_Not = 190
+ Ieee_1164_To_Bitvector = 191
+ Ieee_1164_Vector_Is_X = 192
+ Ieee_1164_Scalar_Is_X = 193
+ Ieee_1164_Rising_Edge = 194
+ Ieee_1164_Falling_Edge = 195
+ Ieee_1164_Vector_And_Reduce = 196
+ Ieee_1164_Vector_Or_Reduce = 197
+ Ieee_1164_Condition_Operator = 198
+ Ieee_Numeric_Std_Toint_Uns_Nat = 199
+ Ieee_Numeric_Std_Toint_Sgn_Int = 200
+ Ieee_Numeric_Std_Touns_Nat_Nat_Uns = 201
+ Ieee_Numeric_Std_Touns_Nat_Uns_Uns = 202
+ Ieee_Numeric_Std_Tosgn_Int_Nat_Sgn = 203
+ Ieee_Numeric_Std_Tosgn_Int_Sgn_Sgn = 204
+ Ieee_Numeric_Std_Resize_Uns_Nat = 205
+ Ieee_Numeric_Std_Resize_Sgn_Nat = 206
+ Ieee_Numeric_Std_Resize_Uns_Uns = 207
+ Ieee_Numeric_Std_Resize_Sgn_Sgn = 208
+ Ieee_Numeric_Std_Add_Uns_Uns = 209
+ Ieee_Numeric_Std_Add_Uns_Nat = 210
+ Ieee_Numeric_Std_Add_Nat_Uns = 211
+ Ieee_Numeric_Std_Add_Uns_Log = 212
+ Ieee_Numeric_Std_Add_Log_Uns = 213
+ Ieee_Numeric_Std_Add_Sgn_Sgn = 214
+ Ieee_Numeric_Std_Add_Sgn_Int = 215
+ Ieee_Numeric_Std_Add_Int_Sgn = 216
+ Ieee_Numeric_Std_Add_Sgn_Log = 217
+ Ieee_Numeric_Std_Add_Log_Sgn = 218
+ Ieee_Numeric_Std_Sub_Uns_Uns = 219
+ Ieee_Numeric_Std_Sub_Uns_Nat = 220
+ Ieee_Numeric_Std_Sub_Nat_Uns = 221
+ Ieee_Numeric_Std_Sub_Sgn_Sgn = 222
+ Ieee_Numeric_Std_Sub_Sgn_Int = 223
+ Ieee_Numeric_Std_Sub_Int_Sgn = 224
+ Ieee_Numeric_Std_Mul_Uns_Uns = 225
+ Ieee_Numeric_Std_Mul_Uns_Nat = 226
+ Ieee_Numeric_Std_Mul_Nat_Uns = 227
+ Ieee_Numeric_Std_Mul_Sgn_Sgn = 228
+ Ieee_Numeric_Std_Mul_Sgn_Int = 229
+ Ieee_Numeric_Std_Mul_Int_Sgn = 230
+ Ieee_Numeric_Std_Div_Uns_Uns = 231
+ Ieee_Numeric_Std_Div_Uns_Nat = 232
+ Ieee_Numeric_Std_Div_Nat_Uns = 233
+ Ieee_Numeric_Std_Div_Sgn_Sgn = 234
+ Ieee_Numeric_Std_Div_Sgn_Int = 235
+ Ieee_Numeric_Std_Div_Int_Sgn = 236
+ Ieee_Numeric_Std_Gt_Uns_Uns = 237
+ Ieee_Numeric_Std_Gt_Uns_Nat = 238
+ Ieee_Numeric_Std_Gt_Nat_Uns = 239
+ Ieee_Numeric_Std_Gt_Sgn_Sgn = 240
+ Ieee_Numeric_Std_Gt_Sgn_Int = 241
+ Ieee_Numeric_Std_Gt_Int_Sgn = 242
+ Ieee_Numeric_Std_Lt_Uns_Uns = 243
+ Ieee_Numeric_Std_Lt_Uns_Nat = 244
+ Ieee_Numeric_Std_Lt_Nat_Uns = 245
+ Ieee_Numeric_Std_Lt_Sgn_Sgn = 246
+ Ieee_Numeric_Std_Lt_Sgn_Int = 247
+ Ieee_Numeric_Std_Lt_Int_Sgn = 248
+ Ieee_Numeric_Std_Le_Uns_Uns = 249
+ Ieee_Numeric_Std_Le_Uns_Nat = 250
+ Ieee_Numeric_Std_Le_Nat_Uns = 251
+ Ieee_Numeric_Std_Le_Sgn_Sgn = 252
+ Ieee_Numeric_Std_Le_Sgn_Int = 253
+ Ieee_Numeric_Std_Le_Int_Sgn = 254
+ Ieee_Numeric_Std_Ge_Uns_Uns = 255
+ Ieee_Numeric_Std_Ge_Uns_Nat = 256
+ Ieee_Numeric_Std_Ge_Nat_Uns = 257
+ Ieee_Numeric_Std_Ge_Sgn_Sgn = 258
+ Ieee_Numeric_Std_Ge_Sgn_Int = 259
+ Ieee_Numeric_Std_Ge_Int_Sgn = 260
+ Ieee_Numeric_Std_Eq_Uns_Uns = 261
+ Ieee_Numeric_Std_Eq_Uns_Nat = 262
+ Ieee_Numeric_Std_Eq_Nat_Uns = 263
+ Ieee_Numeric_Std_Eq_Sgn_Sgn = 264
+ Ieee_Numeric_Std_Eq_Sgn_Int = 265
+ Ieee_Numeric_Std_Eq_Int_Sgn = 266
+ Ieee_Numeric_Std_Ne_Uns_Uns = 267
+ Ieee_Numeric_Std_Ne_Uns_Nat = 268
+ Ieee_Numeric_Std_Ne_Nat_Uns = 269
+ Ieee_Numeric_Std_Ne_Sgn_Sgn = 270
+ Ieee_Numeric_Std_Ne_Sgn_Int = 271
+ Ieee_Numeric_Std_Ne_Int_Sgn = 272
+ Ieee_Numeric_Std_Shl_Uns_Nat = 273
+ Ieee_Numeric_Std_Shr_Uns_Nat = 274
+ Ieee_Numeric_Std_Shl_Sgn_Nat = 275
+ Ieee_Numeric_Std_Shr_Sgn_Nat = 276
+ Ieee_Numeric_Std_Rol_Uns_Nat = 277
+ Ieee_Numeric_Std_Ror_Uns_Nat = 278
+ Ieee_Numeric_Std_Rol_Sgn_Nat = 279
+ Ieee_Numeric_Std_Ror_Sgn_Nat = 280
+ Ieee_Numeric_Std_Not_Uns = 281
+ Ieee_Numeric_Std_Not_Sgn = 282
+ Ieee_Numeric_Std_And_Uns_Uns = 283
+ Ieee_Numeric_Std_And_Sgn_Sgn = 284
+ Ieee_Numeric_Std_Or_Uns_Uns = 285
+ Ieee_Numeric_Std_Or_Sgn_Sgn = 286
+ Ieee_Numeric_Std_Nand_Uns_Uns = 287
+ Ieee_Numeric_Std_Nand_Sgn_Sgn = 288
+ Ieee_Numeric_Std_Nor_Uns_Uns = 289
+ Ieee_Numeric_Std_Nor_Sgn_Sgn = 290
+ Ieee_Numeric_Std_Xor_Uns_Uns = 291
+ Ieee_Numeric_Std_Xor_Sgn_Sgn = 292
+ Ieee_Numeric_Std_Xnor_Uns_Uns = 293
+ Ieee_Numeric_Std_Xnor_Sgn_Sgn = 294
+ Ieee_Numeric_Std_Neg_Uns = 295
+ Ieee_Numeric_Std_Neg_Sgn = 296
+ Ieee_Numeric_Std_Match_Log = 297
+ Ieee_Numeric_Std_Match_Uns = 298
+ Ieee_Numeric_Std_Match_Sgn = 299
+ Ieee_Numeric_Std_Match_Slv = 300
+ Ieee_Numeric_Std_Match_Suv = 301
+ Ieee_Math_Real_Ceil = 302
+ Ieee_Math_Real_Log2 = 303
+ Ieee_Math_Real_Sin = 304
+ Ieee_Math_Real_Cos = 305
+ Ieee_Std_Logic_Unsigned_Add_Slv_Slv = 306
+ Ieee_Std_Logic_Unsigned_Add_Slv_Int = 307
+ Ieee_Std_Logic_Unsigned_Add_Int_Slv = 308
+ Ieee_Std_Logic_Unsigned_Add_Slv_Sl = 309
+ Ieee_Std_Logic_Unsigned_Add_Sl_Slv = 310
+ Ieee_Std_Logic_Unsigned_Sub_Slv_Slv = 311
+ Ieee_Std_Logic_Unsigned_Sub_Slv_Int = 312
+ Ieee_Std_Logic_Unsigned_Sub_Int_Slv = 313
+ Ieee_Std_Logic_Unsigned_Sub_Slv_Sl = 314
+ Ieee_Std_Logic_Unsigned_Sub_Sl_Slv = 315
+ Ieee_Std_Logic_Unsigned_Lt_Slv_Slv = 316
+ Ieee_Std_Logic_Unsigned_Lt_Slv_Int = 317
+ Ieee_Std_Logic_Unsigned_Lt_Int_Slv = 318
+ Ieee_Std_Logic_Unsigned_Le_Slv_Slv = 319
+ Ieee_Std_Logic_Unsigned_Le_Slv_Int = 320
+ Ieee_Std_Logic_Unsigned_Le_Int_Slv = 321
+ Ieee_Std_Logic_Unsigned_Gt_Slv_Slv = 322
+ Ieee_Std_Logic_Unsigned_Gt_Slv_Int = 323
+ Ieee_Std_Logic_Unsigned_Gt_Int_Slv = 324
+ Ieee_Std_Logic_Unsigned_Ge_Slv_Slv = 325
+ Ieee_Std_Logic_Unsigned_Ge_Slv_Int = 326
+ Ieee_Std_Logic_Unsigned_Ge_Int_Slv = 327
+ Ieee_Std_Logic_Unsigned_Eq_Slv_Slv = 328
+ Ieee_Std_Logic_Unsigned_Eq_Slv_Int = 329
+ Ieee_Std_Logic_Unsigned_Eq_Int_Slv = 330
+ Ieee_Std_Logic_Unsigned_Ne_Slv_Slv = 331
+ Ieee_Std_Logic_Unsigned_Ne_Slv_Int = 332
+ Ieee_Std_Logic_Unsigned_Ne_Int_Slv = 333
+ Ieee_Std_Logic_Unsigned_Conv_Integer = 334
+ Ieee_Std_Logic_Signed_Add_Slv_Slv = 335
+ Ieee_Std_Logic_Signed_Add_Slv_Int = 336
+ Ieee_Std_Logic_Signed_Add_Int_Slv = 337
+ Ieee_Std_Logic_Signed_Add_Slv_Sl = 338
+ Ieee_Std_Logic_Signed_Add_Sl_Slv = 339
+ Ieee_Std_Logic_Signed_Sub_Slv_Slv = 340
+ Ieee_Std_Logic_Signed_Sub_Slv_Int = 341
+ Ieee_Std_Logic_Signed_Sub_Int_Slv = 342
+ Ieee_Std_Logic_Signed_Sub_Slv_Sl = 343
+ Ieee_Std_Logic_Signed_Sub_Sl_Slv = 344
+ Ieee_Std_Logic_Arith_Conv_Unsigned_Int = 345
+ Ieee_Std_Logic_Arith_Conv_Unsigned_Uns = 346
+ Ieee_Std_Logic_Arith_Conv_Unsigned_Sgn = 347
+ Ieee_Std_Logic_Arith_Conv_Unsigned_Log = 348
+ Ieee_Std_Logic_Arith_Conv_Integer_Int = 349
+ Ieee_Std_Logic_Arith_Conv_Integer_Uns = 350
+ Ieee_Std_Logic_Arith_Conv_Integer_Sgn = 351
+ Ieee_Std_Logic_Arith_Conv_Integer_Log = 352
Get_Kind = libghdl.vhdl__nodes__get_kind
Get_Location = libghdl.vhdl__nodes__get_location
diff --git a/src/vhdl/translate/trans-chap7.adb b/src/vhdl/translate/trans-chap7.adb
index 58d63ce90..cf94655e3 100644
--- a/src/vhdl/translate/trans-chap7.adb
+++ b/src/vhdl/translate/trans-chap7.adb
@@ -6249,7 +6249,8 @@ package body Trans.Chap7 is
null;
when Iir_Predefined_Now_Function
- | Iir_Predefined_Real_Now_Function =>
+ | Iir_Predefined_Real_Now_Function
+ | Iir_Predefined_Frequency_Function =>
null;
-- when others =>
diff --git a/src/vhdl/vhdl-evaluation.adb b/src/vhdl/vhdl-evaluation.adb
index 50e279a8f..5a4f2dde0 100644
--- a/src/vhdl/vhdl-evaluation.adb
+++ b/src/vhdl/vhdl-evaluation.adb
@@ -1726,6 +1726,7 @@ package body Vhdl.Evaluation is
| Iir_Predefined_TF_Array_Not
| Iir_Predefined_Now_Function
| Iir_Predefined_Real_Now_Function
+ | Iir_Predefined_Frequency_Function
| Iir_Predefined_Deallocate
| Iir_Predefined_Write
| Iir_Predefined_Read
diff --git a/src/vhdl/vhdl-nodes.ads b/src/vhdl/vhdl-nodes.ads
index 9a6e671e1..c59c1c046 100644
--- a/src/vhdl/vhdl-nodes.ads
+++ b/src/vhdl/vhdl-nodes.ads
@@ -5362,6 +5362,7 @@ package Vhdl.Nodes is
-- Misc impure functions.
Iir_Predefined_Now_Function,
Iir_Predefined_Real_Now_Function,
+ Iir_Predefined_Frequency_Function,
-- A not predefined and not known function. User function.
Iir_Predefined_None,
diff --git a/src/vhdl/vhdl-sem_stmts.adb b/src/vhdl/vhdl-sem_stmts.adb
index 98e01ccb3..43b41d16a 100644
--- a/src/vhdl/vhdl-sem_stmts.adb
+++ b/src/vhdl/vhdl-sem_stmts.adb
@@ -412,7 +412,7 @@ package body Vhdl.Sem_Stmts is
when Iir_Kind_Free_Quantity_Declaration
| Iir_Kinds_Branch_Quantity_Declaration
| Iir_Kind_Dot_Attribute =>
- if (Get_Kind (Get_Parent (Stmt))
+ if (Get_Kind (Get_Current_Concurrent_Statement)
/= Iir_Kind_Simultaneous_Procedural_Statement)
then
Error_Msg_Sem (+Stmt, "%n cannot be assigned", +Target_Prefix);
diff --git a/src/vhdl/vhdl-sem_types.adb b/src/vhdl/vhdl-sem_types.adb
index c02e682a8..3a0705d50 100644
--- a/src/vhdl/vhdl-sem_types.adb
+++ b/src/vhdl/vhdl-sem_types.adb
@@ -2400,11 +2400,13 @@ package body Vhdl.Sem_Types is
-- Analyze NAME as a nature name. Return NAME or an error node.
function Sem_Nature_Mark (Name : Iir) return Iir
is
- Nature_Mark : Iir;
+ Nature_Mark : constant Iir := Sem_Denoting_Name (Name);
Res : Iir;
begin
- Nature_Mark := Sem_Denoting_Name (Name);
Res := Get_Named_Entity (Nature_Mark);
+ if Is_Error (Res) then
+ return Name;
+ end if;
Res := Get_Nature (Res);
case Get_Kind (Res) is
when Iir_Kind_Scalar_Nature_Definition
diff --git a/src/vhdl/vhdl-std_package.adb b/src/vhdl/vhdl-std_package.adb
index d080327ff..7f6273dfe 100644
--- a/src/vhdl/vhdl-std_package.adb
+++ b/src/vhdl/vhdl-std_package.adb
@@ -1051,9 +1051,9 @@ package body Vhdl.Std_Package is
Add_Decl (Function_Now);
end;
- -- AMS-LRM17 16.3
- -- impure function NOW return REAL;
if AMS_Vhdl then
+ -- AMS-LRM17 16.3
+ -- impure function NOW return REAL;
declare
Function_Now : Iir_Function_Declaration;
begin
@@ -1066,6 +1066,21 @@ package body Vhdl.Std_Package is
Vhdl.Sem_Utils.Compute_Subprogram_Hash (Function_Now);
Add_Decl (Function_Now);
end;
+
+ -- AMS-LRM17 16.3
+ -- impure function FREQUENCY return REAL;
+ declare
+ Function_Freq : Iir_Function_Declaration;
+ begin
+ Function_Freq := Create_Std_Decl (Iir_Kind_Function_Declaration);
+ Set_Std_Identifier (Function_Freq, Std_Names.Name_Frequency);
+ Set_Return_Type (Function_Freq, Real_Subtype_Definition);
+ Set_Pure_Flag (Function_Freq, False);
+ Set_Implicit_Definition
+ (Function_Freq, Iir_Predefined_Frequency_Function);
+ Vhdl.Sem_Utils.Compute_Subprogram_Hash (Function_Freq);
+ Add_Decl (Function_Freq);
+ end;
end if;
-- natural subtype