はてなMarkdown記法でverilogがSyntax Hilightingされるようですね。
タイトルのとおりですが、
```
で囲いつつ、最初の```の後にverilogをつければOKのようです。
```verilog
(verilogコードをここに書きます)
```
systemverilogには対応していないので、SVコードもひとまずverilogと指定すればよいですね。 てきとうなSVコードを張ってみます。 ⇒ classなどはHilightingされませんが十分見やすいと思いますた。
module bench #( parameter CONSTRAINT_ENABLE = 0, parameter CONSTRAINT_DISABLE = 1 ); // Randomization Example class packet_base; rand bit [7:0] header; rand bit [2:0] length; rand bit [7:0] payload_dynamic_array[]; // 8bit-wide dynamic array rand bit [7:0] payload; // dist : Control Generation Rate. Specify in Decimal (NOT hex) // 16:1 = 10:1 // Generate header in 0, 1, 15 in the rate of 1:2:5. constraint const_header {header dist {[0:0]:=1 , [1:1]:=2 , [15:15]:=3 }; }; // if, -> : Use condition based on the other value. // Place ";" at each if/else if/else constraint const_length { if (header==16) length==2; else if (header==2) length==3; else length==4; }; // Override new function function new; if (this.randomize()==1) begin // Generate dynamic array according to the length this.payload_dynamic_array = new[this.length]; foreach (this.payload_dynamic_array[i]) this.payload_dynamic_array[i] = this.payload; end else $display("Randomization Failed.\n"); endfunction function void set_all_constraint_mode(int mode); string temp_str; // mode=0 : DISABLE // mode=1 : ENABLE const_header.constraint_mode(mode); const_length.constraint_mode(mode); case (mode) // %m shows hierarchial class name 0 : temp_str="disable"; default : temp_str="enable"; endcase $display("[%m] set_all_constraint %s", temp_str); endfunction function void display; $display("header:0x%02x, lendth:0x%02x, payload_dynamic_array.size:%1d" , i_pkt.header, i_pkt.length , i_pkt.payload_dynamic_array.size ); foreach (i_pkt.payload_dynamic_array[i]) $display(" payload[%1d]=%02x", i, i_pkt.payload_dynamic_array[i]); endfunction endclass // Generate packet statiscally int num_of_list_of_pkt = 5; packet_base i_pkt; packet_base i_list_of_pkt[] = new[num_of_list_of_pkt]; initial begin // Generate Packet w/ constraints $display("--- Generate w/ Constraints ---"); foreach (i_list_of_pkt[i]) begin $display("----- i_pkt[%1d]", i); i_pkt = new; i_pkt.display(); i_list_of_pkt[i] = i_pkt; end // Generate Packet w/o constraints $display("\n--- Generate w/o Constraints ---"); i_pkt.set_all_constraint_mode(CONSTRAINT_DISABLE); foreach (i_list_of_pkt[i]) begin void'(i_pkt.randomize()); // Implicit void casting $display("--- i_pkt[%1d]", i); i_pkt.display(); i_list_of_pkt[i] = i_pkt; end end /* if (i_pkt.randomize() == 1) begin $display("Randomization Succeeded.\n"); else $display("Randomization Failed.\n"); */ endmodule