質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Verilog

Verilogは、デジタル回路設計用の論理シミュレータ。また、ハードウェアの電子回路設計の際に用いるハードウェア記述言語を指すこともあります。両者を見分けるために、言語を「Verilog-HDL」と呼ぶ場合もあります。

FPGA

FPGAは、製造後でも設計者によって書き換えができる論理回路です。即時に書き換えが可能なため、開発期間を短縮することが可能。何度でも書き換えられるといった柔軟性があるため、製造や開発における費用も削減できるといったメリットがあります。

Q&A

1回答

2274閲覧

【Xilinx FPGA】MMCMを利用して分周を行ったがPL部のクロック周波数をMMCMの出力が上回った

geec

総合スコア10

Verilog

Verilogは、デジタル回路設計用の論理シミュレータ。また、ハードウェアの電子回路設計の際に用いるハードウェア記述言語を指すこともあります。両者を見分けるために、言語を「Verilog-HDL」と呼ぶ場合もあります。

FPGA

FPGAは、製造後でも設計者によって書き換えができる論理回路です。即時に書き換えが可能なため、開発期間を短縮することが可能。何度でも書き換えられるといった柔軟性があるため、製造や開発における費用も削減できるといったメリットがあります。

0グッド

0クリップ

投稿2021/10/18 04:40

verilog

1`timescale 1ns / 1ps 2////////////////////////////////////////////////////////////////////////////////// 3// Company: 4// Engineer: 5// 6// Create Date: 2021/10/15 08:34:15 7// Design Name: 8// Module Name: pckgen 9// Project Name: 10// Target Devices: 11// Tool Versions: 12// Description: 13// 14// Dependencies: 15// 16// Revision: 17// Revision 0.01 - File Created 18// Additional Comments: 19// 20////////////////////////////////////////////////////////////////////////////////// 21 22 23module pckgen( 24 input SYSCLK, 25 output PCK 26); 27 28wire CLKFBOUT, iPCK, locked; 29BUFG iBUFG (.I(iPCK), .O(PCK)); 30 31 MMCME2_BASE #( 32 .BANDWIDTH("OPTIMIZED"), // Jitter programming (OPTIMIZED, HIGH, LOW) 33 .CLKFBOUT_MULT_F(32), // 乗数M(2.000-64.000) 34 .CLKFBOUT_PHASE(0.0), // 位相(-360.000-360.000) 35 .CLKIN1_PERIOD(8.0), // CLKINの周期 36 // CLKOUT0_DIVIDE - CLKOUT6_DIVIDE: Divide amount for each CLKOUT (1-128) 37 .CLKOUT1_DIVIDE(1), 38 .CLKOUT2_DIVIDE(1), 39 .CLKOUT3_DIVIDE(1), 40 .CLKOUT4_DIVIDE(1), 41 .CLKOUT5_DIVIDE(1), 42 .CLKOUT6_DIVIDE(1), 43 .CLKOUT0_DIVIDE_F(6.75), // 除数Q(1.000-128.000) 44 // CLKOUT0_DUTY_CYCLE - CLKOUT6_DUTY_CYCLE: Duty cycle for each CLKOUT (0.01-0.99). 45 .CLKOUT0_DUTY_CYCLE(0.5), // デューティ比 46 .CLKOUT1_DUTY_CYCLE(0.5), 47 .CLKOUT2_DUTY_CYCLE(0.5), 48 .CLKOUT3_DUTY_CYCLE(0.5), 49 .CLKOUT4_DUTY_CYCLE(0.5), 50 .CLKOUT5_DUTY_CYCLE(0.5), 51 .CLKOUT6_DUTY_CYCLE(0.5), 52 // CLKOUT0_PHASE - CLKOUT6_PHASE: Phase offset for each CLKOUT (-360.000-360.000). 53 .CLKOUT0_PHASE(0.0), 54 .CLKOUT1_PHASE(0.0), 55 .CLKOUT2_PHASE(0.0), 56 .CLKOUT3_PHASE(0.0), 57 .CLKOUT4_PHASE(0.0), 58 .CLKOUT5_PHASE(0.0), 59 .CLKOUT6_PHASE(0.0), 60 .CLKOUT4_CASCADE("FALSE"), // Cascade CLKOUT4 counter with CLKOUT6 (FALSE, TRUE) 61 .DIVCLK_DIVIDE(4), // 除数D(1-106) 62 .REF_JITTER1(0.0), // Reference input jitter in UI (0.000-0.999). 63 .STARTUP_WAIT("FALSE") // Delays DONE until MMCM is locked (FALSE, TRUE) 64 ) 65 MMCME2_BASE_inst ( 66 // Clock Outputs: 1-bit (each) output: User configurable clock outputs 67 .CLKOUT0(iPCK), // 1-bit output: CLKOUT0 68 .CLKOUT0B(), // 1-bit output: Inverted CLKOUT0 69 .CLKOUT1(), // 1-bit output: CLKOUT1 70 .CLKOUT1B(), // 1-bit output: Inverted CLKOUT1 71 .CLKOUT2(), // 1-bit output: CLKOUT2 72 .CLKOUT2B(), // 1-bit output: Inverted CLKOUT2 73 .CLKOUT3(), // 1-bit output: CLKOUT3 74 .CLKOUT3B(), // 1-bit output: Inverted CLKOUT3 75 .CLKOUT4(), // 1-bit output: CLKOUT4 76 .CLKOUT5(), // 1-bit output: CLKOUT5 77 .CLKOUT6(), // 1-bit output: CLKOUT6 78 // Feedback Clocks: 1-bit (each) output: Clock feedback ports 79 .CLKFBOUT(CLKFBOUT), // 1-bit output: Feedback clock 80 .CLKFBOUTB(), // 1-bit output: Inverted CLKFBOUT 81 // Status Ports: 1-bit (each) output: MMCM status ports 82 .LOCKED(locked), // 1-bit output: LOCK 83 // Clock Inputs: 1-bit (each) input: Clock input 84 .CLKIN1(SYSCLK), // 1-bit input: Clock 85 // Control Ports: 1-bit (each) input: MMCM control ports 86 .PWRDWN(1'b0), // 1-bit input: Power-down 87 .RST(1'b0), // 1-bit input: Reset 88 // Feedback Clocks: 1-bit (each) input: Clock feedback ports 89 .CLKFBIN(CLKFBOUT) // 1-bit input: Feedback clock 90 ); 91 92endmodule 93

以上のコードはFPGAプログラミング大全 第二版を引用し一部改変しています.
もともとZyboを用いてVGAの出力をしていましたが,あるていどVerilogの勝手を理解したところで720pの映像出力をするように書き換えました。MMCMの設定に必要な値を間違えて設定したために720pで必要なピクセルクロック74.250 MHzの倍である148.5Hzに近い周波数が取れてしまいました.初代のZyboは本来クロック周波数125MHzまでの出力しか対応していないと聞いていたので驚いています.
MMCMを利用するとこのようなことがあり得るのでしょうか.
この質問はエラー等出ているわけではないですが,今後の成長のためにもこの疑問を晴らしたいと思い投稿しています.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

そのFPGAに固有の事については知らないので一般論になりますが、
ロジック回路の動作周波数の上限というのはその値までの動作を保証するという意味合いであって、実際には上限をかなり越えた周波数まで動作するのはよくあることです。
保証はされませんが、温度や電源電圧の最悪条件で動作する周波数よりかなり高い周波数まで普通の条件では動作することが期待されます。
また、クロック回路が設定によっては動作周波数を遥かに越える値まで出力できるのもよくあることです。

投稿2021/10/20 04:58

ikadzuchi

総合スコア3047

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問