FC2カウンター FPGAの部屋 Verilog HDLでの初期化の推論
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Verilog HDLでの初期化の推論

Xilinx社で行われたSpartan-6ファミリ デザイン セミナで、XSTのみHDLでの初期化の推論ができると聞いてきた。Synplfyではどうかと思ってやってみた。使用したのは訳あってISE10.1.03とSynplify Pro 9.6.2。使用したFPGAはSpartan-3E1200(xc3s1200e-fg320)。
下のソースを使用した。

`default_nettype none
`timescale 1ns / 1ps

module init_test(
    input clk,
    input enable,
    output [15:0] cnt_out
    );
    
    reg [15:0] cnt = 16'd1; // 初期化(ここの値がFFの初期値になっていればOK)
    
    always @(posedge clk) begin
        if (enable)
            cnt <= cnt + 1;
    end
    assign cnt_out = cnt;
        
endmodule


まずはSynplify Proで論理合成、インプリメントした。
Verilog_RST_1_100706.png

FPGA Editorでcnt[0], cnt[1]を見てみたが、ちゃんとcnt[0]のFFがINIT1, cnt[1]のFFがINIT0になっている。
Verilog_RST_2_100706.png

Synplify ProでもVerilogでの初期化の推論が出来ているようだ。
次に論理合成ツールをXSTに変えてやってみた。
同様に、FPGA Editorでcnt<0>, cnt<1>を見てみたが、ちゃんとcnt<0>のFFがINIT1, cnt<1>のFFがINIT0になっている。
Verilog_RST_3_100706.png

XSTでもSynplify ProでもVerilog HDLでの初期化の推論が出来ていた。
  1. 2010年07月06日 17:31 |
  2. FPGAチップ内の配線方法
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/1521-b2ada8ad
この記事にトラックバックする(FC2ブログユーザー)