Skip to content

Instantly share code, notes, and snippets.

@jz5
jz5 / gist:7510864
Created November 17, 2013 08:34
vb specification
module あ
 sub main
  dim A=123+456*78/90-&HEAD
  coNSOLe.wRiTELine(A)
 end sub
end module
@jz5
jz5 / gist:7510883
Created November 17, 2013 08:36
$assertoff, $asserton sample
initial begin
$assertoff;
wait(ev.triggered);
$asserton;
end
@jz5
jz5 / gist:7510890
Created November 17, 2013 08:36
$asserton
$asserton(0, top); // (levels [, list_of_modules_or_assertions])
@jz5
jz5 / gist:7510913
Created November 17, 2013 08:40
$clog2 sample
module m #(max_size = 1023) (
input clk,
input rst_n,
input [$clog2(max_count):0] in,
output [$clog2(max_count):0] out
);
endmodule
@jz5
jz5 / gist:7539472
Created November 19, 2013 02:49
loop generate
genvar i;
for (i = 0; i < SIZE; i = i + 1) begin
// module m を SIZE 個インスタンス
m i_m(.clk(clk), .rst_n(rst_n), .x(x[i]), .y(y));
end
@jz5
jz5 / gist:7539502
Last active December 28, 2015 17:59
generate region
generate
genvar i;
for (i = 0; i < SIZE; i = i + 1) begin
m i_m(.clk(clk), .rst_n(rst_n), .x(x[i]), .y(y));
end
endgenerate
generate
for (i = 0; i < SIZE; i = i + 1) begin // 上記宣言の genvar i が有効
m i_m(.clk(clk), .rst_n(rst_n), .x(x[i]), .y(y));
@jz5
jz5 / gist:7539521
Created November 19, 2013 02:54
named loop generate
// foo[0].i_m ~ foo[SIZE-1].i_m がインスタンスされる
for (i = 0; i < SIZE; i = i + 1) begin : foo
m i_m(.clk(clk), .rst_n(rst_n), .x(x[i]), .y(y));
end
@jz5
jz5 / gist:7539531
Created November 19, 2013 02:55
SystemVerilog loop generate
for (genvar i = 0; i < SIZE; i++) begin
m i_m(.clk(clk), .rst_n(rst_n), .x(x[i]), .y(y));
end
@jz5
jz5 / gist:7575467
Created November 21, 2013 03:06
integer constants
5 // 32-bit
'd5 // 32-bit
'h5 // 32-bit
'b101 // 32-bit
@jz5
jz5 / gist:7575521
Created November 21, 2013 03:12
unbased_unsized_literal
logic [63:0] a;
a = '0; //
a = '1; // a = 64'hFFFF_FFFF_FFFF_FFFF
a = 'x; // 'X も OK
a = 'z; // 'Z も OK