Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
marsee101
6,400 views
Fpgaでの非同期信号の扱い方とvivadoによるサポート(公開用)
FPGAでの非同期信号の扱い方とVivadoによる非同期信号のサポートについてのスライドです。 第19回分子科学研究所技術研究会で発表しました。
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Downloaded 27 times
1
/ 19
2
/ 19
Most read
3
/ 19
4
/ 19
5
/ 19
6
/ 19
7
/ 19
8
/ 19
9
/ 19
Most read
10
/ 19
11
/ 19
12
/ 19
13
/ 19
14
/ 19
Most read
15
/ 19
16
/ 19
17
/ 19
18
/ 19
19
/ 19
More Related Content
PDF
Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)
by
marsee101
PDF
Vivado hls勉強会3(axi4 lite slave)
by
marsee101
PDF
Zynq mp勉強会資料
by
一路 川染
PDF
Vivado hls勉強会1(基礎編)
by
marsee101
PDF
Vivado hls勉強会5(axi4 stream)
by
marsee101
PDF
Vivado hls勉強会4(axi4 master)
by
marsee101
PDF
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
by
Mr. Vengineer
PPTX
Zynq + Vivado HLS入門
by
narusugimoto
Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)
by
marsee101
Vivado hls勉強会3(axi4 lite slave)
by
marsee101
Zynq mp勉強会資料
by
一路 川染
Vivado hls勉強会1(基礎編)
by
marsee101
Vivado hls勉強会5(axi4 stream)
by
marsee101
Vivado hls勉強会4(axi4 master)
by
marsee101
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
by
Mr. Vengineer
Zynq + Vivado HLS入門
by
narusugimoto
What's hot
PPTX
Jetson TK1でSemi-Global Matching
by
Ryo Sakamoto
PDF
FPGA+SoC+Linux実践勉強会資料
by
一路 川染
PPTX
Verilator勉強会 2021/05/29
by
ryuz88
PDF
ACRiウェビナー:小野様ご講演資料
by
直久 住川
PDF
BGP Unnumbered で遊んでみた
by
akira6592
PDF
ARM Trusted FirmwareのBL31を単体で使う!
by
Mr. Vengineer
PPTX
はりぼて OS で ELF なアプリを起動してみた
by
uchan_nos
PDF
いまさら聞けないarmを使ったNEONの基礎と活用事例
by
Fixstars Corporation
PDF
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
by
Hiroki Nakahara
PDF
Vivado hlsのシミュレーションとhlsストリーム
by
marsee101
PDF
ARM CPUにおけるSIMDを用いた高速計算入門
by
Fixstars Corporation
PDF
協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
by
Life Robotics
PDF
Ultra96ボードでYOLOを高速化
by
Hiroyuki Okuhata
PPTX
Microsemi FPGA はいいぞ,FPGAの紹介とおさそい
by
Takayasu Shibata
PDF
ZynqMPのQEMU
by
Mr. Vengineer
PPTX
モデル高速化百選
by
Yusuke Uchida
PDF
目grep入門 +解説
by
murachue
PDF
ルーティングチュートリアルチュートリアル TCP/IP編
by
Yuya Rin
PDF
DPDKによる高速コンテナネットワーキング
by
Tomoya Hibi
PDF
計算機アーキテクチャを考慮した高能率画像処理プログラミング
by
Norishige Fukushima
Jetson TK1でSemi-Global Matching
by
Ryo Sakamoto
FPGA+SoC+Linux実践勉強会資料
by
一路 川染
Verilator勉強会 2021/05/29
by
ryuz88
ACRiウェビナー:小野様ご講演資料
by
直久 住川
BGP Unnumbered で遊んでみた
by
akira6592
ARM Trusted FirmwareのBL31を単体で使う!
by
Mr. Vengineer
はりぼて OS で ELF なアプリを起動してみた
by
uchan_nos
いまさら聞けないarmを使ったNEONの基礎と活用事例
by
Fixstars Corporation
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
by
Hiroki Nakahara
Vivado hlsのシミュレーションとhlsストリーム
by
marsee101
ARM CPUにおけるSIMDを用いた高速計算入門
by
Fixstars Corporation
協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
by
Life Robotics
Ultra96ボードでYOLOを高速化
by
Hiroyuki Okuhata
Microsemi FPGA はいいぞ,FPGAの紹介とおさそい
by
Takayasu Shibata
ZynqMPのQEMU
by
Mr. Vengineer
モデル高速化百選
by
Yusuke Uchida
目grep入門 +解説
by
murachue
ルーティングチュートリアルチュートリアル TCP/IP編
by
Yuya Rin
DPDKによる高速コンテナネットワーキング
by
Tomoya Hibi
計算機アーキテクチャを考慮した高能率画像処理プログラミング
by
Norishige Fukushima
Similar to Fpgaでの非同期信号の扱い方とvivadoによるサポート(公開用)
PDF
画像処理ボード入門およびビデオ信号入門
by
Electro-System
PPTX
Androidとfpgaを高速fifo通信させちゃう
by
ksk sue
PDF
「FPGA 開発入門:FPGA を用いたエッジ AI の高速化手法を学ぶ」
by
直久 住川
PPT
20140310 fpgax
by
funadasatoshi
PPT
Uart受信設計2013
by
Kiyoshi Ogawa
PDF
Reconf_201409
by
Takefumi MIYOSHI
PDF
Pynq祭り資料
by
一路 川染
PDF
FPGAX6_hayashi
by
愛美 林
PDF
SDN Japan: ovs-hw
by
ykuga
PDF
Python physicalcomputing
by
Noboru Irieda
PDF
Node.js入門
by
俊夫 森
PDF
2012研究室紹介(大川)
by
猛 大川
PDF
FPGAを用いた世界最速のソーティングハードウェアの実現に向けた試み
by
Ryohei Kobayashi
PDF
第3回ローレイヤー勉強会 : FPGAでコンピュータを作ってみた
by
Ito Takahiro
画像処理ボード入門およびビデオ信号入門
by
Electro-System
Androidとfpgaを高速fifo通信させちゃう
by
ksk sue
「FPGA 開発入門:FPGA を用いたエッジ AI の高速化手法を学ぶ」
by
直久 住川
20140310 fpgax
by
funadasatoshi
Uart受信設計2013
by
Kiyoshi Ogawa
Reconf_201409
by
Takefumi MIYOSHI
Pynq祭り資料
by
一路 川染
FPGAX6_hayashi
by
愛美 林
SDN Japan: ovs-hw
by
ykuga
Python physicalcomputing
by
Noboru Irieda
Node.js入門
by
俊夫 森
2012研究室紹介(大川)
by
猛 大川
FPGAを用いた世界最速のソーティングハードウェアの実現に向けた試み
by
Ryohei Kobayashi
第3回ローレイヤー勉強会 : FPGAでコンピュータを作ってみた
by
Ito Takahiro
More from marsee101
PDF
Robot car gabor_filter
by
marsee101
PDF
Ultra96 pmod expansion board
by
marsee101
PDF
Camera input from_ultra_96's_slow_expansion_connector
by
marsee101
PDF
Fpga robot car
by
marsee101
PDF
FPGAスタートアップ資料
by
marsee101
PDF
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
by
marsee101
PDF
Pynqでカメラ画像をリアルタイムfastx コーナー検出
by
marsee101
PDF
高位合成ツールVivado hlsのopen cv対応
by
marsee101
PDF
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
by
marsee101
PDF
FPGAの部屋、slide share、xilinxツールのご紹介
by
marsee101
ODP
MPSoCのPLの性能について
by
marsee101
PPTX
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
by
marsee101
PPTX
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
by
marsee101
Robot car gabor_filter
by
marsee101
Ultra96 pmod expansion board
by
marsee101
Camera input from_ultra_96's_slow_expansion_connector
by
marsee101
Fpga robot car
by
marsee101
FPGAスタートアップ資料
by
marsee101
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
by
marsee101
Pynqでカメラ画像をリアルタイムfastx コーナー検出
by
marsee101
高位合成ツールVivado hlsのopen cv対応
by
marsee101
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
by
marsee101
FPGAの部屋、slide share、xilinxツールのご紹介
by
marsee101
MPSoCのPLの性能について
by
marsee101
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
by
marsee101
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
by
marsee101
Recently uploaded
PDF
Drupal Recipes 解説 .
by
iPride Co., Ltd.
PDF
さくらインターネットの今 法林リージョン:さくらのAIとか GPUとかイベントとか 〜2026年もバク進します!〜
by
法林浩之
PPTX
ddevについて .
by
iPride Co., Ltd.
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
by
akipii ogaoga
PDF
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
by
CRI Japan, Inc.
PDF
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
by
嶋 是一 (Yoshikazu SHIMA)
PDF
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
by
e-Patent Co., Ltd.
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
by
akipii ogaoga
PDF
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
by
sorabatake
Drupal Recipes 解説 .
by
iPride Co., Ltd.
さくらインターネットの今 法林リージョン:さくらのAIとか GPUとかイベントとか 〜2026年もバク進します!〜
by
法林浩之
ddevについて .
by
iPride Co., Ltd.
Reiwa 7 IT Strategist Afternoon I Question-1 3C Analysis
by
akipii ogaoga
Starlink Direct-to-Cell (D2C) 技術の概要と将来の展望
by
CRI Japan, Inc.
第21回 Gen AI 勉強会「NotebookLMで60ページ超の スライドを作成してみた」
by
嶋 是一 (Yoshikazu SHIMA)
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信
by
e-Patent Co., Ltd.
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector
by
akipii ogaoga
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版
by
sorabatake
Fpgaでの非同期信号の扱い方とvivadoによるサポート(公開用)
1.
FPGA での非同期信号の扱い方と Vivado によるサポート marsee
2.
2 非同期信号とは? ● 非同期信号 – 回路の使用しているクロックに同期していない信号 ● 非同期信号の種類 – 完全に非同期な信号 ● スイッチ入力(人間がスイッチを押す) –
異なるクロックで動作する回路の出力を入力する ● PS2 ● I2C ● SPI ● 非同期信号を FPGA に入力する場合に問題が発生する
3.
3 非同期信号を入力する場合 ● 回路のクロックに同期していない入力 – 入力信号の変化する部分にクロックの立ち上がりが来て しまう場合もある クロック 入力 クロック 入力 たぶん OK 問題発生
!!!
4.
4 メタステーブル状態 ● フリップフロップ (FF) にはセットアップ時間とホール ド時間がある ● それらを満たせないと不安定な出力が出る場合がある 図は
FPGA 2.0 、コラム : 非同期クロック と 検証手法 -2 から引用 http://www.altima.jp/products/sofware/mentor/fv/column/cdc-2.html 組み合わせ回路
5.
5 メタステーブルの対処方法 ● FF を 2
段以上入れる ● ● ● 私の対処方法 – Vivado IPI で Synchronizer IP を自分で作成 図は FPGA 2.0 、コラム : 非同期クロック と 検証手法 -3 から引用 http://www.altima.jp/products/sofware/mentor/fv/column/cdc-3.html
6.
6 Synchronizer IP の設定画面 ● Bit
Widths で FF のビット幅を 設定 ● Number Of Stages で FF を 何段接続するか を設定
7.
7 synchronizer.v module Synchronizer #( parameter
integer NUMBER_OF_STAGES = 2, parameter integer BIT_WIDTHS = 1 )( input wire clk, input wire [BIT_WIDTHS-1:0] inp, output wire [BIT_WIDTHS-1:0] outp ); integer i; reg [BIT_WIDTHS-1:0] f[NUMBER_OF_STAGES-1:0]; always @(posedge clk) begin : proc_gen_f for (i=0; i<=NUMBER_OF_STAGES-1; i=i+1) begin if (i==0) begin f[i] <= inp; end else begin f[i] <= f[i-1]; end end end assign outp = f[NUMBER_OF_STAGES-1]; endmodule
8.
8 Synchronizer IP の使用場所
9.
9 FPGA 内部でのクロックの数 ● 畳み込みニューラルネットワークによる白線間走行ミ ニ・ロボットカーのクロック数 ー
5 個 – AXI4 インターフェース・クロック 100MHz – カメラ用出力クロック 72MHz – カメラ用入力クロック 36MHz – ディスプレイ・コントローラ用クロック( SVGA ) 40MHz – ディスプレイ・コントローラ用クロック( XGA ) 65MHz
10.
10 クロックの異なる回路間での信号の受け渡し ● 入力に 2 段以上の
FF を付ける ● 入力は少なくともクロックの 3 倍を超える長さが良い クロック 信号 全くダメ クロック 信号 もう一声 大丈夫! クロック
11.
11 異なるクロック間でのデータは? ● 低速で良いのならばハンドシェークで – VALID, ACK –
データを出力と同時に VALID – データを受け取ったら ACK を返す – ACK は落ちるのも見る VALID DATA ACK DATA0
12.
12 異なるクロック間でのデータは? 2 ● 非同期 FIFO –
入力データと出力データのクロックが異なる FIFO – Xilinx の FIFO Generator
13.
13 同期 FIFO の構造 FPGA
の部屋 「同期 FIFO と非同期 FIFO 」 http://marsee101.blog19.fc2.com/blog-entry-1085.html
14.
14 非同期 FIFO の構造 図は
Advanced FPGA Design: Architecture, Implementation, and Optimization, 96 ペー ジ、 Figure 6.14 Simplified asynchronous FIFO を参考にした FPGA の部屋 「同期 FIFO と非同期 FIFO 」 http://marsee101.blog19.fc2.com/blog-entr y-1085.html
15.
15 自作のカメラ・インターフェース IP での 非同期信号の取り扱い ● last_pixel_4_line は行のピクセル最 後のデータ ● first_pixel
はフ レームの最初の データ ● 制御信号もデータ と一緒に非同期 FIFO へ入力 // pixel FIFO をインスタンスする pixel_fifo pfifo ( .rst(areset), // input rst .wr_clk(pclk), // input wr_clk .rd_clk(aclk), // input rd_clk .din({last_pixel_4_line, first_pixel, rgb565_1d}), // input [33 : 0] din .wr_en(line_v_1d_odd_2d), // input wr_en .rd_en(pfifo_rd_en), // input rd_en .dout(pfifo_dout), // output [33 : 0] dout .full(pfifo_full), // output full .almost_full(pfifo_almost_full), // output almost_full .overflow(pfifo_overflow), // output overflow .empty(pfifo_empty), // output empty .almost_empty(pfifo_almost_empty), // output almost_empty .underflow(pfifo_underflow), // output underflow .rd_data_count(pfifo_rd_data_count) // output [9 : 0] rd_data_count );
16.
16 ビットマップ・ディスプレイ・コントローラ IP での 非同期信号の取り扱い ● vsync_node は
clk_disp で 出力されてい る ● 2 段の FF をか まして vsyncx_rise_ pulse を出力 // vsync を clk_axi で同期化 always @(posedge clk_axi) begin if (reset_axi) begin vsync_axi <= 1'b0; vsync_axi_b1 <= 1'b0; vsync_axi_1d <= 1'b0; end else begin vsync_axi_b1 <= ~vsyncx_node; vsync_axi <= vsync_axi_b1; vsync_axi_1d <= vsync_axi; end end // vsyncx_rise_pulse の処理。 vsyncx の立ち上がり時に 1 パルス出力する always @(posedge clk_axi) begin if (reset_axi) vsyncx_rise_pulse <= 1'b0; else begin if (vsync_axi==1'b0 && vsync_axi_1d==1'b1) vsyncx_rise_pulse <= 1'b1; else vsyncx_rise_pulse <= 1'b0; end end
17.
17 Vivado の機能( Clock
Domain Crossing ) ● Vivado の Flow Navigator から Open Implemented Design を開いて、 Tools メニュー -> Timing -> Report CDC... を選択する ● Report CDC ダイアログの From と To に解析するク ロック・ドメインを指定しして OK ボタンをクリック ● デモします ● FPGA の部屋「 Vivado の Implemented Design で Report CDC を確認する」参照 – http://marsee101.blog19.fc2.com/blog-entry-3337. html
18.
18 まとめ(最後はですます調に変調します) ● 非同期信号を受ける場合は必ず 2 段以上の
FF で受けて から使いましょう ● クロックが異なる回路とやり取りをするときは十分に注 意しましょう ● データはなるべく非同期 FIFO で渡しましょう ● Vivado の Implemented Design には Report CDC と いうクロック載せ替えのためのレポート機能があります
19.
19 参考文献 ● 【 FPGA 】内部生成リセットやリセットの混合使用【リ セット回路】 –
http://fpgainfo.blog.fc2.com/blog-entry-92.html ● コラム : 非同期クロック と 検証手法 -1 – http://www.altima.jp/products/software/mentor/fv /column/cdc-1.html ● 非同期信号を扱うための危うい Verilog ライブラリ – http://dora.bk.tsukuba.ac.jp/~takeuchi/?cmd=read &page=%E9%9B%BB%E6%B0%97%E5%9B%9E%E8%B7%AF%2FHDL %2F%E9%9D%9E%E5%90%8C%E6%9C%9F%E4%BF%A1%E5%8F%B7 %E3%82%92%E6%89%B1%E3%81%86%E3%81%9F%E3%82%81%E3 %81%AE%E5%8D%B1%E3%81%86%E3%81%84Verilog%E3%83%A
Download