[Altera][TSR] set_max_delay

2008/11/24FPGA::QuartusIIimport

[Altera][TSR] set_max_delay

Usage

set_max_delay [-fall_from <names>] [-fall_to <names>] [-from <names>] [-rise_from <names>] [-rise_to <names>] [-through <names>] [-to <names>] <value>

Options

-fall_from
Valid source clocks (string patterns are matched using Tcl string matching)
-fall_to
Valid destination clocks (string patterns are matched using Tcl string matching)
-from
Valid sources (string patterns are matched using Tcl string matching)
-rise_from
Valid source clocks (string patterns are matched using Tcl string matching)
-rise_to
Valid destination clocks (string patterns are matched using Tcl string matching)
-through
Valid through nodes (string patterns are matched using Tcl string matching)
-to
Valid destinations (string patterns are matched using Tcl string matching)
Time Value

Description

与えられたpathの,最大遅延(maximum delay)例外を与えます.最大遅延は,inputまたはoutput遅延を指定せずに,input portまたはoutput portに(遅延を)適用することを除いて,setupの関係(ラッチクロックエッヂ*1 - ラウンチクロックエッヂ*2)を変更することに似ています.

最大遅延は,いつもどのようなclock delayとも関係します(ソースまたはデスティネーションがレジスタである場合)し,どのようなinputまたはoutput delayとも関係します(ソースまたはデスティネーションがportである場合).

その結果,データ到着時間にinput delayとclockレイテンシが加算されます.clockレイテンシもまた,データ要求時間に加算され,output delayはデータ要求時間から減算されます."-from"と"-to"の値は,デザイン内のclock・register・port・pin・cellのコレクションです."-from"または"-to"の値が指定されない場合,コレクションは自動的に"[get_keepers *]"に変換されます.指定されないコレクションの片方が,クロックのコレクションである場合,クロックコレクションとして明示的に,この(省略された)コレクションを指定することは,より効果的であることに注意するべきです..(しかし,クロックのコレクションもまた,希望した設定を生成するのみであれば.)

(後略rise/from/toの説明は,ほとんどのコマンドに存在し,説明も同様.)

Example

# Apply a 10ns max delay between two unrelated clocks
set_max_delay -from [get_clocks clkA] -to [get_clocks clkB] 10.000

# Apply a 2ns max delay for an input port (TSU)
set_max_delay -from [get_ports in[*]] -to [get_registers *] 2.000

# Apply a 2ns max delay for an output port (TCO)
set_max_delay -from [get_registers *] -to [get_ports out[*]] 2.000

# Apply a 2ns max delay for an input port to an output port (TPD)
set_max_delay -from [get_ports in[*]] -to [get_ports out[*]] 2.000

# Apply a 2ns max delay for an input port only to nodes driven by
# the rising edge of clock CLK
set_max_delay -from [get_ports in[*]] -rise_to [get_clocks CLK] 2.000



*1 : 駆動される側のクロック入力端

*2 : 駆動する側のクロック出力端

注意事項

英語力の弱い人が適当に訳しています.自分では意味がわかるようにとれたものと,そうでないものとがあります.概要理解の参考にしていただければ幸いですが,オリジナルの英文を参照されることを強く推奨いたします.

[Altera][TSR] set_output_delay

2008/11/24FPGA::QuartusIIimport

[Altera][TSR] set_output_delay

Usage

set_output_delay [-add_delay] -clock <name> [-clock_fall] [-fall] [-max] [-min] [-reference_pin <name>] [-rise] [-source_latency_included] <delay> <targets>

Option

-add_delay
既存の遅延に加えて上書きします.
-clock
Clock name
-clock_fall
立下りエッヂ基準でoutput delayを指定します.
-fall
portにおいて,立下り時のoutput delayを指定します.
-max
最大データ要求時間を適用します.(Applies value as maximum data required time)
-min
最小データ要求時間を適用します.(Applies value as minimum data required time)
-reference_pin
Specifies a port in the design to which the output delay is relative
-rise
立上りエッヂ基準でoutput delayを指定します.
-source_latency_included
Specifies input delay already includes added source latency
Time value
Collection or list of output ports


Description

"-clock"で指定されたクロックを基準として,出力端子におけるデータ要求時間(data required times)を与えます.
その(指定する)クロックは,デザイン内のクロック名を参照する必要があります.
"Output delay"は,クロックの立上りエッヂ(default)または立下りエッヂ(-clock_fall)を基準として与えることができます.
もし,output delayが,単純な生成されたクロック(1つのターゲットと生成されたクロック)を基準として与えられるのであれば,生成されたクロックへの,クロック到着時間は,データ要求時間に加算されます.

output delayは,クロックネットワーク内のポートを基準として与えることができます(-reference_pin).参照ポートへのクロック到着時間は,データ要求時間に加算されます.

ポートが未参照のピンについてはサポートしていません.output delayは,クロックソースのレイテンシを含むことができます.デフォルトでは,関係するクロックのクロックソースレイテンシはoutput delay値に加算されます.しかし,"-source_latency_included"オプションが与えられるとき,クロックソースレイテンシは加算されません.なぜならば,それ(クロックソースレイテンシ)は,output delay値に含まれるからです.

maximum output delay(-max)は,clockのセットアップのチェックやリカバリ(recovery)チェックに使われます.minimum output delay(-min)は,clockのホールドチェックや削除(removal)チェックに使われます.もし,与えられたポートに対して,"-min"か"-max"のどちらかのみが指定されたならば,双方に同じ値が使われます.

そのポートに対して,立上がり時間(-rise)と立下り時間(-fall)とを分けて時間要求を指定することができます.もし,与えられたポートに対して"-rise"と"-fall"のいずれか一方のみが指定されたならば,双方に同じ値が使われます.

デフォルトでは,"set_output_delay"は,同じ"-clock"・"-clock_fall"・"-reference_pin"の組み合わせ以外の,どんなほかのportに対するoutput-delayをも取り除きます.

異なるclock・clockエッヂ・基準となる端子との,関連する複数のoutput-delayは,"-add_delay"オプションを使うことで指定できます.ターゲットの値は,collectionか特定の型のcollectionを作成するのに使用されるwildcardのTcl listのどちらかです.使用される値は,標準のTclかTimeQuest-extension代替規則に従わなければなりません.詳しくは,"use_timequest_style_escaping" コマンドヘルプを参照ください.


Example

# Simple output delay with the same value for min/max and rise/fall:
# 1) set on ports with names of the form myout*
set_output_delay -clock clk 0.5 [get_ports myout*]

# 2) set on all output ports
set_output_delay -clock clk 0.5 [all_outputs]

# Output delay with respect to the falling edge of clock
set_output_delay -clock clk -clock_fall 0.5 [get_ports myout*]

# Output delays for different min/max and rise/fall combinations
set_output_delay -clock clk -max -rise 0.5 [get_ports myout*]
set_output_delay -clock clk -max -fall 0.4 [get_ports myout*]
set_output_delay -clock clk -min -rise 0.4 [get_ports myout*]
set_output_delay -clock clk -min -fall 0.3 [get_ports myout*]

# Adding multiple output delays with respect to more than one clock
set_output_delay -clock clkA -min 0.2 [get_ports myout*]
set_output_delay -clock clkA -max 0.8 [get_ports myout*]
set_output_delay -clock clkA -clock_fall 0.6 [get_ports myout*] -add_delay
set_output_delay -clock clkB -min 1.1 [get_ports myout*] -add_delay
set_output_delay -clock clkB -max 1.5 [get_ports myout*] -add_delay

# Specifying an output delay relative to an external clock output port
set_output_delay -clock clk -reference_pin [get_ports clkout] 0.8 [get_ports myout*]

他参照

"hc_h51025_j.pdf"p.24の例の説明

# set_input_delay と set_output_delay を使用してI/O タイミングを設定するTcl スクリプト
set_input_delay -clock ref_clk -max 7.0 [get_ports data_in[0]]
set_input_delay -clock ref_clk -min 3.0 [get_ports data_in[0]]
set_output_delay -clock ref_clk -max 8.0 [get_ports data_out[0]]
set_output_delay -clock ref_clk -min 4.0 [get_ports data_out[0]]

data_in[0] の外部入力遅延は、クロックref_clk の正エッヂを基準にし、
data_out[0] の外部出力遅延はクロックref_clk の負エッヂを基準にします。

むぅ,負エッヂというのは立下りか?英文説明と合わないような.
和文より原文優先ともあるし,参照しているdocumentのほうが新しいので,本文修正ナシとします.気になったのでコレはコレでおいておきます.→エッヂ基準で,時間が正,負という意味ですね,きっと.


注意事項

英語力の弱い人が適当に訳しています.自分では意味がわかるようにとれたものと,そうでないものとがあります.概要理解の参考にしていただければ幸いですが,オリジナルの英文を参照されることを強く推奨いたします.

NiosII関係メモ

2008/11/11FPGA::NiosIIimport

[Nios2]

QuartusII v8.1をベースにいじっていこうと考えています.とりあえず,年内はKIT DEV NIOS II CYCLONE III ED.を借用できることになったので,いじり倒していこうかと思います.*1


*1 : しかしこれ,LCD綺麗だし,メモリもデバイスも十分でっかいし,5万なら買ってもいいかなぁ

参照資料

ALTERAサイトの,
"ホーム > 製品情報 > 資料 > Nios II プロセッサ"から,資料を落としてきます.オンライン資料: Nios II プロセッサ(2008.Nov.11現在)から,一式拾っておきましょう.

QuartusIIからでも,ヘルプを押せばオンラインから章毎に分冊された資料やデータシートなどが開きますが,HandBook程度は拾って開いておくのがよいかと思います.

[NiosII] 知っておいたほうが良さそうな事項

2008/11/11FPGA::NiosIIimport

はじめに

このコンテンツは,のちほど編集をかけることになるでしょう.とりとめもなくメモを貼り付けていきます.面倒なので参考文献の引用は雑にしますし,思い込みで書いている部分もありますので御注意ください….

tp151_flairUpdate:2008年12月22日 26:47頃

[Nios2] AVALON BUS仕様

Avalon Memory Mapped Interface (Avalon-MM)

一般的な? device interface.メモリマップドI/Oとしてすべてを扱う.バスはセレクタのお化けになる模様.

  • 同期回路で構成した,一般的なADRs/DATAs/RD/WR/CLK/WAITによる読み書き制御.ByteEnableもついて,1~4byteアクセス可能.
  • R/WのWait Timeは固定にもできる.
  • Burst転送も有効にすると,Burst Count信号が増設され,Burst転送モードが発生しうるようだ....
  • Burst DRAM/SRAM/FLASHをつなぐときに有効,か.

ドキュメント直訳+α


Avalon Streaming Interface (Avalon-ST)

データフローが一方通行なもの向けのinterface.

  • Interfaceのポート名 [Source] → [Sink] の方向にデータが流れる.
  • scheduler/primitive命から見ると,[Sink]で受けて[Source]から吐き出すイメージ.
  • moduleのクチは,[Souce]からデータを吐く,[Sink]でデータを受ける.(Figure6-1を見れ)

ドキュメント直訳+α


Avalon Memory Mapped Tristate Interface

tri-state出力のBUS.I/O Padの消費量削減のための,chipの外とのinterface用.

  • 外付けSRAM,ZBT RAMの接続が可能.Avalon-TriState MM - Slave.Masterは存在しない.(BridgeがMasterとして振舞う?.interconnectはsyncroだから関係ないってことかな...)

Avalon Clock

  • 特にかくことないかな...

Avalon Interrupt

  • 通常の? 割込みコントローラ.priority encoderつき.(優先度回転とか高機能なものはない."IRQの若い者が強い"仕様のようだ.)

Avalon Conduit (導管) - SOPCの外とのinterface規格?

  • System BUS(System Interconnect Fabricとは離れている.moduleと外との土管..?)

[SOPC] 接続概念

AVALON BUSに接続するためのPortとして,MasterとSlaveが存在します.データ方向は基本的に一方向であり,双方向バスではないと思われる(未確認).

Masterが制御信号を主導し,Slaveに対して読み書きを促す.Slaveからはwait信号を受け付けることもできる(Masterが許容しないとダメか?).

テンプレートで,Master/Slave Portのコードは生成されるので,自作IP?も簡単に??繋ぐことができる.



[SOPC] ほかのfunction

[SOPC] SG-DMA(Scatter Gathering DMA)

丸カッコは,Master/Slave portの表記.

(S)CSRControl Status Register
(M)descriptor_readDescriptorをメモリにおいて,DMA moduleが値を読むのに使う(src/destなどがchain linkできる)
(M)descriptor_writeDescriptorをメモリにおいて,DMA moduleが値を書き込むのに使う(Status Areaがある)
(M)m_read/(M)write実際にデータをR/Wするためのクチ.(descriptorと共通にはならなかったようだ...)
(M)out/(S)inメモリから取ってきたデータを,別のモジュールへ吐き出すクチ.

ドキュメント直訳+α


[SOPC] Bridge

Master - Slaveのインターコネクトを途中で集約することで,大量の配線引き回しを抑制できる.

Bridgeを通すことで,信号強度も復帰するため,(レイテンシ増加はするが)fMaxをあげることが想像できる.

また,設定方法によって,以下の名称をもつようだ.

Pipeline Bridge

Burstを有効にしたとき?

ドキュメント直訳+α


Clock Crossing Bridge

ブリッジを挟んでクロックドメインが変わるとき.


[N2EVAL-3C25N] FLASH ROM(P28F256)について

"cyclone3_handbook.pdf" Active Parallel の説明を参照されたい.

接続については,Active Parallel(AP)によるconfigurationを行うため,FPGAの規定の端子へデバイスを接続する必要がある模様.
また,configuration後は,ソレに従うので,この物理接続を踏襲するようなpin assignが必要となる.
Wait信号は,asyncで使う分には不要(AP configuration ignores the WAIT signal during configuration mode.)であり,asyncroで使う場合には無視すればよい.(配線されているのであればinputにして捨てておく必要がある.optimizeにも注意)

CLK should be tied to a valid VIH level,
WAIT signal can be floated 
ADV# must be tied to ground.

"cyclone3_handbook.pdf"の更新履歴(May 2008 v2.0)より,"Removed RDY pin and replaced with a normal I/O to monitor the WAIT signal"とある.
"CycloneIII_SB_3C25.pdf" sheet 6では,FLASH_WAITがRDY/DQ1R3(Bank6,H13@EP3C25F324C8)に接続されているが,実体は未使用ということだろう.

アドレス信号についても,256Mbit FLASHなので,A25は未使用.schematic上は接続されているが,デバイス側NCとなっています.上位互換で,容量の大きいものを刺したときを考慮しているのでしょう.

信号メモ

control signals
	DCLK, clock(CLK)
	nRESET, active-low reset (RST#)
	FLASH_nCE, active-low chip enable (CE#)
	nOE, active-low output enable (OE#)
	nAVD, active-low address valid (ADV#)
	nWE, active-low write enable (WE#)
	general input, WAIT
adr/data signals
	DATA[15..0]
	PADD[23..0]


デバイスから探す端子設定用情報

I2Cインタフェース

I2C pin MAX II 内部結線 Direction HSMC name HSMC pin FPGA pin
HC_I2C_SCLKI2C_SCLK <= HC_I2C_SCLKFPGA.outputHSMC_SCLHSMC#34F3
I2C_SDATI2C_SDAT <=(MAX3378)<= HC_I2C_SDATFPGA.inoutHC_I2C_SDATHSMC#33E1

オーディオインタフェース

WM8731 pin MAX II 内部結線 Direction HSMC name HSMC pin FPGA pin
MCLKAUD_XCK <= HC_AUD_XCKFPGA.outputHSMC_CLKOUT0HSMC#39A1
BCLKAUD_BCLK <= HC_AUD_BCLKFPGA.outputHSMC_TX_p10HSMC#113E17
DAC_DATAUD_DACDAT <= HC_AUD_DACDATFPGA.outputHSMC_TX_n9HSMC#109R1
DAC_LRCKAUD_DACLRCK <= HC_AUD_DACLRCKFPGA.outputHSMC_TX_p9HSMC#107R2
ADC_DATHC_AUD_ADCDAT => AUD_ADCDATFPGA.inputHSMC_CLKIN0HSMC#40A9
ADC_LRCKAUD_ADCLRCK <= HC_AUD_ADCLRCKFPGA.outputHSMC_TX_n8HSMC#103M1

SDカードインタフェース(SPIアクセス時)

SD pin symbol name Direction HSMC name HSMC pin FPGA pin name
CMD/DIHC_SD_CMDFPGA.outputHSMC_D3HSMC#44FPGA-L6
DAT/DOHC_SD_DATFPGA.inputHSMC_D5HSMC#48FPGA-M3
DAT3/CSHC_SD_DAT3FPGA.outputHSMC_D8HSMC#53FPGA-N8
CLKHC_SD_CLKFPGA.outputHSMC_TX_p8HSMC#101FPGA-M2

[Altera][QSF] TSU_REQUIREMENT

2008/11/11未分類import

免責

英語力の弱い人が適当に訳しています.自分では意味がわかるようにとれたものと,そうでないものとがあります.概要理解の参考にしていただければ幸いですが,オリジナルの英文を参照されることを強く推奨いたします.

対象ファイル:"mnl_qsf_reference.pdf"


[Altera][QSF] TSU_REQUIREMENT

入力(データ)端子に対する,許容される最大のclock setup時間を指定します.
"setup time"は,データ入力端子またはenable入力端子経由でレジスタに流れ込むデータで,clock端子にレジスタの時間を計るclock信号がアサートされる前に,入力端子に現れる必要があるようなデータの時間の長さです.

意訳) あるレジスタの,clockやdata信号が入力される必要のある時間(setup timeやね)

入力(データ)端子に対する,許容される最大の"clock setup time(tSU)"を指定します.
"setup time"は,データ入力端子またはenable入力端子経由でレジスタに流れ込むデータで,clock端子にレジスタの時間を計るclock信号がアサートされる前に,入力端子に現れる必要があるようなデータの時間の長さです.

あなたは,特定のsourceとdestinationまたは,wilodカードやtimegroupを含むすべての正しいノード間の"tsu Requirement timing assignment"を指定できます.


Type

Time (valueアイテムは時間指定となります.)


Device Support

この設定は,どのようなAlteraデバイスファミリー向けのプロジェクトでも使えます.


Notes

この指定は,ワイルドカードに対応します.
この指定は,どのような複製されたノードにもコピーされます.


Syntax

set_global_assignment -name TSU_REQUIREMENT <value>
set_instance_assignment -name TSU_REQUIREMENT -to <to> -entity <entityname> <value>
set_instance_assignment -name TSU_REQUIREMENT -from <from> -to <to> -entity<entity name> <value>

Example

set_instance_assignment -name tsu_requirement 3ns -from pin -to reg
set_instance_assignment -name tsu_requirement 3ns -to pin
set_instance_assignment -name tsu_requirement 3ns -from clk -to pin
set_instance_assignment -name tsu_requirement 3ns -to pin_bus*

See Also

"TH_REQUIREMENT" on page 19-78

"INPUT_MAX_DELAY" on page 19-35

"INPUT_MIN_DELAY" on page 19-37

別参照

National Instruments社のチュートリアルドキュメント.デジタル波形のタイミングにて基礎重充填...