- TTLのみでコンピュータを自作する(第7話)
ここのサイトに ALU 一覧がある。74181 は、そのなかでも有名で、現在でもなんとか入手できる。
気になるのは、78281 。アキュームレータ付きで、シフトもできる。TTL で CPU を作るなら便利そうなのだが、こいつは、ググってもほとんど情報がない。
78281 互換の module を作り、それを使ったなにか簡単な CPU を作ってみたい。
AVR互換コアは作ったが、ALUありきの設計にはしなかった。独立したモジュールさえ作らなかったのだ。
それで、ALU には少々負い目を感じている。簡単なもので良いから、ALU というものを作っておきたい。
さて、74281 とは、実際どういうものだろう?
74281 加減算、AND/OR/EXOR、その他計15種 4bit ALU出力にシフトレジスタ付
説明はこうなっている。
データシート は見つかった。ただ、紙媒体をスキャンしたもので読みにくい。
74281 の仕様
ピン配置
74281
A1 1 24 VCC
A2 2 23 A0
RS1 3 22 CP
RS0 4 21 SIO0
RC 5 20 AS0
SIO3 6 19 AS1
A3 7 18 AS2
Cn 8 17 M
~G 9 16 F0
Cn+4 10 15 F1
~P 11 14 F2
GND 12 13 F3
入出力
input Cn // Carry Input
input [3:0] A // DATA IN
output [3:0] F // DATA OUT
output Cn+4 // carry-look-ahead
output ~P // carry-propagate
output ~G // carry-generate
input M // Mode Control
input [2:0] AS // Function Select
input [1:0] RS // Reg. Select
input RC // Reg. Control
input CP // Clock
inout SIO0 // RI/LO
inout SIO3 // LI/RO
( reg [3:0] B ) // internal register
TABLE1 ARITHMETIC FUNCTIONS (M == 0)
AS[2:0]
0 0xe + Cn
1 B - A - ~Cn
2 A - B - ~Cn
3 A + B + Cn
4 B + Cn
5 ~B + Cn
6 A + Cn
7 ~A + Cn
TABLE2 LOGIC FUNCTIONS (M == 1)
AS[2:0]
0 0
1 A ^ B
2 ~( A ^ B )
3 A ^ B
4 A & B
5 ~( A | B )
6 ~( A & B )
7 A | B
TABLE3 SHIFT MODE FUNCTIONS (posedge CP)
RS[1:0] , RC Breg SIO0 SIO3
0/1 Load B Reg ( F->B ) F0 F1 F2 F3 Z Z
2 Shift UP SIO0 F0 F1 F2 Z F3
3 Arith Shift UP SIO0 F0 F1 B3 Z F2
4 Shift Down F1 F2 F3 SIO3 F0 Z
5 Arith Shift Down F1 F2 SIO3 B3 F0 Z
6/7 Hold B0 B1 B2 B3 Z Z
仕様を書き写すとこういうものであるらしい。
入力は、4bit の A で、出力は F 。B は内部のレジスタ -- アキュームレータ。
ALU は 算術演算と論理演算の 2 つのモードがある。
シフトも 算術シフトができる。
機能としては、十分で、アキュームレータ 1 つしかない CPU を作るなら、配線が少なくて済む。
これだけの情報で大体は分かるが ~P, ~G の説明はない。
このあたりをみれば、分かる。設計するための情報は揃った。
追記:データシート AM25LS281XC に P/G の論理式が載っていた。使い方の例は、 Am2902 との接続方法のみ。一方 データシート DM74S281N には、182 との接続方法のみ(詳しく)載っている。
P,G は、182 (や Am2902) を使って高速化する場合のみ必要で、2 個を使った 8bit 版程度では不要。16 bit 版でも カスケード接続はできる。また、P,G を生成するより 最初から 16bit 版(など)を作った方が記述が楽。
74281 の設計
完全に同じものを作ることは、できるだろう。だが、TOP モジュールにするとすれば、CPLD に入れるにしても 規模が小さすぎる。せめて x2 の 8bit 版にしたい。
TOP モジュールにしないとすれば、シフトレジスタ部の SIO0/SIO3 が 双方向で使いにくい。また、ALU 部と シフトレジスタ部は分離したいところ。
というわけで、ALU 部 と シフトレジスタ部 を別々に作り、TOP モジュールで組み合わせることにする。また、シフトレジスタ部の SIO0/SIO3 は、IN/OUT 別々にする。
モジュールの定義は、
alu_74281(ALU)
input C_IN // Carry Input
input [3:0] A // DATA IN
input [3:0] B // DATA IN
output [3:0] F // DATA OUT
output C_OUT // carry-look-ahead
output P // carry-propagate
output G // carry-generate
input M // Mode Control
input [2:0] AS // Function Select
acc_74281(shift reg.)
output [3:0] B // DATA OUT
input [3:0] F // DATA IN
input [1:0] RS // Reg. Select
input RC // Reg. Control
input CP // Clock
input SI0 // RI/LO
output SO0 // RI/LO
input SI3 // LI/RO
output SO3 // LI/RO
こんな感じか。
ALU を 74382 に変更
- 真理値表に書いてある入力は、S 3bit + Cn + A + B で 6bit 。
- 出力は、F 4bit + OVF + Cn+1 で 6bit と内部 Cn 生成に 3bit 。
- ( 6bit 入力 = 4 LUT ) x 9 = 36 LUT (18 slices)
- 8bit 化なら ( 6bit 入力 = 4 LUT ) x 17 = 68 LUT (34 slices)
- Spartan-6 ならもっと効率が良く 1/4 で済む。
- LUT_4 しかない FPGA だと、後半の OVR , Cn は LUT を使わずに 0 固定にすれば ちょっと規模を減らせる。( 互換ではなくなるけど .. 使うとは思えない )
74281 の ALU を作ってみたのだが、選択が 4 bit もあり、結構スライスを使う。382 は、3bit で、必要十分のように思える。
データシートを見ると 真理値表もある。
真理値表をみながら考えたのだが、FPGA はもともと LUT で論理を合成する。すなおに LUT を使うと ...
これだけで済むとは思えないが、結構コンパクトになりそうだ。うまく行くなら AVR互換コア(rtavr) にフィードバックして、コアを小さくできるかも知れない。
rtavr の ALU は、8bit で 出力は OV と Cn[4] , Cn[8] が必要。機能的にも 8bit 化 382 で十分。Cn[4] は、内部用として生成しているから、規模は同じと見積もれる。
で、やってみた。最初分散メモリを使おうとしたのだが、うまくいかないので、強引に if 文 (正確には ? 演算子のネスト) で 書いてみた。
by LOGIC by CASE(full) by CASE(shrinked)
Number of Slice Flip Flops 8 8 8
Number of 4 input LUTs 73 82 77
Number of occupied Slices 37 45 39
Total Number of 4 input LUTs 74 82 77
Number used as a route-thru 1 0 0
Number of bonded IOBs 30 30 30
Number of BUFGMUXs 1 1 1
Maximum frequency(MHz): 126.646 70.967 115.221
結果はこれ。74281 のアキュームレータを組み合わせている。(そうしないと周波数が出ないので) 。
ロジックで書いたのは、論理演算の OVR , C_OUT を計算していないから、shrinked version に相当する。残念ながら ちょっと負けている。ロジックの方はバグっているかも知れないので、最終的な結果ではないものの、残念。
だが、良く良く考えて見れば、rtavr の ALU部は、H フラグの生成で無駄がある。8bit の演算をしていて、Cn[4] を作れば良いだけなのに、計算とは別に H フラグを生成しているのだ。
ロジックで組むのと遜色ないのであれば、この無駄が省けるかも知れない。... というわけで、何度も方針変更になってしまうが、AVR の ALU をまじめに作る方針に変更。同じように、74281 のアキュームレータと組み合わせて比較してみよう。
rtavr_alu
まだロジックでの演算のみだが、rtavr の ALU をモジュールとして独立させたのが出来た。評価環境があるから、正しく出来たかどうかの検証が楽。3 スライスだが、規模が小さくなって嬉しかったりするが、それはサテオキこんな仕様。
module rtavr_alu (
input [7:0] A
, input [7:0] B
, output [7:0] F
, input C_in
, input H_in
, input V_in
, input Z_in
, output C_out
, output H_out
, output V_out
, output Z_out
, input [2:0] S
);
// S == 0 : ADD (wo carry)
// S == 1 : ADC (with carry)
// S == 2 : SBC (with carry)
// S == 3 : SUB (wo carry)
// S == 4 : AND
// S == 5 : XOR
// S == 6 : OR
// S == 7 : MOV
//
// S = 0 1 2 3 4 5 6 7
// C_out : Carry[8] o o o o - - - -
// H_out : Carry[4] o o o o - - - -
// V_out : Over Flow o o o o - - - -
// Z_out : Zero o o o (o) - - - -
// (o) if (Z_in == 1)
S は、こんな割り当て。余ったので、加減算に carry ありなしを割り当て 計 8種類。フラグは変更しない OP があるので 全部 IN/OUT がある。C/V は 382 と同じようなものだが、Half carry と zero フラグがある。
zero フラグは、演算結果の後に付くから、いままで説明してきたのとは扱いが違う。Half carry は内部状態を外に出すかんじ。
実は、zero フラグを モジュールに持ってきたため、階層が増えて遅くなっている。だが、Z_out を入力から直接生成するような 専用コードを書くことで逆に速くできるかも知れない。
ゴードは小さいので全部書くと
wire [8:0] ALU_OUT = ((S == 0) | (S == 1)) ? ({1'b0, A} + {1'b0, B }
+ {8'b0, (S[0])? C_in : 1'b0 })
: ((S == 2) | (S == 3)) ? ({1'b0,A} - {1'b0, B }
- {8'b0, (S[0]) ? 1'b0: C_in })
: (S == 4) ? {C_in, (A & B) }
: (S == 5) ? {C_in, (A ^ B) }
: (S == 6) ? {C_in, (A | B) }
: {C_in, B } ;
assign F = ALU_OUT[7:0];
assign C_out = ALU_OUT[8];
assign Z_out = (S == 7) & Z_in
| ( (S == 2) & Z_in | ~((S == 2)|(S == 7)) )
& (ALU_OUT[7:0] == 0);
assign V_out = ((S == 0)|(S == 1)) & (F[7] & ~A[7] & ~B[7]
| ~F[7] & A[7] & B[7] )
| ((S == 2)|(S == 3)) & ( F[7] & ~A[7] & B[7]
| ~F[7] & A[7] & ~B[7] )
| (S == 7) & V_in ;
// ((S == 4)|(S == 5)|(S == 6)) ? 0
assign H_out = ((S == 0) | (S == 1)) & (
~F[3] & A[3]
| ~F[3] & B[3]
| A[3] & B[3] )
| ((S == 2) | (S == 3)) & (
F[3] & ~A[3]
| F[3] & B[3]
| ~A[3] & B[3] )
| (S[2]) & H_in;
こう。これを仕様として、LUT 版を作ってみよう。
LUT を引くのは、前半の算術演算のみ。LUT も 382 で作っているので同じように作る。サイズは 32 エントリ。
問題は、Z フラグ。論理演算は、キャリーを使わないから、ボトルネックにならない。
算術演算の Z フラグの計算で、上位 1bit か 2bit を直接演算すれば良いのではないか?
ただ上位 1bit でも (Z_in) が加わるので 64 エントリになる。2bit なら 256 エントリ。
とりあえずテーブルの元。
// input: { S , C_in , A[0], B[0] }
// ADD ADC SBC SUB
// F 01100110 10101001 01101001 01100110
// C 00010001 00010111 01001101 01000100
// OV 00010001 00011000 01000010 01000100
// (not used) (not used)
// input: { Z_in, S[1:0] , C_in , A[0], B[0] }
// Z 10011001 10010110 00000000 10011001 10011001 10010110 10010110 10011001
// input: { Z_in, S[1:0] , C_in , A[1:0], B[1:0] }
// Z 1010000010100000101000001010000010100000101000000000000000000000
// 0000000000000000000000000000000010100101101001011010010110100101
// 1010000010100000101000001010000010100000101000000000000000000000
// 1010010110100101000010100000101010100101101001011010010110100101
これ動かすことだけはできたが、全然ダメだ。遅くなって規模も増えた。
うまく合成してくれないのも理由のひとつではあるが、設計上の失敗がいくつかある。
ひとつの理由は、キャリーあり/なし を INDEX に組み込んでしまったこと。最下位ビットしか関係なく、テーブルが無駄になる。
もうひとつの理由は、1桁づつ計算すること。普通に加減算のコードを書くと、ISE は、2桁づつ計算するように合成するようだ。ISE にまかせた方がよさそうな気がする。
モジュール化自体は、規模が減ったし良かった。他にもやりたいことがあるので、今回は、これぐらいにしておこう。
もう少し検討してみる。
もう、テーブル引きによる演算はあきらめた。そんなことより、zero の検出の高速化の方が重要。
説明しておくと、rtavr での ボトルネックは、次のパスに決まっている。
S1 でブランチ命令をデコードしていて、1つ前の命令が 加減算中で Z Flag の確定を待って 次の PC(プログラムカウンタ)を確定させる。
加減算が一番遅く、現在は、その結果を元に Z Flag の計算をしているのだ。
Z Flag が早く確定すれば、ボトルネックが解消するのだ。
さて、加算で、結果が 0 になるケースを考えてみよう。
キャリー C_in が 1 のとき、(A ^ B) == 8'b11111111 ときだけ結果が 0 。
キャリー C_in が 0 なら (A ^ (B-1)) が 8'b11111111 のとき。
では、減算はどうだろう。
減算は、B の 2 の補数 を加算する。2 の補数は、(~B + 1) だから
C_in が 1 のとき、(A ^ (~B + 1)) == 8'b11111111 ときだけ結果が 0 。
C_in が 0 なら (A ^ (~B)) が 8'b11111111 のとき。これは、(A ^ B) == 0 に置き換えられる。
これをインプリメントしてみよう。... しかし 、ここまでするのなら演算自体もまとめられそうな ...
その前に仕様変更。
// S == 0 : ADD (wo carry)
// S == 1 : ADC (with carry)
// S == 2 : SBC (with carry)
// S == 3 : SUB (wo carry)
2 と 3 を入れ替えたほうが良さそうだ。
// S == 0 : ADD (wo carry)
// S == 1 : ADC (with carry)
// S == 2 : SUB (wo carry)
// S == 3 : SBC (with carry)
こうすることで、キャリー付きが S[0] & C_in で表現できる。
ALU_Z_TUNE_1
wire WC = (S[0] & C_in);
wire [8:0] F_a =
(~S[1]) ? ({1'b0, A} + {1'b0, B } + {8'b0, WC })
: ({1'b0, A} - {1'b0, B } - {8'b0, WC });
wire [7:0] R0 = (A ^ B);
wire [7:0] R1 = (A ^ (B-1));
wire [7:0] R2 = (A ^ (~B+1));
wire F_a_z = ~S[1] & WC & (R0 == 8'hff)
| ~S[1] &v ~WC & (R1 == 8'hff)
| S[1] & WC & (R2 == 8'hff)
| S[1] & ~WC & (R0 == 8'h00) ;
wire [7:0] F_l = (S[1:0] == 0) ? (A & B)
: (S[1:0] == 1) ? (A ^ B)
: (S[1:0] == 2) ? (A | B)
: B;
assign F = (~S[2]) ? F_a[7:0] : F_l[7:0];
assign C_out = (~S[2]) ? F_a[8] : C_in;
assign Z_out = (~S[2]) ? (Z_in | (S[1:0] != 3)) & F_a_z
: (S[1:0] == 3) & Z_in | (S[1:0] != 3) & (F_l == 0);
(V_out/H_out は変更なし)
これで +42 スライスも増えてしまった。そして肝心の性能は落ちたり... 上がったケースもあったのだが、どの変更が関係しているか分からなく...
さて、2 の補数を作っているところがある。もったいなく感じて、演算もまとめってみた。
wire [8:0] B2 = S[1] ? ~{1'b0, B} : {1'b0, B};
wire [8:0] B2I = B2 + 1;
wire [8:0] F_a = {1'b0, A} + (( S[1] ^ WC ) ? B2I : B2);
wire [7:0] R0 = (A ^ B);
wire [7:0] R1 = (A ^ (B-1));
wire [7:0] R2 = (A ^ B2I);
(あとは同じ)
この変更で、わずかに規模が増えて、さらに遅く.... なかなか難しいものだ。
wire F_a_z = (~S[1] & WC) ? (R0 == 8'hff)
: (~S[1] & ~WC) ? (R1 == 8'hff)
: ( S[1] & WC) ? (R2 == 8'hff)
: (R0 == 8'h00) ;
これに変えると、少し速くなった。だが、ノーマルより少し速いだけ。
(続く)
(旧)http://22lab.web.fc2.com/TTL_computer_07.htm
(新)
http://22lab.web.fc2.com/DESIGN/TTL_computer_07.htm
https://wakelet.com/wake/W7IIkOlb0a3SY9-z2c6h7
https://wakelet.com/wake/eaTus1p3fqocp5SMwxKhO
https://wakelet.com/wake/kxiKpib-mq-lsvUoD6NhZ
https://wakelet.com/wake/e9m3572zfQbMpoe5fWTzS
https://cdn.thingiverse.com/assets/86/a1/ee/0f/bc/raique997.html
https://cdn.thingiverse.com/assets/34/39/5c/81/bf/download-arialmt-font-windows-7-free.html
https://cdn.thingiverse.com/assets/6f/ae/c2/1c/c7/ziredavi878.html
https://cdn.thingiverse.com/assets/0a/03/e8/5d/8d/GameDownloadPUBGMOBILE100103105727123exefreedownload.html
https://phillichurtast.tumblr.com/post/664760149615968256/jab-harry-met-sejal-in-hindi-720p-download
https://smartchatapps.com/post/3505_kitab-ta-039-lim-muta-039-alim-pdf-kitab-mutaallim-kitab-talim-mutaalim-pdf-kita.html
https://yaapoo.com/post/43508_automation-studio-5-7-torrent-torrent-automation-studio-automation-studio-downlo.html
https://www.nexxaz.com/read-blog/1183
https://peaceful-jang-4b3f0c.netlify.app/Mod-Organizer-Merge-Modsl
https://s3.amazonaws.com/media.muckrack.com/portfolio/items/14845750/bollettini-postali-pro-ter-30-crack.pdf
https://distracted-kepler-bd8be2.netlify.app/mehmet-h-omurtag-dinamik-pdf-89
http://thromimgilar.blogg.se/2021/november/mac-foundation-shades-for-fair-skin.html
https://wakelet.com/wake/xXamIAkUuhLPLe-XeITZT
https://wakelet.com/wake/-3JWwvOvQN2ccBxy189l7
https://wakelet.com/wake/yff_Zg6AcFDvoLN1BeN09
https://wakelet.com/wake/12KUZBncKKDnsFhkB7W8W
https://coub.com/stories/2696075-waste-watch-pei-sorting-guide-rhimjone
https://coub.com/stories/2696073-kmspico-10-1-8-final-portable-office-and-windows-10-activator-download-best
https://coub.com/stories/2696072-the-martian-streaming-vostfr-axeray
https://coub.com/stories/2696071-filmorago-pro-download-v-moddude-__link__
https://wakelet.com/wake/bVGYk2_wh3K-NwyrlAzhk
https://wakelet.com/wake/fsLh6F5z5ZUR3AAuIvqB_
https://wakelet.com/wake/qtSx_bH5s5h9cOmlzdJJ1
https://wakelet.com/wake/JJz_v_fhkIFGRvu3DQzKA
https://wakelet.com/wake/h9M9aoKmYFIs69sJLd9_1
https://wakelet.com/wake/xnHehw5gdvzX-YthleNJC
https://wakelet.com/wake/1UCEz_Fz1e4uHk9CCH6Zb
https://wakelet.com/wake/mdyMpm3-buboqov8FBLi9
https://wakelet.com/wake/K9d_k8Iq4dfHYEAyEntRE
https://wakelet.com/wake/z1KC9OORVC1gNs2Wvw8Py
https://wakelet.com/wake/6QBJrbVuLbLosN_U8RhHq
https://wakelet.com/wake/-uxJoCY2uyAqhRAYyeV1h
https://wakelet.com/wake/JcyDx15e794nnmWgUigY1
https://wakelet.com/wake/kfada_lmN-TODeKFyhcG_
https://wakelet.com/wake/G_GMgjvJYO18W-lCalZiF
https://wakelet.com/wake/IS3BmZP9ElSYVawse0bTh
https://coub.com/stories/2736723-2021-direkt-2-neu-testy
https://coub.com/stories/2736726-earth-magic-oracle-cards-meanings-derrjeny
https://coub.com/stories/2736727-ch-16-hby-pdf-google-drive-janavai
https://coub.com/stories/2736732-datei-herunterladen-antilopen_gang-adrenochrom-20-rar-102-11-mb-in-free-mode-turbobit-hot
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCAxKGVCQwLEgZDb3Vyc2UYgIDAgNH8owsMCxIIQWN0aXZpdHkYgIDAkInxzwkMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCAk_XYCgwLEgZDb3Vyc2UYgIDA4KCFpQoMCxIIQWN0aXZpdHkYgIDA0MCMlggMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMDA-__iCgwLEgZDb3Vyc2UYgICAn4Ts4QkMCxIIQWN0aXZpdHkYgIDAoNKDlgkMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCAwamXCgwLEgZDb3Vyc2UYgIDAgJKOjggMCxIIQWN0aXZpdHkYgIDAoJKzxwgMogEQNTcyODg4NTg4Mjc0ODkyOA
https://wakelet.com/wake/dGtuQUHVXfviQSaMyRs2a
https://wakelet.com/wake/n-ZJR4uachg12BwDBf9S0
https://wakelet.com/wake/sitv6aRosMYj_-YjsbwE0
https://wakelet.com/wake/bhPjsR0ZJIxB6wa6QJYNz
https://wakelet.com/wake/FSCWpJNNaz3Wp2o-Hohah
https://wakelet.com/wake/yFEeP-bYRO74d6G7X16oI
https://wakelet.com/wake/hyJYTR1gPu8SLH0cboCl9
https://wakelet.com/wake/WJ1wjIBSRhwXUIaB85jrR
https://wakelet.com/wake/dqXzTuSiMZQP_PSZXNQ1-
https://wakelet.com/wake/1xzkToBQuJYHnWZisbRcJ
https://wakelet.com/wake/WPNmkxpTNYj1yJeww_iQC
https://wakelet.com/wake/RIfmvvaiDfRQEDwuwtC40
https://coub.com/stories/2757913-free-piano-sheet-music-for-the-theme-song-from-up-maurmic
https://coub.com/stories/2757912-exclusive-virtual-dj-le-lite-v7-0-2-serial-number-20
https://coub.com/stories/2757909-download-file-adrianac_022b-mp4-rar-367-54-mb-in-free-mode-turbobit-net-covdaw
https://coub.com/stories/2757910-zookeeper-movie-in-hindi-dubbed-free-380-sunothm
https://wakelet.com/wake/xn3MTOaPFnlmbk9Hpnhbu
https://wakelet.com/wake/k7k-jOhCxEZ16XtPdGAuu
https://wakelet.com/wake/qjzgFl9ZUKJGRPWdA0RrG
https://wakelet.com/wake/TvJpbLI2GZXjwNa6mP9gy
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMDA58yCCgwLEgZDb3Vyc2UYgICAv8HRjgkMCxIIQWN0aXZpdHkYgICA__yNmgsMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgIDfi8fXCAwLEgZDb3Vyc2UYgICA_8bRngsMCxIIQWN0aXZpdHkYgIDAwNOKmAkMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMDAl9bBCAwLEgZDb3Vyc2UYgICA_6T7nQsMCxIIQWN0aXZpdHkYgIDAoOKJgwoMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgICfq-jbCAwLEgZDb3Vyc2UYgIDAgL-K0woMCxIIQWN0aXZpdHkYgIDA4OWB8ggMogEQNTcyODg4NTg4Mjc0ODkyOA
https://coub.com/stories/2824032-xln-audio-addictive-drums-2-0-0-r2r-serial-key-updated
https://coub.com/stories/2824031-the-plant-paradox-pdf-verified
https://coub.com/stories/2824030-best-traveller-intermediate-b1-workbook-answer-key-12
https://coub.com/stories/2824029-realismo-e-impressionismo-pdf
https://wakelet.com/wake/kZM3meL_OlUYW3d9nR_u9
https://wakelet.com/wake/Mf_R6CuIG2tWrPkwl1mYv
https://wakelet.com/wake/waao9qbs7gbkuHltblcZC
https://wakelet.com/wake/Jq4IspgSyeQGa480QLvmE
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCA0svqCwwLEgZDb3Vyc2UYgIDAgKHVgAsMCxIIQWN0aXZpdHkYgIDA4O_ThgoMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMDAzN6nCAwLEgZDb3Vyc2UYgIDAwNWk4QkMCxIIQWN0aXZpdHkYgIDA4PXKiwoMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgICfm7_WCwwLEgZDb3Vyc2UYgIDAwJe4rgkMCxIIQWN0aXZpdHkYgIDAoPHipwkMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCQ06mACwwLEgZDb3Vyc2UYgIDA0Nyt1AsMCxIIQWN0aXZpdHkYgIDAoImvuwgMogEQNTcyODg4NTg4Mjc0ODkyOA
https://coub.com/stories/3116600-verified-cyberlink-colordirector-ultra-8-0-2320-0-crack
https://coub.com/stories/3112958-link-shyama-sundara-kera-kedara-bhoomi-mp3-songs-free-downloading
https://coub.com/stories/3112957-portable-telecharger-mixcraft-6-gratuit-avec-82
https://coub.com/stories/3112956-hd-online-player-the-god-must-be-crazy-2-verified-full-movie-d
https://wakelet.com/wake/C3keZKGdxAVO0Rwy7eITK
https://wakelet.com/wake/6dg0617kDjfH_taPXK0dt
https://wakelet.com/wake/rddP4c7XeRxWxPQXymoEj
https://wakelet.com/wake/1NN0x_qatZwgtcbegUKR1
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCAkfTaCgwLEgZDb3Vyc2UYgICA_8SB_AsMCxIIQWN0aXZpdHkYgIDAkKrTwwkMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgID_wN6UCAwLEgZDb3Vyc2UYgIDAgMT62AkMCxIIQWN0aXZpdHkYgIDAoLGLmQgMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgICfxP23CwwLEgZDb3Vyc2UYgICAv_-B8goMCxIIQWN0aXZpdHkYgIDA4MzfyQkMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgIC_oa7VCQwLEgZDb3Vyc2UYgICAv4PN4AkMCxIIQWN0aXZpdHkYgIDAkKqz5AgMogEQNTcyODg4NTg4Mjc0ODkyOA
https://wakelet.com/wake/0UHZcEyFoBgVRAW7uX24o
https://wakelet.com/wake/yydpYu_QJ0-8y2j-NwYhI
https://wakelet.com/wake/8ueCf7zCbkHUJuPb2Tos1
https://wakelet.com/wake/QQhDC19CxwgxaYvUSkbsp
https://coub.com/stories/3141406-bitter-enchantment-yvonne-whittal-epub
https://coub.com/stories/3141407-top-adobephotoshoplightroomcc201565crackfreedownload
https://coub.com/stories/3141408-hot-chris-brown-love-more-mp3-download-320kbps
https://coub.com/stories/3141410-sketchup-pro-2018-v28-0-19911-crack-free-download-work
https://coub.com/stories/2962958-imposition-studio-4-8-5-keygen-99-routiere-decos-karat-dayfinn
https://coub.com/stories/2962957-exclusive-euro-truck-simulator-v1-3-full-game-download
https://coub.com/stories/2962952-peugeot-wip-nav-navteq-maps-2013-download-best
https://coub.com/stories/2962953-link-crack-sage-peachtree-complete-2009-fas-crystal-reports
https://coub.com/stories/2951094-gran-turismo-4-exe-full-version-for-pc-rar-upd
https://coub.com/stories/2951092-freedownloadcakewalkstudioinstrumentsfullversion-theovaha
https://coub.com/stories/2951091-emex-3-serial-key-lazhhal
https://coub.com/stories/2951090-wwe2k15pcsteamdownload-link
https://coub.com/stories/3104815-www-c700-com-animal-horse-quikap
https://coub.com/stories/3104813-adobe-cc-crack-latest-for-win-mac-free-download-upd
https://coub.com/stories/3104814-presonus-studio-one-pro-4-0-0-keygen-cracksmind-free-download-patched
https://coub.com/stories/3104811-updated-dual-audio-movies-hindi-english-720p-rise-of-the-zombie-1080p
https://coub.com/stories/2952553-link-egitimpsikolojisibinnuryesilyaprakpdf40
https://coub.com/stories/2959022-lion-king-cartoon-movie-in-urdu-free-download-work
https://coub.com/stories/2963967-wysiwyg-r36-kelyud
https://coub.com/stories/2963969-zenpoint-digital-center-5-0-crac-work
https://coub.com/stories/2974556-fullservicetoolv2000portable-cracked
https://coub.com/stories/2974553-vmware-workstation-6-5-3-185404-keygen-serial-key-keygen-otthall
https://coub.com/stories/2974551-top-jataka-alangaram-tamil-pdf-download-100
https://coub.com/stories/2974550-ekahausitesurveyactivation-free
https://coub.com/stories/2989274-primasoft-employee-phone-directory-deluxe-v4-0-incl-keygen-and-p-patched
https://coub.com/stories/2989270-dartfish-7-0-808
https://coub.com/stories/2989269-wii-virtual-console-super-mario-bros-3-wad-installer-pal
https://coub.com/stories/2989267-wings-xp-5-updated-crack-97
https://stocwalltsuknumgir.wixsite.com/checkverini/post/registration-ムム墫ム帯-ム-ムム�-ム-ムム毛-ム-ムム佯ム�-ムム墫-ム�-ムツオム-img_157992-imgsrc-ru-download-windows-64-rar
https://eloiseyoukhana869n.wixsite.com/asmelabcots/post/usps-ngdv-announcement
https://diafoodtoifran1981.wixsite.com/pacyctiltstor/post/amaanat-full-movie-in-hindi-hd-download
https://teguludrovuli.wixsite.com/gepetehap/post/32bit-young-boys-12-yb12-7-imgsrc-ru-pro-zip-nulled-windows-free
https://coub.com/stories/3513256-nicelabel-pro-5-keygen-__top__-43
https://coub.com/stories/3513255-bsi-stinger-30-crack-garbvir
https://coub.com/stories/3513257-mairlist-4-2-crack-dahijen
https://coub.com/stories/3482371-thetradingcodejasoncampdfdownload-updated
https://coub.com/stories/3480902-sankranthi-vachinde-tummeda-audio-song-_verified_-free-162
https://coub.com/stories/3480901-lauryn-hill-the-miseducation-of-lauryn-hill-full-album-zipgolkes-salyan
https://coub.com/stories/3480900-devil-may-cry-vergil-s-downfall-dlc-download-pc-ramdero
https://coub.com/stories/3480899-the-legend-of-bhagat-singh-1-english-sub-1080p-hd-movies-__exclusive__
https://coub.com/stories/3513998-groove-coverage-god-is-a-girl-acapella
https://coub.com/stories/3513997-saraswati-kavacham-telugu-pdf
https://coub.com/stories/3513995-wondershare-pdfelement-6-3-3-2780-keygen-2017-armaanpc-64-bit-ositgeor
https://coub.com/stories/3513993-download-free-the-buddham-sharanam-gachhami-movie-torrent
https://coub.com/stories/3276388-krishnacottage2movie-updated-download720phd
https://coub.com/stories/3276386-__hot__-driver-memup-feel-design-windows-7-14
https://coub.com/stories/3276384-intel64-family-6-model-37-stepping-5-driver-download-updated
https://coub.com/stories/3276380-download-programa-simplo-automotivo-serialgolkes42-bennheb
https://coub.com/stories/3234282-matlab-6-5-software-free-download-full-version-nicglor
https://coub.com/stories/3234280-dispensing-pharmacy-by-rm-mehta-ebook-download-elainag
https://coub.com/stories/3234279-__hot__-diablo-iii-v1029991-client-server-emulator-revolt
https://coub.com/stories/3234278-av-music-morpher-gold-5-0-58-serial-number-free-17-new
https://wakelet.com/wake/e5t24_pf5FTZWV2UnCtk1
https://wakelet.com/wake/Y8p7miSKpw-N1wCm4b20b
https://wakelet.com/wake/TR8iGE4Y_Zdp5bA5GO0B_
http://www.mendicinoinrete.org/2020/04/29/emergenza-covid-19-al-centro-della-seduta-del-consiglio-comunale-di-cosenza/
https://coub.com/stories/3263429-microsoft-playready-drm-crack-11-2021
https://coub.com/stories/3263428-delhi6-1-english-dubbed-hd-720p-filgis
https://coub.com/stories/3263427-autodesk-autocad-2008-portable-g8ni-92
https://grilledcheeseandchardonnay.com/recipes/celebrating-summer-with-the-bees-knees/
https://coub.com/stories/3223136-kaminey-verified-full-movie-download-in-hindi-1080p
https://coub.com/stories/3223134-tmpgenc-mpeg-smart-renderer-4-crack-14-talkac
https://coub.com/stories/3223128-mathworks-matlab-r2016b-win-iso-upd-download
http://awardleisureprojects.co.uk/a-guide-to-make-a-zen-garden/
https://coub.com/stories/3292881-ganga-bani-shola-4-download-720p-hd-eleamarm
https://coub.com/stories/3292879-nimhansneuropsychologicalbatterypdf-free
https://coub.com/stories/3292875-7-occult-money-rituals-the-keys-to-authentic-financial-magick-download-pdf-jainbar
https://chelino.co.za/product/base-z/
https://coub.com/stories/3311143-repack-discografia-completa-del-grupo-samuray
https://coub.com/stories/3311141-windows-7-sp1-tum-surumler-temmuz-2014-turkce-32-bitindir
https://coub.com/stories/3311137-verified-remo-tamil-movie-download-hd-1080p-kickass
http://blog.miyakooh.com/article/186182482.html
https://coub.com/stories/3314158-how-much-does-a-book-weigh-in-grams
https://coub.com/stories/3312100-toshiba-e-studio-211-driver-verified-download-for-windows-7
https://coub.com/stories/3312097-catholic-hymn-book-nigeria-pdf-download-portable
https://fsla.org/82293339_4835898466436186_7934357874929565696_n/
Hey, I hen I read those first words in my Instagram direct didn't know, so I was ... that I was fake or a bad Christian, but for some reason, I opened the DM with a.... 2 days ago How to fake any instagram DMs! Photoshop tutorial This is a fun tick and a good way to learn how to use the basics of photoshop ... 11 months... df76b833ed gisejame
https://www.kaggle.com/irinidgrad/myob-accounting-plus-10-5-2-full-ve-work
https://www.kaggle.com/leanhodesign/volume-amplifier-ios-7-crack-full-ed
https://www.kaggle.com/werdeterpots/tele-atlas-vdo-dayton-c-iq-supercode-keygen-full
https://www.kaggle.com/mayfleceasta/sex-story-in-bangla-link
https://www.kaggle.com/inmapficom/harry-potter-and-the-goblet-of-fire-watc-gilundu
Influencer marketing strategy template Track your progress and adjust your plan as needed. Bonus: Get a free social media strategy template to.... Jul 4, 2021 How to fake any instagram DMs! Photoshop tutorial This is a fun tick and a good way to learn how to use the basics of photoshop ... 11 months.... Download free templates in Excel, PowerPoint, PDF, and Google Sheets to use for social media strategy, calendar planning, and auditing.
http://www.pdscxdb.com/plus/guestbook.php