0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

FPGAプログラム大全やりなおし#3

Posted at

第7章

AXI4-Lite Peripheral

  • 自作IPのチュートリアル
  • reg0に書き込まれた値をそのままGPIOに出力するだけ

part-select

気になった記法。

slv_reg0[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8];

VerilogのPart-selectという記法で、slv_reg0のbyte_index*8から上位ビット方向に8bitの範囲に、S_AXI_WDATAのbyte_index*8から上位方向に8bitの範囲を代入するという意味らしい。つまり、

slv_reg0[(byte_index*8)+8-1:(byte_index*8)] <= S_AXI_WDATA[(byte_index*8)+8-1:(byte_index*8)];

と同じ。ちなみにビット幅は即値である必要がある。起点となるビットは変数でもOK。:-は下位ビット方向の意味になる。

文字表示回路

  • Vivadoの使い方というより、表示回路の考え方を中心に確認

bit拡張

4bit深度のRGBを8bit深度の信号として出力する部分で、下記のように上位4bitを下位4bitにそのままコピーしている部分がある。

assign VGA_R[3:0] = VGA_R[7:4];
assign VGA_G[3:0] = VGA_G[7:4];
assign VGA_B[3:0] = VGA_B[7:4];

単純に4bit信号の最大値は15, 8bit信号の最大値は255であるが、15を単純に4bit左シフトすると240となり、8bitレンジをすべて使いきれない。255/15=17倍すべきであり、乗算器を使わない実装が

assign out = ((data << 4)|data);

となる。

デザインの微修正

AXI4スレーブIPをそのまま使用すると、下記のエラーが発生する。

[Synth 8-685] variable 'axi_rdata' should not be used in output port connection ["c:/FPGAprogramming/chardisp/chardisp.srcs/sources_1/bd/design_1/ipshared/f4b4/hdl/chardisp_ip_v1_0_S00_AXI.v":336]

該当信号をwireに変更。

chardisp_ip_v1_0_S00_AXI.v
    // AXI4LITE signals
    reg [C_S_AXI_ADDR_WIDTH-1 : 0]  axi_awaddr;
    reg     axi_awready;
    reg     axi_wready;
    reg [1 : 0]     axi_bresp;
    reg     axi_bvalid;
    reg [C_S_AXI_ADDR_WIDTH-1 : 0]  axi_araddr;
    reg     axi_arready;
    wire [C_S_AXI_DATA_WIDTH-1 : 0]  axi_rdata;   // reg->wireに変更
    reg [1 : 0]     axi_rresp;
    reg     axi_rvalid;

他、約25MHzのPCKを作るためにMMCMの設定を変更する必要あり。これはサポートページのものをそのまま利用。

演習

  • 文字の反転表示はvramout[20]を見てsreg[7]をそのまま/反転して取り出す
  • 文字の点滅表示はPCKを間引いて約2Hzの基準信号を作り、基準信号でトグルする信号を作成。このトグル信号を見てsreg[7]をそのまま/反転して取り出す
  • 演習その2は結構重そうなので、いったん先の章を進めることにする
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?