Skip to content

Commit 9cb74ab

Browse files
committed
Merge pull request #1003 from raphnet/verilog_tweaks
Verilog improvements
2 parents a0458a9 + f3ff6d1 commit 9cb74ab

File tree

5 files changed

+92
-2
lines changed

5 files changed

+92
-2
lines changed

src/languages/verilog.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Description: Verilog is a hardware description language used in electronic desig
77
function(hljs) {
88
return {
99
aliases: ['v'],
10-
case_insensitive: true,
10+
case_insensitive: false,
1111
keywords: {
1212
keyword:
1313
'always and assign begin buf bufif0 bufif1 case casex casez cmos deassign ' +
@@ -29,7 +29,7 @@ function(hljs) {
2929
hljs.QUOTE_STRING_MODE,
3030
{
3131
className: 'number',
32-
begin: '\\b(\\d+\'(b|h|o|d|B|H|O|D))?[0-9xzXZ]+',
32+
begin: '(\\b((\\d\'(b|h|o|d|B|H|O|D))[0-9xzXZa-fA-F\_]+))|(\\B((\'(b|h|o|d|B|H|O|D))[0-9xzXZa-fA-F\_]+))|(\\b([0-9xzXZ\_])+)',
3333
contains: [hljs.BACKSLASH_ESCAPE],
3434
relevance: 0
3535
},

test/markup/verilog/misc.expect.txt

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
`<span class="hljs-keyword">timescale</span> <span class="hljs-number">1</span>ns / <span class="hljs-number">1</span>ps
2+
3+
<span class="hljs-comment">/**
4+
* counter: a generic clearable up-counter
5+
*/</span>
6+
7+
<span class="hljs-keyword">module</span> counter
8+
#(<span class="hljs-keyword">parameter</span> WIDTH=<span class="hljs-number">64</span>)
9+
(
10+
<span class="hljs-keyword">input</span> clk,
11+
<span class="hljs-keyword">input</span> ce,
12+
<span class="hljs-keyword">input</span> arst_n,
13+
<span class="hljs-keyword">output</span> <span class="hljs-keyword">reg</span> [WIDTH-<span class="hljs-number">1</span>:<span class="hljs-number">0</span>] q
14+
);
15+
16+
<span class="hljs-comment">// some child</span>
17+
clock_buffer <span class="hljs-variable">#(WIDTH)</span> buffer_inst (
18+
.clk(clk),
19+
.ce(ce),
20+
.reset(arst_n)
21+
);
22+
23+
<span class="hljs-comment">// Simple gated up-counter with async clear</span>
24+
25+
<span class="hljs-keyword">always</span> @(<span class="hljs-keyword">posedge</span> clk <span class="hljs-keyword">or</span> <span class="hljs-keyword">negedge</span> arst_n) <span class="hljs-keyword">begin</span>
26+
<span class="hljs-keyword">if</span> (arst_n == <span class="hljs-number">1'b0</span>) <span class="hljs-keyword">begin</span>
27+
q &lt;= {WIDTH {<span class="hljs-number">1'b0</span>}};
28+
<span class="hljs-keyword">end</span>
29+
<span class="hljs-keyword">else</span> <span class="hljs-keyword">begin</span>
30+
q &lt;= q;
31+
<span class="hljs-keyword">if</span> (ce == <span class="hljs-number">1'b1</span>) <span class="hljs-keyword">begin</span>
32+
q &lt;= q + <span class="hljs-number">1</span>;
33+
<span class="hljs-keyword">end</span>
34+
<span class="hljs-keyword">end</span>
35+
<span class="hljs-keyword">end</span>
36+
37+
<span class="hljs-keyword">endmodule</span>

test/markup/verilog/misc.txt

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
`timescale 1ns / 1ps
2+
3+
/**
4+
* counter: a generic clearable up-counter
5+
*/
6+
7+
module counter
8+
#(parameter WIDTH=64)
9+
(
10+
input clk,
11+
input ce,
12+
input arst_n,
13+
output reg [WIDTH-1:0] q
14+
);
15+
16+
// some child
17+
clock_buffer #(WIDTH) buffer_inst (
18+
.clk(clk),
19+
.ce(ce),
20+
.reset(arst_n)
21+
);
22+
23+
// Simple gated up-counter with async clear
24+
25+
always @(posedge clk or negedge arst_n) begin
26+
if (arst_n == 1'b0) begin
27+
q <= {WIDTH {1'b0}};
28+
end
29+
else begin
30+
q <= q;
31+
if (ce == 1'b1) begin
32+
q <= q + 1;
33+
end
34+
end
35+
end
36+
37+
endmodule
+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
a = <span class="hljs-number">'hff</span>;
2+
A = <span class="hljs-number">'HFF</span>;
3+
b = <span class="hljs-number">8'h33</span>;
4+
B = <span class="hljs-number">8'H33</span>;
5+
c = <span class="hljs-number">12</span>;
6+
d = <span class="hljs-number">'o755</span>;
7+
e = <span class="hljs-number">8'b1001_0001</span>;
8+
f = <span class="hljs-number">8'b1111zzzx</span>;

test/markup/verilog/numbers.txt

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
a = 'hff;
2+
A = 'HFF;
3+
b = 8'h33;
4+
B = 8'H33;
5+
c = 12;
6+
d = 'o755;
7+
e = 8'b1001_0001;
8+
f = 8'b1111zzzx;

0 commit comments

Comments
 (0)