Skip to content

Commit c510ad5

Browse files
committed
Add keyword for new set target syntax.
1 parent 4a378f3 commit c510ad5

5 files changed

Lines changed: 125 additions & 96 deletions

File tree

examples/alsru.uir

Lines changed: 80 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -1,87 +1,87 @@
11
; Boneless ALSRU
2-
%0:2 = input "i_a"
3-
%2:2 = input "i_b"
4-
%4:1 = input "i_c"
5-
%5:5 = input "c_op"
6-
%10:1 = input "i_h"
7-
%11:1 = input "c_dir"
8-
%12:1 = input "clk"
9-
%13:1 = input "rst"
10-
%14:2 = match en=1 %11 {
11-
[0]
12-
[1]
2+
%0:16 = input "i_a"
3+
%16:16 = input "i_b"
4+
%32:1 = input "i_c"
5+
%33:5 = input "c_op"
6+
%38:1 = input "i_h"
7+
%39:1 = input "c_dir"
8+
%40:1 = input "clk"
9+
%41:1 = input "rst"
10+
%42:2 = match en=1 %39 {
11+
(0)
12+
(1)
1313
}
14-
%16:4 = match en=1 {%5+1 %5+0} {
15-
[01]
16-
[10]
17-
[11]
18-
[00]
14+
%44:4 = match en=1 [ %33+1 %33+0 ] {
15+
(01)
16+
(10)
17+
(11)
18+
(00)
1919
}
20-
%20:2 = and %0:2 %2:2
21-
%22:2 = or %0:2 %2:2
22-
%24:2 = xor %0:2 %2:2
23-
%26:4 = match en=1 {%5+3 %5+2} {
24-
[00]
25-
[01]
26-
[10]
27-
[11]
20+
%48:16 = and %0:16 %16:16
21+
%64:16 = or %0:16 %16:16
22+
%80:16 = xor %0:16 %16:16
23+
%96:4 = match en=1 [ %33+3 %33+2 ] {
24+
(00)
25+
(01)
26+
(10)
27+
(11)
2828
}
29-
%30:2 = not %2:2
30-
%32:4 = adc {0 %58+1 %58+0} {0 %66+1 %66+0} 0
31-
%36:5 = adc {0 %32+2 %32+1 %32+0} {0 0 0 %4+0} 0
32-
%41:2 = match en=1 %5+4 {
33-
[0]
34-
[1]
29+
%100:16 = not %16:16
30+
%116:18 = adc [ 0 %240+15 %240+14 %240+13 %240+12 %240+11 %240+10 %240+9 %240+8 %240+7 %240+6 %240+5 %240+4 %240+3 %240+2 %240+1 %240+0 ] [ 0 %304+15 %304+14 %304+13 %304+12 %304+11 %304+10 %304+9 %304+8 %304+7 %304+6 %304+5 %304+4 %304+3 %304+2 %304+1 %304+0 ] 0
31+
%134:19 = adc [ 0 %116+16 %116+15 %116+14 %116+13 %116+12 %116+11 %116+10 %116+9 %116+8 %116+7 %116+6 %116+5 %116+4 %116+3 %116+2 %116+1 %116+0 ] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %32+0 ] 0
32+
%153:2 = match en=1 %33+4 {
33+
(0)
34+
(1)
3535
}
36-
%43:2 = match en=1 {%70+1 %66+1 %58+1} {
37-
[100]
38-
[011]
36+
%155:2 = match en=1 [ %336+15 %304+15 %240+15 ] {
37+
(100)
38+
(011)
3939
}
40-
%45:1 = eq %70:2 00
41-
%46:2 = assign en=%14+0 00 {%77+0 %10+0} at=#0
42-
%48:2 = assign en=%14+1 %46:2 {%10+0 %77+1} at=#0
43-
%50:1 = assign en=%14+0 0 %77+1 at=#0
44-
%51:1 = assign en=%14+1 %50 %77+0 at=#0
45-
%52:2 = assign en=%16+0 00 %20:2 at=#0
46-
%54:2 = assign en=%16+1 %52:2 %22:2 at=#0
47-
%56:2 = assign en=%16+2 %54:2 %24:2 at=#0
48-
%58:2 = assign en=%16+3 %56:2 %0:2 at=#0
49-
%60:2 = assign en=%26+0 00 00 at=#0
50-
%62:2 = assign en=%26+1 %60:2 %48:2 at=#0
51-
%64:2 = assign en=%26+2 %62:2 %2:2 at=#0
52-
%66:2 = assign en=%26+3 %64:2 %30:2 at=#0
53-
%68:2 = assign en=%41+0 00 {%36+1 %36+0} at=#0
54-
%70:2 = assign en=%41+1 %68:2 %66:2 at=#0
55-
%72:1 = assign en=%43+0 0 1 at=#0
56-
%73:1 = assign en=%43+1 %72 1 at=#0
57-
%74:1 = match en=1 %13 {
58-
[1]
40+
%157:1 = eq %336:16 0000000000000000
41+
%158:16 = assign en=%42+0 0000000000000000 [ %371+14 %371+13 %371+12 %371+11 %371+10 %371+9 %371+8 %371+7 %371+6 %371+5 %371+4 %371+3 %371+2 %371+1 %371+0 %38+0 ] at=#0
42+
%174:16 = assign en=%42+1 %158:16 [ %38+0 %371+15 %371+14 %371+13 %371+12 %371+11 %371+10 %371+9 %371+8 %371+7 %371+6 %371+5 %371+4 %371+3 %371+2 %371+1 ] at=#0
43+
%190:1 = assign en=%42+0 0 %371+15 at=#0
44+
%191:1 = assign en=%42+1 %190 %371+0 at=#0
45+
%192:16 = assign en=%44+0 0000000000000000 %48:16 at=#0
46+
%208:16 = assign en=%44+1 %192:16 %64:16 at=#0
47+
%224:16 = assign en=%44+2 %208:16 %80:16 at=#0
48+
%240:16 = assign en=%44+3 %224:16 %0:16 at=#0
49+
%256:16 = assign en=%96+0 0000000000000000 0000000000000000 at=#0
50+
%272:16 = assign en=%96+1 %256:16 %174:16 at=#0
51+
%288:16 = assign en=%96+2 %272:16 %16:16 at=#0
52+
%304:16 = assign en=%96+3 %288:16 %100:16 at=#0
53+
%320:16 = assign en=%153+0 0000000000000000 [ %134+15 %134+14 %134+13 %134+12 %134+11 %134+10 %134+9 %134+8 %134+7 %134+6 %134+5 %134+4 %134+3 %134+2 %134+1 %134+0 ] at=#0
54+
%336:16 = assign en=%153+1 %320:16 %304:16 at=#0
55+
%352:1 = assign en=%155+0 0 1 at=#0
56+
%353:1 = assign en=%155+1 %352 1 at=#0
57+
%354:1 = match en=1 %41 {
58+
(1)
5959
}
60-
%75:2 = assign en=%74 %70:2 00 at=#0
61-
%77:2 = dff %75:2 clk=%12 init=00
62-
%79:0 = output "o_o" %70:2
63-
%80:0 = output "o_z" %45
64-
%81:0 = output "o_s" %70+1
65-
%82:0 = output "o_c" %36+2
66-
%83:0 = output "o_v" %73
67-
%84:0 = output "o_h" %51
68-
%85:0 = name "alsru i_a" %0:2
69-
%86:0 = name "alsru i_b" %2:2
70-
%87:0 = name "alsru i_c" %4
71-
%88:0 = name "alsru o_o" %70:2
72-
%89:0 = name "alsru o_z" %45
73-
%90:0 = name "alsru o_s" %70+1
74-
%91:0 = name "alsru o_c" %36+2
75-
%92:0 = name "alsru o_v" %73
76-
%93:0 = name "alsru c_op" %5:5
77-
%94:0 = name "alsru i_h" %10
78-
%95:0 = name "alsru o_h" %51
79-
%96:0 = name "alsru c_dir" %11
80-
%97:0 = name "alsru clk" %12
81-
%98:0 = name "alsru rst" %13
82-
%99:0 = name "alsru dec_op" %5:5
83-
%100:0 = name "alsru s_s" %48:2
84-
%101:0 = name "alsru r_o" %77:2
85-
%102:0 = name "alsru s_x" %58:2
86-
%103:0 = name "alsru s_y" %66:2
87-
%104:0 = name "alsru s_p" {%36+1 %36+0}
60+
%355:16 = assign en=%354 %336:16 0000000000000000 at=#0
61+
%371:16 = dff %355:16 clk=%40 init=0000000000000000
62+
%387:0 = output "o_o" %336:16
63+
%388:0 = output "o_z" %157
64+
%389:0 = output "o_s" %336+15
65+
%390:0 = output "o_c" %134+16
66+
%391:0 = output "o_v" %353
67+
%392:0 = output "o_h" %191
68+
%393:0 = name "alsru i_a" %0:16
69+
%394:0 = name "alsru i_b" %16:16
70+
%395:0 = name "alsru i_c" %32
71+
%396:0 = name "alsru o_o" %336:16
72+
%397:0 = name "alsru o_z" %157
73+
%398:0 = name "alsru o_s" %336+15
74+
%399:0 = name "alsru o_c" %134+16
75+
%400:0 = name "alsru o_v" %353
76+
%401:0 = name "alsru c_op" %33:5
77+
%402:0 = name "alsru i_h" %38
78+
%403:0 = name "alsru o_h" %191
79+
%404:0 = name "alsru c_dir" %39
80+
%405:0 = name "alsru clk" %40
81+
%406:0 = name "alsru rst" %41
82+
%407:0 = name "alsru dec_op" %33:5
83+
%408:0 = name "alsru s_s" %174:16
84+
%409:0 = name "alsru r_o" %371:16
85+
%410:0 = name "alsru s_x" %240:16
86+
%411:0 = name "alsru s_y" %304:16
87+
%412:0 = name "alsru s_p" [ %134+15 %134+14 %134+13 %134+12 %134+11 %134+10 %134+9 %134+8 %134+7 %134+6 %134+5 %134+4 %134+3 %134+2 %134+1 %134+0 ]

examples/diff.uir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
%0:1 = input "a"
22
%1:1 = input "b"
33
%2:2 = input "op"
4-
%4:4 = not { %17 %20 %18 %19 }
4+
%4:4 = not [ %17 %20 %18 %19 ]
55
%8:1 = and %0 %1
66
%9:1 = or %0 %1
77
%10:1 = xor %0 %1

examples/iobuf.uir

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
set target "siliconblue"
2+
&"i_mem_data":16
3+
%103:3 = target "SB_IO" {
4+
param "PIN_TYPE" = 000001
5+
param "PULLUP" = 0
6+
param "NEG_TRIGGER" = 0
7+
param "IS_GB" = 0
8+
param "IO_STANDARD" = "SB_LVCMOS"
9+
input "D_OUT_0" = X
10+
input "D_OUT_1" = X
11+
input "OUTPUT_ENABLE" = 0
12+
input "CLOCK_ENABLE" = 1
13+
input "INPUT_CLK" = X
14+
input "OUTPUT_CLK" = X
15+
input "LATCH_INPUT_VALUE" = X
16+
io "PACKAGE_PIN" = &"i_mem_data"+0
17+
io "PACKAGE_PIN_B" = &_
18+
}
19+
%106:3 = target "SB_IO" {
20+
param "PIN_TYPE" = 000001
21+
param "PULLUP" = 0
22+
param "NEG_TRIGGER" = 0
23+
param "IS_GB" = 0
24+
param "IO_STANDARD" = "SB_LVCMOS"
25+
input "D_OUT_0" = X
26+
input "D_OUT_1" = X
27+
input "OUTPUT_ENABLE" = 0
28+
input "CLOCK_ENABLE" = 1
29+
input "INPUT_CLK" = X
30+
input "OUTPUT_CLK" = X
31+
input "LATCH_INPUT_VALUE" = X
32+
io "PACKAGE_PIN" = &"i_mem_data"+1
33+
io "PACKAGE_PIN_B" = &_
34+
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"author": "Catherine <whitequark@whitequark.org>",
77
"license": "BSD-0-Clause",
88
"homepage": "https://github.com/prjunnamed/",
9-
"version": "0.2.4",
9+
"version": "0.3.0",
1010
"repository": {
1111
"type": "git",
1212
"url": "https://github.com/prjunnamed/vscode-syntax.git"

syntaxes/prjunnamed.tmLanguage.json

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
{"include": "#decimal"},
99
{"include": "#ternary"},
1010
{"include": "#string"},
11+
{"include": "#keyword"},
1112
{"include": "#io-port"},
1213
{"include": "#cell-ref"},
1314
{"include": "#cell-ref-added"},
14-
{"include": "#cell-name"},
1515
{"include": "#memory-cell"},
1616
{"include": "#diff-added"},
1717
{"include": "#diff-removed"}
@@ -39,6 +39,10 @@
3939
"name": "string.quoted.double.prjunnamed",
4040
"patterns": [{"include": "#string-escape"}]
4141
},
42+
"keyword": {
43+
"match": "set|buf|not|and|or|xor|mux|adc|eq|ult|slt|shl|ushr|sshr|xshr|mul|udiv|umod|sdiv_trunc|sdiv_floor|smod_trunc|smod_floor|match|assign|dff|iobuf|target|param|input|output|io|name|debug",
44+
"name": "keyword.other.prjunnamed"
45+
},
4246
"io-port": {
4347
"begin": "&\"",
4448
"end": "(\")(:\\d+)?(\\+\\d+)?",
@@ -53,10 +57,6 @@
5357
"match": "%_\\d+(:\\d+)?(\\+\\d+)?",
5458
"name": "markup.inserted.prjunnamed"
5559
},
56-
"cell-name": {
57-
"match": "buf|not|and|or|xor|mux|adc|eq|ult|slt|shl|ushr|sshr|xshr|mul|udiv|umod|sdiv_trunc|sdiv_floor|smod_trunc|smod_floor|match|assign|dff|iobuf|target|param|input|output|io|name|debug",
58-
"name": "keyword.other.cell.prjunnamed"
59-
},
6060
"memory-cell": {
6161
"begin": "memory",
6262
"end": "^\\s*}",
@@ -67,17 +67,12 @@
6767
{"include": "#ternary"},
6868
{"include": "#cell-ref"},
6969
{"include": "#cell-ref-added"},
70-
{"include": "#memory-clause"},
71-
{"include": "#memory-port-relation"}
70+
{"include": "#memory-keyword"}
7271
]
7372
},
74-
"memory-clause": {
75-
"match": "init|write|read",
76-
"name": "keyword.other.memory-clause.prjunnamed"
77-
},
78-
"memory-port-relation": {
79-
"match": "undef|rdfirst|trans",
80-
"name": "keyword.other.memory-port-relation.prjunnamed"
73+
"memory-keyword": {
74+
"match": "init|write|read|undef|rdfirst|trans",
75+
"name": "keyword.other.prjunnamed"
8176
},
8277
"diff-added": {
8378
"begin": "^\\+%_?\\d+(:\\d+)?(\\+\\d+)?",

0 commit comments

Comments
 (0)