Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.51 MB, 58 trang )
Nam, ngoài ra cũng có thể mua được một số linh kiện tại một số cửa hàng trên địa
bàn Hà Nội. Các linh kiện của các hãng khác nhau có những cấu trúc khác nhau,
trong một hãng các họ khác nhau cũng được thiết kế với các cấu trúc khác nhau.
Mỗi họ đều có nhưng đặc tính riêng của nó. Trong đề tài này tôi lựa chọn chíp
APEX EP20K200EQC208 (thuộc họ APEX20K) của Altera bởi tính phù hợp của
nó đối với yêu cầu của đề tài và sự ổn định cao trong linh kiện của hãng Altera.
Tính năng
Số cổng
tối đa
Số cổng
tiêu
chuẩn
LE
(Logic
Element)
EP20K30E
EP20K60E
EP20K100
EP20K100E
EP20K160E
EP20K200
EP20K200E
EP20K300E
EP20K400
EP20K400E
EP20K600E
EP20K1000E
EP20K1500E
113000
162000
263000
263000
404000
526000
526000
728000
1052000
1052000
1537000
1772000
2392000
30000
60000
100000
100000
160000
200000
200000
300000
400000
400000
600000
1000000
1500000
1200
2560
4160
4160
6400
8320
8320
11520
16640
16640
24320
38400
51840
ESB
(Embedded
System
Block)
12
16
26
26
40
52
52
72
104
104
152
160
216
Số bit
RAM
tối đa
Số
macrocell
tối đa
I/O
Num
Max
24576
32768
53248
53248
81920
106496
106496
147456
212992
212992
311296
327680
442368
192
256
416
416
640
832
832
1152
1664
1664
2432
2560
3456
128
196
252
246
316
382
376
408
502
488
588
708
808
Hình 2.12: Một số thông số cơ bản của APEX EP20K
APEX20K chứa các khối chính sau: LUT-based logic, Product-Term-based
logic, và bộ nhớ. Các tín hiệu được trao đổi bên trong nhờ kết nối trong FastTrack
(một ma trận dây liên tục gồm hàng và cột chạy dọc theo chiều ngang và dọc của
thiết bị).
Mỗi chân lối vào được chỉ dẫn bởi một IOE (I/O Element) đặt ở đầu cuối
của mỗi hàng và cột của kết nối trong FastTrack. Mỗi IOE chứa một bộ đệm hai
hướng vào ra, một thanh ghi được sử dụng như là thanh ghi lối vào, lối ra hoặc hai
16
hướng của tín hiệu. Khi sử dụng các chân clock chuyên dụng thì thanh ghi này
cung cấp cho các thực thi đặc biệt.
Hình 2.13: Sơ đồ khối thiết bị APEX 20K
Các chíp trong họ EP20K được thiết kế với một chuỗi kiến trúc MegaLAB.
Một MegaLAB bao gồm 16 LAB, một ESB và một kết nối trong MegaLAB. Các
đời cao hơn trong EP20K có thể có nhiều LAB hơn trong một MegaLAB, tín hiệu
liên kết giữa MegaLAB và các chân vào ra đuợc thực hiện bởi kết nối nội
FastTrack.
Hình 2.14: Cấu trúc của MegaLAB
17
Như ở trên chúng ta thấy một LAB gồm 10 LE, các bộ kết nối trong cục bộ
của MegaLAB, và các tín hiệu điều khiển LAB.
LE là đơn vị logic nhỏ nhất trong kiến trúc của EP20K, mỗi LE chứa 4 lối
vào LUT có chức năng thực hiện nhanh chóng bất cứ vai trò nào của 4 biến, LE có
thể dùng để điều khiên các kết nối cục bộ, kết nối MegaLAB hoặc kết nối
FastTrack.
Chương 3:
Bộ điều chế QAM
3.1 Tổng quan
Từ những kiến thức cơ bản có được, trong chương này, tôi tiến hành xây
dựng một bộ điều chế QAM-16 trên FPGA bằng ngôn ngữ thiết kế phần cứng
18
VHDL. Dữ liệu lối vào được lấy song song từ Kit phát dữ liệu một cách đồng bộ
còn tần số ký hiệu có thể thay đổi trong một phạm vi nhất định.
Toàn bộ quá trình được thực hiện với tín hiệu dạng số. Sau khi quá trình xử
lý số được tiến hành, dữ liệu QAM số sẽ được đưa ra DAC để có thể quan sát
được trên dao động ký.
3.2 Bộ điều chế QAM
3.2.1 Nguyên tắc thực hiện:
Phát lặp
dữ liệu
Khối điều chế QAM
Mã hóa QAM
Phát sin
Tín hiệu QAM
DAC
Thay đổi tần
số ký hiệu
Hình 3.1: Sơ đồ khối hệ thống
Bộ điều chế được xây dựng với sơ đồ khối như trên gồm:
- Khối lặp phát dữ liệu để tạo dữ liệu số đưa vào bộ điều chế
- Khối thay đổi tần số ký hiệu gồm các phím tăng giảm tần số để thay đổi
tần số trong một dải nhất định từ fc đến 10fc.
- Khối điều chế QAM: gồm các khối nhỏ như khối phát sóng mang để
tạo tín hiệu sin, cos số đưa vào điều chế, khối mã hóa QAM để tính toán biểu thức
QAM với dữ liệu nhận được và khối biến đổi DAC để chuyển đổi số-tương tự
nhằm tạo ra tín hiệu QAM có thế quan sát trên dao động kí.
3.2.2 Mô hình bộ điều chế QAM xây dựng:
Quá trình thực hiện được tiến hành trên 2 Kit với 2 chip FPGA là APEX II và
Cyclone II[3] của Altera với sơ đồ khối như sau:
19
APEX II
Clock 50M
Cyclone II
SPI
Phát lặp dữ liệu
I
Bộ tạo
sóng mang
Q
Quay 90 độ
∑
Thay đổi
tần số
Phát giả dữ liệu
DAC
Clock 11M
Hình 3.2: Mô hình QAM-16 được thiết lập
3.2.2.1 Khối phát lặp dữ liệu:
Sử dụng Kit DE2 của phòng thí nghiệm, phát 16 tín hiệu chọn bit có thể
thay đổi được bằng 16 công tắc gạt bên ngoài, trạng thái các bit của công tắc đều
được hiển thị trên led.
16 bit trạng thái của công tắc được phân thành 4 nhóm: A,B,C,D như Hình
9. Mỗi nhóm chứa 4 bit sẽ tạo thành một điểm chòm sao. Điểm chòm sao này sẽ
được tách ra, rồi đưa vào các kênh I,Q, mỗi kênh 2 bit (Hình 10). Các kênh I,Q
này sẽ được đưa sang chip APEX II để ánh xạ vào trường dữ liệu bằng phương
pháp truyền thông SPI.
B15
B14
B13
B12
B11
B6
B5
B9
B8
Nhóm C
Nhóm D
B7
B10
B4
B3
B2
B1
Nhóm A
Nhóm B
20
B0
Hình 3.3: Các nhóm bit trạng thái của công tắc
B3
B2
Q
B1
B0
I
Hình 3.4: Tách bit I,Q
3.2.2.2 Truyền thông nối tiếp SPI:
Truyền thông giữa hai chip sử dụng kỹ thuật truyền thông SPI có bắt tay.
Trong phương pháp này, Cyclone II sẽ kiểm tra chân vào Sync của mình, tới khi
chân này nhận được một sườn xung (âm hoặc dương) từ APEX II thông báo sẵn
sàng nhận (RR) thì Cyclone II sẽ truyền các bit I,Q lần lượt của các nhóm
A,B,C,D sang cho APEX II rồi đợi tín hiệu RR tiếp theo.
Truyền thông SPI vừa tạo ra sự đồng bộ giữa hai loại chip FPGA hoạt động
trong chu kỳ xung nhịp khác nhau vừa tạo ra sự độc lập tương đối giữa hai khối
chọn dữ liệu và điều chế. Nhờ có truyền thông SPI, tần số sóng mang có thể dễ
dàng thay đổi mà vẫn giữ được sự đồng bộ với khối ánh xạ ký hiệu. Ngược lại, ta
có thể tạo ra các chòm sao cấp cao hơn, có số bit lớn hơn đưa sang điều chế mà ko
gây ra nhiều thay đổi cho khối điều chế.
RR
Sync
Dữ liệu
I
Q
21
Ready
Hình 3.5: Truyền thông nối tiếp SPI
3.2.2.3 Bộ tạo sóng mang:
Nhằm mục đích tạo tín hiệu sin chuẩn để đưa vào điều chế. Do dữ liệu sin
số được xuất ra từ phần mềm PASCAL, mà phần mềm này lấy mẫu tín hiệu sin
đều nên nếu lấy mẫu cả một chu kì sin xử lý đưa ra DAC thì tín hiệu quan sát được
sẽ có dạng hình tam giác, không có độ cong của tín hiệu sin. Để khắc phục nhược
điểm này, chúng tôi tiến hành xuất ra 630 mẫu của một phần tư chu kì sin rồi lập
trình hiệu chỉnh lại trên FPGA để tạo ra đủ một chu kì sin với 2520 mẫu. Nguyên
tắc hiệu chỉnh được mô tả ở Hình 11:
Hình 3.6: Hiệu chỉnh sin
Do sóng các mẫu lấy từ tín hiệu sin trong PASCAL đều có giá trị nhỏ hơn 1
nên phải tiến hành nhân các tín hiệu đó với một hệ số thích hợp để tăng biên độ
sóng mang.
3.2.2.4 Bộ thay đổi tần số sóng mang:
Nhân tín hiệu từ hai nút điều khiển tăng giảm tần số có thể thay đổi tần số
trong dải từ fc đến 10fc. Bộ thay đổi tần số này tác động trực tiếp vào bộ phát sóng
mang để thay đổi tần số các sóng sin, cos được tạo ra. Nguyên tắc làm việc của bộ
thay đổi tần số là tăng/giảm số mẫu trong một chu kì sóng mang để thay đổi tần số
(Hình 12). Nguyên tắc của bộ thay đổi tần số sóng mang này giống với các bộ lấy
mẫu tăng, giảm.
Giảm
Tăng
22
Hình 3.7: Bộ thay đổi tần số sóng mang
Dễ thấy trong QAM, khi tần số sóng mang thay đổi sẽ làm thay đổi tần số
ký hiệu, sẽ ảnh hưởng đến khối phát lặp ký hiệu để ánh xạ lên trường dữ liệu. Tuy
nhiên, trong bộ phát QAM chúng tôi xây dựng, nhờ tính ưu việt của truyền thông
nối tiếp SPI có bắt tay như đã nói ở trên, tần số sóng mang cũng như ký hiệu có
thể thay đổi dễ dàng mà không ảnh hưởng gì khối phát lặp dữ liệu để tạo ký hiệu.
3.2.2.5 Bộ quay 90 độ:
Sóng mang số hình sin đưa vào đây sẽ được làm trễ đi 630 mẫu (1/4 chu kì)
để tạo ra sóng mang hình cos (lệch pha 90 độ với sóng mang hình sin). Sơ đồ của
bộ quay:
Trễ ¼ chu kì
Hình 3.8: Bộ quay pha 90 độ
3.2.2.6 Bộ nhân số:
Bộ nhân số nhân sóng mang với dữ liệu của kênh I hoặc Q mà ký hiệu ánh
xạ đến để tạo ra tín hiệu A Q(n) và AI(n) như phương trình 1.4. Bộ nhân số có dạng
như sau:
I
AI(n)
Q
(a)
AQ(n)
(b)
Hình 3.9: Bộ nhân số
23
Bộ nhân số thực hiện phép nhân dữ liệu số của kênh I với 2520 mẫu của
sóng mang hình sin và dữ liệu kênh Q với 2520 mẫu của sóng mang hình cos rồi
đưa kết quả ra bộ cộng.
3.2.2.7 Bộ cộng số:
Bộ cộng số thực hiện phép cộng số học các dữ liệu vừa được tính toán ở bộ
nhân để kết hợp các tín hiệu các kênh I,Q để tạo ra tín hiệu QAM. Ngoài ra, khi
sau khi cộng các tín hiệu I,Q do sóng mang có dạng hình sin nên chứa cả thành
phần âm, dương trong khi bộ biến đổi DAC bên ngoài chỉ nhận đúng các số dương
nên phải nâng thành phần một chiều của tín hiệu QAM số lên bằng cách cộng vào
nó một hằng số không đổi. Tín hiệu QAM số sau đó sẽ được đưa vào bộ chuyển
đổi DAC để tạo ra tín hiệu QAM quan sát được trên dao động ký.
AI(n)
`
QAM
Hằng số
AQ(n)
Hình 3.10: Bộ cộng số
3.3 Kết quả
- Tôi đã thực hiện phát thành công tín hiệu QAM trên chip FPGA APEX II
với các bit thông tin có thể thay đổi được bằng công tắc.
- Tần số sóng mang cũng như ký hiệu có thể thay đổi trong một dải nhất
định
- Kết quả đầu ra có thể quan sát dễ dàng trên dao động ký.
24
Chương 4:
Xử lý dấu phẩy động
4.1. Chuẩn dấu phẩy động IEEE:
25
Để thuận lợi cho việc tính toán các số nhị phân lớn, cộng đồng các kỹ sư
điện-điện tử(IEEE) đã nghiên cứu và đưa ra chuẩn IEEE 754 để xử lý dấu phấy
động nhị phân. Theo chuẩn này thì khung diễn tả một dấu phảy động phải có kích
thước chuẩn là 32 bit (độ chính xác đơn) và 64 bit (độ chính xác kép). Trong đề tài
này, chúng tôi xây dựng hệ thống để xử lý dấu phẩy động theo chuẩn 32 bit. Như
trong hình vẽ, khung 32 bit được chia thành ba nhóm riêng biệt: các bit thấp từ
bit0 đến bit22 dùng để xác định phần định trị(mantissa), các bit từ 23 đến 30 để
xác định số mũ, còn bit 31 là bit dấu.
Bit
dấu
Phần mũ
Phần định trị
Hình 4.1: Chuẩn phẩy động 32 bit của IEEE
Gọi số thập phân được hình thành từ chuẩn dấu phẩy động này là V, ta có
biểu thức:
V = (-1)S * M * 2E – 127
Với (-1)S biểu thị bit dấu (bit31: bit có trọng số lớn nhất trong khung). Ta
dễ dàng nhận thấy biểu thức này sẽ biểu diễn số dương nếu S=0 và ngược lại, sẽ
biểu diễn số âm khi S=1. Nhìn vào hình vẽ ta thấy, 8 bit từ bit 23 đến bit 30 biểu
diễn số mũ E, như vậy, E có thể thay đổi từ 0 đến 255. Sau khi trừ số mũ cho 127
theo đúng chuẩn thì sẽ cho phép số mũ chạy từ 2 -127 đến 2128. Các bit còn lại biểu
thị phần định trị M, phần định trị được hình thành từ 23 bit biểu diễn một phân số
dưới dạng nhị phân. Ví dụ: với số nhị phân 1,0101; có thể khai triển thành 1 + 0/2
+ ¼ + 0/8 + 1/16. Dấu phẩy động khi biểu diễn các phân số cũng được chuẩn hóa
như vậy. Chỉ có duy nhất một kí tự khác không bên trái dấu phẩy động, số đó
trong hệ 2 hiển nhiên là 1. Do vậy, bit đứng đầu phần định trị được mặc định là 1,
và bit đó được lưu trữ trong khung. Giả sử m 22, m21, …. m0 biểu thị 23 bit trong
khung chuẩn của IEEE thì số định trị M được hiểu là:
M = 1.m22.m21……m0.
26