- http://opencores.org/project,mcpu
どうも プロジェクトホームページは、ここらしい。アクセスできる人は、ここから入手するのが良さそうだ。
というのを思い出した。これは、CPLD で実装できる 極端にシンプルな 8bit CPU 。
実際に CPLD に実装しても メモリを別に用意しなくてはならない 。FPGA だとメモリがあるのが普通なので、全部を実装可能だ。でも、どうせならもっと規模が大きい CPU を実装したい ... ということで今までは興味がなかった。
128スライスしかない MachXO2-256 ならどうだろう? メモリを載せて実装できるのだろうか? 試してみたくなった。
まずは、資料の入手から。"MCPU - A Minimal 8 Bit CPU in a 32 Macrocell CPLD" でググると PDF ファイルがヒットする。まずは、これを入手。
MCPU の概要
ドキュメントを読むと 命令は なんと 4 つしかない。
そんなものでプログラムを組めるのだろうか? という疑問にマクロを示すことで答えている。
.. 確かにプログラムを書けそうな気はする。
ソースコードは、VHDL版、Verilog 版が、ドキュメントの最後に添付されている。
私は、VHDL版だけ見て、自己流の Verilog 版を作ることにした。... というより Verilog 版があるのを知らないで作ってしまった。まぁ、後でいじるつもりだし著作権的には自己流の方が都合が良いかも知れない。
-- 著作権は、アイディア(ロジック)を保護するものではなく、表現を保護するもの。言語が違うから、表現も違う。オリジナルは尊重すべきだが、どうもこういうことらしい。
verilog 版をよく見たらバグがあるようだ。要注意。
最初のインプリメント
さて ... 規模をまずは見たい。メモリを付けて合成してみよう。
メモリ空間は、なんと 6bit 64バイト分しかない。初期値付きの RAM として合成してみたら 59/128 スライス しか消費しなかった。
module sram # (
parameter SIZE = 64
) (
input CLK,
input WEB,
input [5:0] ADDRB,
input [7:0] DIB,
output [7:0] DOB
);
reg [7:0] mem [0:SIZE-1];
reg [7:0] r_addr;
always @(negedge CLK)
begin
if (WEB) mem[ADDRB] <= DIB;
r_addr <= ADDRB;
end
assign DOB = mem[r_addr];
initial
begin
$readmemh("rom_data.mem" , mem, 0 , SIZE-1);
end
endmodule
つけた RAMは、こういうもの。negedge で駆動。アドレスラッチ付き。
構想
まずアドレス空間が狭すぎる。ハーバードアーキテクチャにしよう。これで RAM 専用空間に 64 バイト割り当てられる。
で、何をしたいかと言うと I2C やらタイマがある EFB を割り当てたい ... ただ EFB の空間は 256 バイトもある。
EFB の調査
- TN1205 ユーザフラッシュメモリ(UFM)と組み込み機能ブロック(EFB)の使用ガイド
を見てみよう。
まずは、アドレスマップ
プライマリI2C 0x40 〜 0x49
セカンダリI2C 0x4A 〜 0x53
SPI 0x54 〜 0x5D
タイマ/カウンタ 0x5E 〜 0x6F
一応 64 バイト以内に収まっている。0x70 〜 0x7f の 16 バイトも空いている。あと、使わない機能のレジスタは RAM としても使えるはず。
独自の I/O ポートを付けたいなら どこかを削らなければならない。これは、後で考えよう。
次に EFB との接続インターフェイス。
EFB は、WISHBONE インターフェイス。この説明は、TN1205 に載っている。 - wb_clk_i posedge で動作
- wb_rst_i active high の同期動作
- wb_adr_i {2'b01, adreg}
- wb_dat_i EFB の入力
- wb_dat_o EFB の出力
- wb_we_i 1 で Write だが レベルセンシティブ
- wb_stb_i 1 で EFB を選択 ( adreg[5:4] != 2'b11 )
- wb_cyc_i 1 でバス有効?
- wb_ack_o
こんな感じだが、ライトもリードも 最低3サイクル必要と書いてある。
WISHBONE 用のクロックをまず生成し、それを3分周してマスタクロックにすることにしよう。
MachXO2 和訳テクニカルノート にある
MCPU の拡張 (1) ハーバードアーキテクチャ
- adreg にロードしている所
- 上位 2bit だけをロードしている所
これは、実はすごく簡単。(元が簡単だし)
メモリから READ しているもの のいくつかを プログラムメモリに変えれば良い。
MCPU の拡張 (2) アドレス空間の拡張
ハーバードアーキテクチャ に変更しても プログラムメモリは、64B しかない。MachXO2-256 は、128B までいけるはずなのだ。もう少し増やせないか?
空間を増やすためには、プログラムメモリのビット幅を増やせば良い。分散メモリの場合、使わない bit は 最適化で消えるから、気前よく 12 bit にしてしまおう。
で、アドレス空間自体は、7bit にする。これで規模がどうなるか。
Number of Inst. 64(org) 64 96 128
Design Summary
Number of registers: 32 34
Number of SLICEs: 51 92 107 124
SLICEs(logic/ROM): 32 32
SLICEs(logic/ROM/RAM): 19 60 75 92
As RAM: 6 24
As Logic/ROM: 13 36 51 68
Number of logic LUT4s: 77 126 156 188
Number of distributed RAM: 6 24
Number of ripple logic: 5 5
Total number of LUT4s: 99 184 214 246
分散メモリは、ROM に格納するデータによって規模が変わる。64B 分しか使わないなら 128B 全部使うのと比べ 32 スライスも減った。
同じ 64B でも ハーバードアーキテクチャ版から随分増えた。これは、メモリ(RAM) を 16B から 64B に増やしたのが主な理由。-- メモリが 16B しか使えないという制限で良いなら、変に拡張しないほうが良い。
ちなみに、オリジナルは 57 スライスで、ハーバードアーキテクチャ版は規模が減っている。
メモリは、RAM 64B だったのが、ROM 64B + RAM 16B になったわけだ。2 種類に増えた上、トータルの容量も増えた。さらに EFB まで付けて 減ったわけだ。
オリジナルは、ハーバードアーキテクチャ版を元に書きなおした。分散メモリの RAM実装が 重いということになるのだろう。
アドレスマップ と I/O ポート
何種類か設計したわけだが、アドレスマップを整理して I/O ポートをどうしたら良いのか考えてみよう。
オリジナル EFB版 MCPU EFB + アドレス拡張
0x00 - 0x2F : プログラム EFB EFB
0x30 : 0xFF (allone) 0xFF (allone) 0xFF (allone)
0x31 : 0x00 (zero) 0x00 (zero) 0x00 (zero)
0x32 : 0x01 (one) 0x01 (one) 0x01 (one)
0x34 - 0x3F : RAM RAM
0x40 - 0x7F : --- --- 拡張RAM
プログラムROM : ---- 64B 64B - 128B
マクロを見ると 0xFF,0x00,0x01 がメモリ上に必要なのだ。そして書き換えられるのは都合が悪い。アドレスは、EFB 版とアドレスを合わせることにすると 0x30 〜の 3 バイトが良さそうだ。
実際に付けるかどうかは、別にして ... 出力ポートは、0x30 - 0x32 の 3バイトを割り当てることにする。入力ポートは 0x33 の 1 バイトのみ ということにしたらどうだろう。
ソースコード
- qfn32samples-04.zip
- mcpu.v , mcpu_efb.v , mcpu2_efb.v の sram モジュールで WEB の論理が逆になっていた。
-
バグなど - mcpu.v , mcpu_efb.v , mcpu2_efb.v の sram モジュールで WEB の論理が逆になっていた。
追記: シミュレータ(iVerilog) でデバッグ
iVerilog を使ってデバッグした。いろいろ修正したが、どうやら動かせるようになったようだ。
動かせたのは、EFB を組み込んだりした拡張版。オリジナルに一番近いのは、まだ。
テストコードは、PDF に載っていたサンプルコード。どうも 最大公約数をもとめるものらしい。あと、アセンブラもどきを perl スクリプトで組んだりもしている。
作った MCPU のバージョンは4つある。
(1) mcpu.v オリジナルをもとに作ったもの
(2) mcpu_efb.v ハーバードアーキテクチャ版 にした上で EFB を組み込んだもの。
(3) mcpu1_efb.v 拡張しやすいように、rewrite したもの。
(4) mcpu2_efb.v アドレス空間を拡張したもの。
(1) だけ動いていない。
アセンブラもどきは、後方参照した場合、アドレスが分からないというレベルのもので、出力を参考にしてコードを転記している。
規模は、(3) が、53スライス、(4) が 103 スライス。EFB を組み込んだ上で、adreg, O_DATA などをピンに出力している。(4) は、LDI 命令を追加しての規模で、なしにすると 92。なにか使い物になりそうな気もしてきたのだが ...
よくよく考えると bit 操作すらできない代物だった。(3) は随分余裕があるようなので、これを元に ALU を付けたCPUを設計したほう方が実用的だろう。
あと RAM のアクセスの仕方に難がある。分散メモリ専用ならこれでも良いのだが、今はブロックRAM を使えない。一方 ROM の方は問題ないようだ。
(3) について、ちょっとメモっておこう。
ADD 命令 + STA 命令
_______ _______ _______
CLK ______| |_______| |_______| |______|
code_data 01AAAAAA | 01BBBBBB |
inst 000 | 101 | 000 | 110
______________
WE _______________________________________| |__
@
(RAM_USE_CLK)
______________
WE_mem ______________________________| |__
@ @ @ @
分かりにくいと思うが、2 クロックで 1 命令実行 。posedge で CPU は動作している。最初の状態は、000 で アドレスだけは確定している。
code_data は ROM 出力で negedge で変化する。アドレスは、ラッチを持たず ROM データをそのまま使っている。
で、ROM データは、毎クロック読み出しているが、inst==0 の時だけの方が良いかも知れない。
問題の RAM は、WE の立ち上がりで書き込みとしていた。一般的なコードにするとすれば ...
posedge で動作させることにして、WE = 1 で書き込み。ただし WE は半クロック前に確定させないといけない。
実際にやってみたら動いたのだが、規模は +7 スライスの増加。
・ qfn32samples-05.zip
新たな CPU へ
mcpu2 では、命令用メモリを 12bit にした。そのうち 下位 7bit はアドレス。命令用に 5bit 使えるわけだが今は 2bit しか使っていない。ここを再構成し、ALU を入れることによって 別の CPU にしたい。
といっても基本は変えない。演算する、ストアする、条件ジャンプするという枠組みは出来ているのだ。枠組みを壊さなければ、書きなおすところが圧倒的に減る。
改造の要点
10 : STA -- 変更しない。
00 : NOR -- 演算命令 8 つ に変更
使う ALU は、自作AVRコア用 ALU 。ちょうど 8bit だし、都合が良い。
00XXX -- 3bit 使えるが まるまる ALU の S に使う。
01 : ADD -- 即値演算命令 4 つに変更
即値演算にも ALU を使う。ただし、論理演算のみ。
01XX -- 即値は、2bitしか使えないのだ。命令の割り当ては、演算命令との兼ね合いで決める。
即値は、01 S[1] S[0] 8bit即値 (S[2] = 1) とすることにしよう。
演算は、00 S[1] S[0] S[2] 7bitアドレス
11 : JCC -- 条件を拡張+α
条件ジャンプ命令は、3bit 使える。C or Z で 1bit ,条件を逆にするのに 1bit 。あと 1bit は、C の値としておこう。 C をロードする命令がないのだ。
動くかどうか分からないのだが、ROM 64 words , RAM 16 bytes なら 97 スライスに収まった。これならいけそう。
命令表
(inst == 100)
00 00 0 ADD
00 01 0 ADC (with carry)
00 10 0 SUB
00 11 0 SBC (with carry)
00 00 1 AND
00 01 1 XOR
00 10 1 OR
00 11 1 LD
(inst == 101)
01 00 ANDI
01 01 XORI
01 10 ORI
01 11 LDI
(inst == 110)
10 XX X ST
(inst == 111)
11 00 C JCS jump if carry set
11 01 C JCC jump if carry clear
11 10 C JNE jump if zero-flag set
11 11 C JEQ jump if zero-flag clear
carry,zero-flag が変化するのは、ADD などの 算術演算命令のみ。
全部で 17 命令。... だがコード上は 4 種類のまま。ALU が何をしているか関知してないから。
シフト命令は .. ないなぁ。
これを付けるとすれば ... 001 〜 011 の inst を使うことになる。
(inst == 100)
10 00 STA
(inst == 001)
10 01 拡張命令 1
(inst == 010)
10 10 拡張命令 2
(inst == 011)
10 11 拡張命令 3
どんな命令にするか別にして、こういう割り当てにする。
だいたい作った上で動作周波数を見てみた。4 グレードで 20 MHz 〜 25 MHz ぐらい。クロックは、EFB を操作する都合で 3 倍クロックを入力している。命令実行は 2 クロックに 1 回なので 1/6 ... 4 MIPS ぐらい?
多分なにか間違っている。制約の設定が足りないのだろう。だが、EFB のクロック関係は適当すぎたかも。
EFB を外して CLK で駆動したら 22.9 MHz になった。これでも 違うはずだが、この 2 倍は無理だろう。
改造前の mcpu2 だと 45.5MHz と出た。ALU 周りがボトルネックと見做されたわけだ。だが、1.5 クロックかけて演算している。これを 0.5 クロックと見られたら 低い結果になりそう。
どうも、MULTICYCLE制約というので設定するらしいので試してみた。
FREQUENCY PORT "CLK" 36.000000 MHz ;
MULTICYCLE TO CELL "alu_impl_I/alu_impl/alu_lo/akku_i0" 1.500000 X ;
MULTICYCLE TO CELL "alu_impl_I/alu_impl/alu_lo/akku_i1" 1.500000 X ;
MULTICYCLE TO CELL "alu_impl_I/alu_impl/alu_lo/akku_i2" 1.500000 X ;
MULTICYCLE TO CELL "alu_impl_I/alu_impl/alu_lo/akku_i3" 1.500000 X ;
MULTICYCLE TO CELL "alu_impl_I/alu_impl/alu_hi/akku_i4" 1.500000 X ;
MULTICYCLE TO CELL "alu_impl_I/alu_impl/alu_hi/akku_i5" 1.500000 X ;
MULTICYCLE TO CELL "alu_impl_I/alu_impl/alu_hi/akku_i6" 1.500000 X ;
MULTICYCLE TO CELL "alu_impl_I/alu_impl/alu_hi/akku_i7" 1.500000 X ;
MULTICYCLE TO CELL "C_68" 1.500000 X ;
MULTICYCLE TO CELL "Z_69" 1.500000 X ;
... と 22.9 MHz が 57.0 MHz まで上がった。 いくらなんでも 上がりすぎのような ...
FREQUENCY PORT "CLK" 36.000000 MHz ;
DEFINE CELL GROUP "akku" "alu_impl_I/alu_impl/alu_hi/akku_i7"
"alu_impl_I/alu_impl/alu_lo/akku_i1"
"alu_impl_I/alu_impl/alu_lo/akku_i2"
"alu_impl_I/alu_impl/alu_lo/akku_i3"
"alu_impl_I/alu_impl/alu_lo/akku_i0"
"alu_impl_I/alu_impl/alu_hi/akku_i6"
"alu_impl_I/alu_impl/alu_hi/akku_i4"
"alu_impl_I/alu_impl/alu_hi/akku_i5"
"Z_69"
"C_68" ;
DEFINE CELL GROUP "code" "rom_impl/r_addr__i5"
"rom_impl/r_addr__i4"
"rom_impl/r_addr__i3"
"rom_impl/r_addr__i2"
"rom_impl/r_addr__i6"
"rom_impl/r_addr__i1" ;
MULTICYCLE FROM GROUP "code" TO GROUP "akku" 1.500000 X ;
よく分かってないのだが、GROUP というのを定義して、その間を設定するやり方もある。指定したいのは、こっちのような気がする。基本的に rom の アドレスが変わることによって 結果が出るのだ。これだと 37.6 MHz ...
mcpu2 だと 45.5MHz が 63.0 MHz に。
追記
mcp3 の 命令の仕様を決めて、簡易アセンブラを 作った。ちょっと改良して後方参照も 見るようにした。やはり、ないとデバッグが不便。あと 出力ポート追加。
MCPU3 命令表(全 21 命令)
(inst == 100)
00 00 0 ADD
00 01 0 ADC (with carry)
00 10 0 SUB
00 11 0 SBC (with carry)
00 00 1 AND
00 01 1 XOR
00 10 1 OR
00 11 1 LD
(inst == 101)
01 00 ANDI
01 01 XORI
01 10 ORI
01 11 LDI
(inst == 110)
10 00 X ST
(inst == 001)
10 01 ASR
(inst == 010)
10 10 ROL
(inst == 011)
10 11 ROR
(inst == 111)
11 00 C JCS jump if carry set
11 01 C JCC jump if carry clear
11 10 C JNE jump if zero-flag set
11 11 C JEQ jump if zero-flag clear
(MACRO)
SEC set carry JCS *+1 (C=1)
CLC clear carry JCC *+1 (C=0)
JMP addr JCC adr (C=0), JCC adr (C=0)
・carry が変化するのは、ADD などの 算術演算命令
と JCC 等のブランチ命令, シフト命令
・zero-flag は、論理演算やロード LD,LDI でも変化
これで コードは作れるようになった。最初に作ったのは、MCPU のサンプルの GCD の移植。単純変換したら、1命令しか減らなかった。
さて、次は EFB にアクセスしてみたい ... のだが、ちょっと出来が悪かったので再考。
・ まず 3 倍速というのがダメ。CPU の CLK が 2:1 になり ボトルネックになる。2 倍速にする。
・ 2 倍速 を検討したのだが、CPU は、ちょうど 2 クロック毎の処理になっている。
・ ROM を非同期アクセスに変更すると具合が良いことが分かった。
READ サイクル
_____ _____
CLK | |_____| |_____|
inst | 000 | 100 |
____________
wb_cyc ______| |_____
@ @
ADDR DATA @
ラッチ 実行
WRITE サイクル
_____ _____
CLK | |_____| |_____|
inst | 000 | 110 |
_______________________
wb_we | |_
____________
wb_cyc ______| |_____
@
ADDR
DATA
READ/WRITE サイクルを図示するとこんな感じ。
READ では、wb_cyc=1 と同時に アドレスが決まってないといけない。アドレスは、命令に含まれ、CLK 立ち上がりで読み込み開始。次の CLK_2X で データを読み込めるが、ここでラッチしないといけない。
WRITE は、命令を読みこめばただちに分かる。DATA も用意しなければならないが、akku(アキュームレータ)を WRITE するだけなので、命令と同じタイミングで読める。
あと、制約を書くのに C_68 とか変なサフィックスになるので、reg [1:0] flags に変更。
だいぶ仕上がって来た。いままで作ってきたサンプルは、MachXO2-256 をターゲットにしている。当然 『MachXO2 breakout ボード』でも 動くはず。EFB アクセスはこれで確認してみたい。

シミュレーション結果。赤い不定値部分は、RAM の範囲外ということ。EFB を読み込んでいるわけだ。(演算命令なので、値は使わないが)。 タイミングは上に書いた通りになっている。アクセスする時だけ wb_cyc をアサートしているので、wb_we のタイミングも想定通り。... なのだが、仕様を勘違いしているかも。
ところで、EFB を使ったときの 最大周波数が低く出てしまう。赤い不定値部分のとなり -- RAM への書き込みをしているが、WE_mem が 1 になって、値が書き込んだときの値に変わっている。どうも ここがボトルネックと解析されているのだが、この値はだれも使わない。from WE_mem を 6X と設定したら CLK_2X が 61.5MHz になった。(命令実行は 1/4 なので 15 MIPS といったところ -- たいしたことはない)。
あと作っておきたいのは、JTAG 経由の通信 。
関連記事
・ 『QFN32の FPGA』
・ 『TTL ALU 74281』
・ 『FPGA時計の設計』
・ 『MCPU -- A Minimal 8 Bit CPU』
最新ソースコード (2012/06/24)
・ qfn32samples-07.zip
参考文献(データシート等)
・ 『MachXO2 ファミリデータシート(日本語 pdf)』
・ 『MachXO2 テクニカルノート(日本語)』
TN1205 ユーザフラッシュメモリ(UFM)と組み込み機能ブロック(EFB)の使用ガイド
・ 『Lattice Diamond 1.4マニュアル』
JTM08_007 Spreadsheet ViewでのConstraint設定
JTM08_010 タイミング制約および検証に関する注意事項
https://uploads.strikinglycdn.com/files/b4d92728-0b18-478c-b4d9-d752171800fb/Deep-Fritz-13-Torrentl.pdf
https://automative.club/read-blog/3165_telecharger-l-039-ebook-italia-l-039-education-pdf-ebook-rar-utorrent-top-full.html
https://smaug.network/upload/files/2021/11/GBb9jm4kaWsq7gVLAk5b_29_fa75030edc9d053fa16cedba619dc0f0_file.pdf
https://uploads.strikinglycdn.com/files/ca8cb9ed-3517-4664-9f85-6c6d9c4e1e13/Hotels-And-Resorts-Planning-Design-And-Refurbishment-Pdf-Download.pdf
https://wakelet.com/wake/GdxwLmWVOyOr4S4gR74L6
https://wakelet.com/wake/zAmMXVXe4GY1dT5dqYcVs
https://wakelet.com/wake/z-xvvCzdO09cukKP7qFxG
https://wakelet.com/wake/K4ddrixIT71A1X2p_3XTf
http://hrtanswers.com/post/765_craftrise-laby-mob-kurulumu-ekrandaki-modlar-nas-l-yap-yorum-link-https-tinurli.html
https://buygejuggjugg.weebly.com/download-film-windstruck-dvdrip-movie.html
https://www.vsv7.com/post/2264_igi2healthcheatcodefree42-igi2healthcheatcodefree42-https-byltly-com-25y9ax-9420.html
http://mydnepr.com/post/4347_ragalaipuram-movie-download-tamilrockers-107-ragalaipuram-tamilrockers-link-http.html
https://trello.com/c/GOC03M3O/4-ultra-model-sets-01-39
http://subdestgega.unblog.fr/2021/11/26/medals-the-researchers-guide-book-pdf-top/
https://ekcochat.com/read-blog/918
http://mattephore.unblog.fr/2021/11/26/microsoft-office-professional-plus-activation-keygen-seaghberwi/
https://wakelet.com/wake/l3MNeKShmIF4wElz4pWuT
https://wakelet.com/wake/ddRS9ZHToXeBdL0g75IF0
https://wakelet.com/wake/wesZt72_gU6C1VQgTOPyL
https://wakelet.com/wake/0sY7jspbazmJ2HJ9H0-1N
https://wakelet.com/wake/ODfD6o5WRe7Mv89sY1EQw
https://muraldomarujo.name/read-blog/1014_updated-opel-globaltis-v-32-utorrent-crack-pc.html
https://wakelet.com/wake/mjHRHmC1PL0GFMVRb720v
https://nieprofesun.mystrikingly.com/blog/latest-ezdrummer-2-serial-x64-exe-full-version
https://coub.com/stories/2625436-tate-mcrae-you-broke-me-first-mp3-download-3-87-mb-all-mp3-download-high-quality
https://coub.com/stories/2625437-adlc2020v1011win-rar-google-drive-updated
https://coub.com/stories/2621202-adobe-cs6-master-collection-keygen-free-download-free
https://coub.com/stories/2621201-what-are-the-rules-for-monopoly-electronic-banking-zytogrey
https://wakelet.com/wake/ck169VAHHMXv0vZHySnOF
https://wakelet.com/wake/YQ_BOz_WYfdLStnBHDI_u
https://wakelet.com/wake/wgXmte2deWOmZwtLDbw8r
https://wakelet.com/wake/k757N9ogbaVPUeT9ShY-W
https://coub.com/stories/2711194-tyler-perry-s-the-oval-2x7-brokensilenze-janaeli
https://coub.com/stories/2711193-vpn-inf-unlimited-_top_-free-vpn
https://coub.com/stories/2711191-best-quantitative-chemical-analysis-8th-edition-solutions
https://coub.com/stories/2711190-an-introduction-to-law-and-economics-polinsky-ebook-downloadl-lavadivi
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgIC_vZvQCAwLEgZDb3Vyc2UYgICA_4TitQoMCxIIQWN0aXZpdHkYgIDAwOnR5AsMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMDgpfbeCgwLEgZDb3Vyc2UYgIDA0OzRtQgMCxIIQWN0aXZpdHkYgIDA4JWEuAsMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCg-I6yCAwLEgZDb3Vyc2UYgICA__nU9QoMCxIIQWN0aXZpdHkYgIDA0ICxrwkMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMDAjq6sCAwLEgZDb3Vyc2UYgIDAgJHgowkMCxIIQWN0aXZpdHkYgIDAgNPksAgMogEQNTcyODg4NTg4Mjc0ODkyOA
https://coub.com/stories/2634830-link-r-kelly-tp2-album-free-mp3-download
https://coub.com/stories/2634831-patched-exsultate-jubilate-karl-jenkins-pdf
https://coub.com/stories/2634828-best-sinking-deep-chords-pdf-c
https://coub.com/stories/2634829-dhoom-2-tamil-dubbed-tamilrockers
https://coub.com/stories/2614533-siemens-siwatherm-c7-kondenstrockner-bedienungsanleitung-exclusive
https://coub.com/stories/2614532-top-best-of-luck-full-movie-hd-720p-download-free
https://coub.com/stories/2614531-gravitational-force-gizmo-answer-key-rar
https://coub.com/stories/2614529-riccardo-cocciante-poesia
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgID_udGICgwLEgZDb3Vyc2UYgICA_5O6sAgMCxIIQWN0aXZpdHkYgIDA4ODbmggMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMDAzpGxCAwLEgZDb3Vyc2UYgIDAgN3s-wsMCxIIQWN0aXZpdHkYgIDAwJnS6goMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgID_xeKfCgwLEgZDb3Vyc2UYgICA_8DehAgMCxIIQWN0aXZpdHkYgIDAkP-F5wkMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCA0a2cCgwLEgZDb3Vyc2UYgIDAgPLPhQkMCxIIQWN0aXZpdHkYgIDAkLHW3QkMogEQNTcyODg4NTg4Mjc0ODkyOA
https://coub.com/stories/2640779-esercizi-di-microeconomia-varian-pdf
https://coub.com/stories/2640778-vt100-font-link-download-mac
https://coub.com/stories/2640777-applied-calculus-hughes-hallett-pdf
https://coub.com/stories/2640776-link-minuet-in-g-minor-piano-pdf
https://coub.com/stories/2693382-repack-american-school-of-needlework-free-patterns
https://coub.com/stories/2693383-portable-zinio-reader-4-konvertieren-pdf
https://coub.com/stories/2693385-airserver-5-5-8-crack-with-product-key-free-download-2019-bauvid
https://coub.com/stories/2693386-kyoukai-no-kanata-strongest-characters
https://wakelet.com/wake/0Qd9qgS-oymmr_ETYzvpi
https://wakelet.com/wake/yN6oSLmvcnejuFZdG5V2G
https://wakelet.com/wake/os-e9_HaVJMAKy2PipLkY
https://wakelet.com/wake/Xmv3MxAHta57gaAhZXhV7
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCAkarNCAwLEgZDb3Vyc2UYgICA__nU3wgMCxIIQWN0aXZpdHkYgIDA4Nf10QoMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMDAwOytCwwLEgZDb3Vyc2UYgIDAgLKp9AoMCxIIQWN0aXZpdHkYgIDAwNOUlggMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCA4r-MCAwLEgZDb3Vyc2UYgICAn4T6gQkMCxIIQWN0aXZpdHkYgIDA0ICNjAsMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMDAh86LCwwLEgZDb3Vyc2UYgICA_7mRzgoMCxIIQWN0aXZpdHkYgIDAkPO6qgkMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMDA1dLECQwLEgZDb3Vyc2UYgIDAoPjHpAkMCxIIQWN0aXZpdHkYgIDAkOuP9gkMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMDgzoCVCQwLEgZDb3Vyc2UYgIDA4NCopAsMCxIIQWN0aXZpdHkYgIDAoLjwugsMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMDAjpf6CAwLEgZDb3Vyc2UYgIDAoPjHwQgMCxIIQWN0aXZpdHkYgIDA0K37pggMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCgqILYCAwLEgZDb3Vyc2UYgIDA4JCKnAsMCxIIQWN0aXZpdHkYgIDA4Jy48QgMogEQNTcyODg4NTg4Mjc0ODkyOA
https://wakelet.com/wake/ZTCHHJKleYp7vFLp75sby
https://wakelet.com/wake/h7g7kexIIV1MUUUuetFkB
https://wakelet.com/wake/IHlQjIHWeb4_Og3K_8NDY
https://wakelet.com/wake/BuGt8IXHk5qw07UA-U6d2
https://wakelet.com/wake/D2z5h6clXFqpoKnh2YTwz
https://wakelet.com/wake/7VGK6yniJRnnaj4gOPEir
https://wakelet.com/wake/yBLUf4ygYTYhQc23NpT5L
https://wakelet.com/wake/aoYtqEwMG-AGuHnNOxnkB
https://trello.com/c/8QDOyFfP/58-disk-drill-pro-36934-hot-crack-registration-key-free-download-2019
https://trello.com/c/KiAPS2AN/62-pic-c-compiler-ccs-pcwhd-v4-068-rar
https://trello.com/c/uXyGlFMY/31-bluestacks-splitinstaller-native-2-exebluestacks-splitinstaller-native-2-exe
https://trello.com/c/4oDBsrY7/69-extra-quality-super-mario-64-rom-extender-12b-full-version-download-updated
https://wakelet.com/wake/2ovmf3UrkfuDJzNf05aY1
https://wakelet.com/wake/tcokd9e9nPrz5HkSM8wte
https://wakelet.com/wake/4PIrn189ZogkFCPzEMaNh
https://wakelet.com/wake/mdCXl3-2uXE3pY10A7eq7
https://wakelet.com/wake/MHLJSNID6Fcdl9pdrAXe4
https://wakelet.com/wake/bWrlGsvmTNn71cB-rrWtJ
https://wakelet.com/wake/GaJ6NDVJmEusEJhyEWyRj
https://wakelet.com/wake/XKSTKZz9vQFNfHIZLaico
https://coub.com/stories/3135657-hd-online-player-hum-dil-de-chuke-sanam-full-movie-in-mararet
https://coub.com/stories/3135655-management-information-system-by-jawadekar-link-free-pdf-898
https://coub.com/stories/3135650-lava-iris-708-firmware-19-top
https://coub.com/stories/3135645-repack-pretty-good-solitaire-1200-keygen
https://trello.com/c/IP8SBiVU/45-civ-5-ingame-editor-download-exclusive
https://trello.com/c/zOxw6HIR/33-abacomlochmasterv40bilingual-crd-serial-key-keygen-exclusive
https://trello.com/c/R552TWLk/10-cyberplanet-63-full-crack-exclusive-11
https://trello.com/c/ciPAdDzO/56-laputa-o-castelo-no-ceu-dublado-link-downloadl
https://trello.com/c/1iK9fkyT/46-suicide-squad-english-top-full-movie-in-hd-1080p-download
https://trello.com/c/od3BqvOs/42-tomtommapsofwesternandcentraleuropefullv8152096-t0nk4-setup-free-lucange
https://trello.com/c/Hlu7HUiP/15-fix-hd-online-player-avatar-2009-extended-1080p-3d-bluray
https://trello.com/c/gSi5pFoN/48-cara-crack-ipos-40-top
https://trello.com/c/7hEl7HO6/22-top-inflow-inventory-premium-251-keygen-23
https://trello.com/c/TB9AHVHd/37-download-full-slrr-by-jack-v4-torrent
https://trello.com/c/LliTk6v8/19-lionel-richie-just-go-full-album-zip-hot
https://trello.com/c/uTd4lnNA/24-jilla-tamil-movie-download-tamilrockers-hd-verified
https://wakelet.com/wake/RAlU_cnXJm8Rrazp1wn9T
https://wakelet.com/wake/QJVMHAOuN0-Cv-fK3cn6H
https://wakelet.com/wake/7iArcUjZFQysem9iQmZvd
https://wakelet.com/wake/FCp4Py4yqfaVmgNN-c9zu
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCA3_ydCgwLEgZDb3Vyc2UYgIDAgIHVkwsMCxIIQWN0aXZpdHkYgIDA4Kzn6gsMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCAnZnACwwLEgZDb3Vyc2UYgIDAgPKM2AgMCxIIQWN0aXZpdHkYgIDA4J-m7QsMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCAweKnCgwLEgZDb3Vyc2UYgICA_7mR8QoMCxIIQWN0aXZpdHkYgIDA4N-egwsMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCAncO8CwwLEgZDb3Vyc2UYgIDAwLWc8AkMCxIIQWN0aXZpdHkYgIDAoJq23ggMogEQNTcyODg4NTg4Mjc0ODkyOA
https://coub.com/stories/3090060-_top_-helvetica-neue-lt-w1g-zip
https://coub.com/stories/3090054-link-dynafont-typemuseum-5700-truetype-for-windows-download
https://coub.com/stories/3090052-word-to-latex-converter-crack-portable
https://coub.com/stories/3090049-link-autodesk-quantity-takeoff-v2013-iso-free-download
https://coub.com/stories/2995105-download-free-nd3t-w56-zip-walloda
https://coub.com/stories/2995104-install-crack-menfis-8-espanol
https://coub.com/stories/2995108-solucionario-de-fisica-alonso-acosta-gratis-_best_
https://coub.com/stories/2995106-adobe-photoshop-lightroom-cc-6-14-crack-__full__-crack-__full__snow-serial-key
https://coub.com/stories/3039270-cadence-orcad-9-1-download-64-bit-patched
https://coub.com/stories/3039269-simlab-3d-pdf-exporter-for-rhino-crack-repack-edl
https://coub.com/stories/3039268-realm-revolutions-download-xp-andrces
https://coub.com/stories/3039267-exclusive-jazlertvfullcrack
https://coub.com/stories/2977863-lihim-na-karunungan-ng-diyos-pdf
https://coub.com/stories/2977862-download-dlc-scandinavia-ets2-exclusive
https://coub.com/stories/2977861-poweriso-2020-full-crack-latest-version-for-windows-free-download-triharm
https://coub.com/stories/2977860-misstanakpurhaazirhomoviedownloadmp4hd-hot
https://coub.com/stories/3103403-slavo-kukic-sociologija-pdf-11-full
https://coub.com/stories/3103399-best-winhex-serial
https://coub.com/stories/3103398-canvas12licensecodekeygenrar-hot
https://coub.com/stories/3103397-deep-free-link-ze-standard-v-7-21-20-3447-serial-guide-zip
https://coub.com/stories/3023053-password-unlock-for-diablo-iii-skidrow-offline-crack-free-rar
https://coub.com/stories/3023052-full-omnius-for-se-crack-repack
https://coub.com/stories/3023051-winx-dvd-ripper-premium-keygen-25-yonaisl
https://coub.com/stories/3023049-840d-sl-toolbox-7-4-70-verified
https://coub.com/stories/3041418-xforce-keygen-trulaser-2014-portable-link
https://coub.com/stories/3041417-ds-cadam-drafting-v5-6r2018-sp3-x86-crack-kalambr
https://coub.com/stories/3041416-biblia-hebrea-transliterada-pdf
https://coub.com/stories/3041415-new-mortal-kombat-x-repack-r-g-mechanics-crack
https://coub.com/stories/3032861-full-cevio-creative-studio-crack-22
https://coub.com/stories/3032860-deep-exploration-6-5-crack-verified
https://coub.com/stories/3032859-__hot__-gemcraft-2-chasing-shadows-cracked-12
https://coub.com/stories/3032856-smbuscontrollerdriverwindows732bitdownloadintel-2021
https://coub.com/stories/2949073-2021-3d-loli-collection-waldo-1
https://coub.com/stories/2949072-getdata-recover-my-files-professional-v4-0-2-441-cracked-djinn-isayeli
https://coub.com/stories/2949071-sony-dvd-architect-pro-60-_best_-keygen
https://coub.com/stories/2949070-iec-60571-pdf-free-download-taleexp
https://coub.com/stories/3015337-full-exisoguiv14brar
https://coub.com/stories/3015338-auto-vo-lam-bi-su-16-15-install
https://coub.com/stories/3015342-the-three-stooges-dual-audio-720p-or-1080i-verified
https://coub.com/stories/3015341-nec-pc-8801-rom-download-full
https://coub.com/stories/3116905-portable-train-simulator-2012-free-download-full-version-crack
https://coub.com/stories/3116904-fandev-cutedcp-v1-7-5-for-after-rar-vitazuha
https://coub.com/stories/3116903-__exclusive__-os-filhos-da-droga-livro-pdf-87
https://coub.com/stories/3116902-_hot_-enounce-myspeed-crack-serial-no-artist-going-oquendo-espana-reg
https://coub.com/stories/3045775-rjcapture-crack-_best_
https://coub.com/stories/3045778-hd-online-player-tamil-hd-1080p-video-songs-free-new-down
https://coub.com/stories/3045777-getflv-9-1-2-1-registration-code-full-25-chadyal
https://coub.com/stories/3045776-medieval-2-total-war-kingdoms-no-cd-crack-1-5-updated
https://coub.com/stories/3036472-wot-hack-without-verification-gold-and-premium-quicall
https://coub.com/stories/3036471-full-symantec-ghost-solution-suite-2-5-1-license-keygen
https://coub.com/stories/3036470-bollywoodgroovesloopstorrentdownload-work
https://coub.com/stories/3036469-stbemu-pro-for-iptv-v1-2-1-0-paid-latest-better
https://coub.com/stories/3045378-imvu-credits-hack-pro-v6-1-full
https://coub.com/stories/3045377-free-convert-vhd-to-wim
https://coub.com/stories/3045376-patched-notecable-v1-11-retail-rar-nankaf
https://coub.com/stories/3045375-anya-valya-avi-rar-faesaga
https://coub.com/stories/3049523-fsx-spirit-airlines-a319-download-link
https://coub.com/stories/3049522-smartsyssoft-label-maker-2-10-portable-ak-crack-upd
https://coub.com/stories/3049521-flow3dlicense-best-cracksoftware
https://coub.com/stories/3049520-the-the-ghazi-attack-full-movie-free-download-mp4-top
https://coub.com/stories/3014636-battle-realms-trainer-v1-0-juspea
https://coub.com/stories/3014635-fix-simcity-5-pc-repack-skidrow
https://coub.com/stories/3014634-crack-gibbscam-post-processors-1-updated-fixed-11-2006-zip-luctai
https://coub.com/stories/3014633-hd-online-player-the-walking-dead-season-4-720p-blu-portable
https://coub.com/stories/3025193-tomtom-maps-for-mapfactor-navigator-mega-work
https://coub.com/stories/3025194-windows-loader-5-23-by-daz-utorrent
https://coub.com/stories/3025189-akai-mpc-software-unlock-37
https://coub.com/stories/3025192-download-top-lasercut-5-3-operating-software
https://coub.com/stories/3501875-trans-siberian-railway-simulator-download-2021-password
https://coub.com/stories/3501873-bloody-roar-2-ps1-iso-download-for-android-rar-link
https://coub.com/stories/3501874-driver-camara-web-hp-oem-wb918la-abm-1-75-free
https://coub.com/stories/3501872-__hot__-video-capture-master-7-0-1-1010
https://coub.com/stories/3439979-upd-essl-etimetracklite-65-keygen-34
https://coub.com/stories/3439978-hack-mytv-x86-v1-2-09090
https://coub.com/stories/3439976-updated-rebarcad-v901-keygen
https://coub.com/stories/3439975-culegere-matematica-ion-petrica-pdfgolkes-chryvibe
https://coub.com/stories/3371316-navari-aali-marathi-song-free-updated-download
https://coub.com/stories/3371315-statikvemukavemetmehmetomurtag40pdf-updated
https://coub.com/stories/3371313-verified-chrono-trigger-resurrection-down
https://coub.com/stories/3371314-link-virtual-dj-pro-2020-serial-key-with-activation-code-free-download-2019
https://wakelet.com/wake/ZGnSp9oQazdBiofy3E0J0
https://wakelet.com/wake/uOEwcKUYDsj8Btta2-2Et
https://wakelet.com/wake/J9DNloAbMBbOLUwaNiIko
https://paolomanasse.it/2011/09/euro-break-up-e-accellerazione-della/
https://coub.com/stories/3468224-alludu-seenu-telugu-movie-with-english-subtitles
https://coub.com/stories/3468223-new-mallu-singh-malayalam-movie-online-free-download
https://coub.com/stories/3468222-plotter-de-corte-moritzu-uc-700e-driver-panadefe
https://www.southcolors.in/ajiths-vivegam-movie-tracklist/
https://coub.com/stories/3378512-amtlib-dll-acrobat-dc-pro-crack-wilblad
https://coub.com/stories/3378511-the-pacific-rim-uprising-english-movie-tamil-free-free-download
https://coub.com/stories/3378510-utada-hikaru-wild-life-ustream-ver-audio-rip-hit-extra-quality
http://tokitsukaze.sblo.jp/article/16013986.html
Nov 22, 2020 A preview of Borussia Dortmund's Champions League group stage match ... Borussia.... Jun 12, 2021 The number one ranked team in the world, Belgium are set to open ... Euro 2020 campaign against Russia in St. Petersburg on Saturday. ... How to watch Belgium vs Russia on TV & live stream in India ... TV channels, Online stream ... It is home to Russian giants Zenit and the Russia national team also.... Arsenal Football Club, Arsenal Fc, Logo Arsenal, Arsenal Badge, Arsenal News, ... Support Liverpool FC with this commemorative decal. ... Borussia Dortmund Embroidered Iron on Patch GERMANY Football Soccer Bundesliga Football Team ... Paris Saint-Germain Football Club (known as Paris Saint-Germain, or PSG. df76b833ed nantkass
https://www.kaggle.com/daygimandtaf/full-the-patriot-dubbed-from-english-m
https://www.kaggle.com/markcennonpri/verified-eviews-7-serial-number-pasword-zip
https://www.kaggle.com/tranneulire/advanced-archive-password-recovery-4-53-xylileon
https://www.kaggle.com/linpydebun/bootlust-free-download-exclusive
https://www.kaggle.com/phrenrusobo/cracked-rahasya-in-hindi-torrent-download-7
Dec 7, 2020 Borussia Dortmund, 12:55 p.m. - TUDN, Unimas. Lazio vs. ... Live Stream: fuboTV (watch for free) ... Victory at fourth-place Zenit St. Petersburgstill seeking their first group winwill secure top spot for ... though Messi will have a chance to wrest that record back in his favor in Catalonia, via ESPN FC:.. Atributika & Club FC Zenit St. Petersburg Classic Beanie hat, Dark Blue 5.0 out of 5 ... you will be able to follow Zenit St. Petersburg v Panathinaikos BC live score, ... A group of fans of Russian side Zenit St Petersburg are calling for non-white ... able to link effectively with Facebook, Twitter, or other social networks and/or not.... Soccer - UEFA Europa League - Group H - Getafe v Odense BK - Coliseum Alfonso Perez. ... (Photo Credit: Gonzales Photo/Alamy Live News ... match between FC Bayern Munich and Borussia Dortmund in Dortmund, Germany, Nov. ... Molde's Erling Braut Haland (L) and FC Zenit St Petersburg's Hernani in action in Leg 1...
https://misxvtours.com.mx/wp/orlando-fantastico/
bar and the main browser panel.
ツキ Create tree view of feeds
ツキ List view of feeds
ツキ Tree view for feeds
ツキ Navigation with typed keywords and search buttons
ツキ Search engine flyout when you access menu or toolbar option
ツキ Keyboard navigation with previous and next buttons
ツキ Sort and locate in feeds tree by title, author and item priority
ツキ Zooming with last zoomed menu
ツキ Ability to set path of feed in which to search for next update items
ツキ Ability https://www.yoosure.com/go8/index.php?goto=https://menpafunsli.weebly.com
6add127376 quynan