Tải bản đầy đủ (.doc) (57 trang)

GIỚI THIỆU VỀ BỘ KIỂM SOÁT CID CHO THUÊ BAO CÓ ĐĂNG KÝ DỊCH VỤ CLI (2).doc

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 (415.28 KB, 57 trang )

LVTN: Bộ kiểm soát CID điện thoại GVHD: Nguyễn Quốc Tuấn
PHẦN A
CHƯƠNG I: GIỚI THIỆU VỀ BỘ KIỂM SOÁT CID CHO THUÊ BAO CÓ ĐĂNG KÝ
DỊCH VỤ CLI.
I..Tổng quát:
1..Mô tả:
Dòch vụ bổ sung CLI cung cấp phương tiện truyền thông tin nhận dạng cuộc gọi từ
thuê bao gọi cho thuê bao nhận cuộc gọi băng cách truy xuất tương tự.
Mọi cuộc gọi cho khách hàng có thuê bao dòch vụ CLI sẽ kích khởi việc nối thiết bò điều chế
tần số trung tâm với đường truy xuất của khách hàng. Thông tin nhận dạng CLI trên đường
dây trong giai đoạn thiết lập cuộc gọi. Thiết bò đầu cuối của khách hàng sẽ giải mã thông tin
này và truyền qua máy tính để chương trình xử lí và hiển thò lên màn hình.
2..Điều kiện cần:
Truyền dữ liệu từ tổng đài đến trạm cuối:
Hoạt động trên đường truyền âm thanh và xảy ra ở thời gian thiết lập cuộc gọi, trước
khi chuông reo, máy trạm cuối ở trạng thái gác máy.
Sử dụng cách truyền dữ liệu bằng tần âm thanh dựa vào phương thức điều chế ITU_TV23.
+Yêu cầu thiết bò ở hai đầu để truyền dữ liệu V23:
phía khách hàng có thuê bao dòch vụ này có một bộ điều chế có thể giải mã các tần
số V23.
II..Phương thức phục vụ:
1..Cung cấp:
Dòch vụ CLI (nhận dạng số của cuộc gọi đến) được cung cấp ở thuê bao.
2..Hoạt động tổng quát:
Truyền các dữ liệu trên điều chế V23 được thực hiện ở cấp đơn vò kiểm soát.
Phương thức kiểm soát cuộc gọi cơ bản thực hiện bắc cầu nối đến bộ điều chế, bộ này
truyền các thông tin trên tần số V23 khi thiết lập cuộc gọi đến khách hàng có thuê bao dòch
vụ này.
Truyền dữ liệu đến thiết bò đầu cuối của khách hàng phải tuân theo nghi thức được
mô tả trong tài liệu BELLCORE.
3..Huỷ bỏ:


Dòch vụ được huỷ bỏ bởi nhà khai thác dòch vụ.
4..Tính cước phí:
Cuộc gọi được tính cước phí như các cuộc gọi bình thường khác.
Cước thuê bao được cộng thêm khi có dòch vụ này.
III..Nghi thức truy xuất tín hiệu:
Thông tin được truyền cho trạm cuối tuân theo một chuẩn giao tiếp bao gồm ba lớp
như sau:
SVTH: Đỗ Chí Thành_Quách Thành Tính Trang 4
LVTN: Bộ kiểm soát CID điện thoại GVHD: Nguyễn Quốc Tuấn

-Lớp Presentation đònh nghóa dữ liệu được mã hóa và xây dựng như thế nào.
-Lớp Datalink mô tả cách phát hiện lỗi trên đường truyền và liên lạc từ đầu này đến đầu
kia.
-Lớp Physical đặc tả thuộc tính và yêu cầu của truyền dữ liệu tương tự.
1..Lớp Presentation:
Lớp này đặc tả hình thức và trình tự xuất hiện dữ liệu để đảm bảo giao tiếp đúng đắn.
Nó xác đònh dạng của mỗi byte và cách xây dựng các message.
+Qui luật mã hoá cho mỗi byte:
Nghi thức này sử dụng dữ liệu 8 bit được giới hạn bởi một bit star (0) và một bit stop (1).
+Qui luật mã hoá cho mỗi message:
Phối hợp các byte được dùng để truyền message gồm có loại message, chiều dài message,
dữ liệu và Word phát hiện lỗi.
Tất cả các field của message ( loại, chiều dài, dữ liệu) bắt đầu bằng CHANNEL
SEIZURE và MARK SIGNAL (logic 1) và tận cùng bằng CHECK.
1.CHANNEL SEIZURE SIGNAL bao gồm một khối 300 bit liên tục (bit “0” và “1”
xen kẽ nhau, đầu tiên là bit “0”, cuối cùng là bit “1”).
2.MARK SIGNAL bao gồm 180 bit “1” liên tục.
3.CHECK chứa một số bù 2 của tổng các byte trong message mod 256.
Các bit Mark bao gồm ít hơn 20 bit liên tục có thể được đưa vào giữa các field khác
nhau (T, V, L).

SVTH: Đỗ Chí Thành_Quách Thành Tính Trang 5
PRESENTETION
LAYER
DATA LINK
LAYER
PHYSICAL
LAYER
PRESENTETION
LAYER
DATA LINK
LAYER
PHYSICAL
LAYER
TRANSMISSION
STOP START
12
3
45678
DATA
First bit transmitted
CHECK MARK SIGNAL
V2
Mark bits
L2 V1T2 L1 T1 L
T
CHANNEL SEIZURE
Parameter 2 Parameter 1
Data
Level 1
Data level 2

LVTN: Bộ kiểm soát CID điện thoại GVHD: Nguyễn Quốc Tuấn
Các bit Mark không được truyền bởi E10. Vì mỗi thông số có thể đễ dàng được nhận
ra và phân biệt với nhau dựa vào loại thông tin và chiều dài thông số.
Các field khác gồm có:
-T: loại message, chứa một giá trò để nhận dạng message.
-L: chiều dài message, chỉ số byte của message, chiều dài tối đa 255.
-T1,T2: loại thông số, chứa một giá trò để nhận dạng thông số.
-L1,L2: chiều dài thông số.
2..Lớp Datalink:
Khả năng phát hiện lỗi được cung cấp nhờ byte kiểm tra CRC (Cyclic Redundancy
Check).
Checksum được tính bởi E10 và được gắn vào khối dữ liệu ở trạm cuối, máy tính lại
giá trò Checksum này giống như trên và so sánh nó với giá trò nhận được.
Nếu đầu cuối phát hiện có sự sai lệch, dữ liệu nhận được không hiển thò lên màn
hình.
Không có Message nào được giữ lại để báo lỗi đã được phát hiện.
Nghi thức này không cung cấp khả năng sửa lỗi và giữ lại thông báo.
3..Lớp Physical:
Kỹ thuật truyền trên băng tần âm thanh bất đồng bộ đơn công (Simplex) được dùng
để truyền dữ liệu đến trạm cuối.
Các thông số truyền dựa trên khuyến cáo ITU-TV23.
Đặc điểm chính như sau:
-Tốc độ: 1200 bit/s.
-Loại liên kết: chế độ đơn công (Simplex mode).
-Tần số điều chế:
FZ: 1300Hz +- 10Hz (Logic 1).
FA: 2100Hz+- 10Hz (Logic 0).
-Mức truyền: -7dB+-1.5dB.
-Trong quá trình truyền, trạm cuối ở mức trở kháng thấp.
-Dữ liệu: nối tiếp, bất đồng bộ.

4..Đònh thời:
Truyền dữ liệu được phối hợp với tín hiệu chuông và xảy ra trước lúc chuông reo.
Trạm cuối ở trạng thái “on hook”.
Message được truyền đi trong khoảng thời gian giữa xung chuông đầu tiên và mẫu
xung cho chuông.
Chế độ đònh thời được xác đònh như sau:
a..Bước A:
Tương ứng với thòi gian trôi qua giữa lúc thiết lập đường dẫn âm tần và cạnh lên của
tín hiệu chuông thứ nhất.
b..Bước B:
SVTH: Đỗ Chí Thành_Quách Thành Tính Trang 6
D
V23
B
CA
E
LVTN: Bộ kiểm soát CID điện thoại GVHD: Nguyễn Quốc Tuấn
Tín hiệu báo xung chuông đầu tiên. Bước này cần để đánh thức bộ giải điều chế đặt ở
phía trạm cuối (min: 200ms, max: 300ms).
c..Bước C: thời gian chờ đợi:
Quãng delay này cần để đảm bảo rằng trạm cuối có đủ thời gian để chuyển sang mức
trở kháng thấp (min: 500ms, max: 700ms).
d..Bước D:
Truyền dữ liệu dựa trên điều chế V23. Bước này không vượt quá 3s.
e..Bước E: cho phép trạm cuối chuyển lại mức trở kháng cao.
Bước này cần để tránh hư hỏng ở phía thiết bò đầu cuối khi đang gửi dòng điện reo
chuông (min: 200ms, max: 400ms ).
f..Bước F:
Tín hiệu chuông thứ hai trong chu kì chuông.
5..Message và giải mã thông số:

a..Loại của message:
Message này được truyền đến thuê bao ở bước D gồm những thông số: +Ngày và thời
gian.
+Số cuộc gọi (CLI)hoặc lí do không có của CLI.
-Byte 1: loại của message (T): HGFEDCBA=10000000.
-Byte 2: chiều dài của message (L): HGFEDCBA=giá trò chiều dài.
b..Loại của thông số:
@. Thông số ngày và thời gian:
-Byte 1: loại của thông số (T): HGFEDCBA=00000001: ngày và thời gian.
-Byte 2: chiều dài của thông số (L): HGFEDCBA=00001000 :8 byte.
Tám byte cần thiết để giải mã thông số ngày và thời gian.
+Dùng mã ASCII để giải mã và cấu trúc như sau:
-Byte 3,4: HGFEDCBA=Month
-Byte 5,6: HGFEDCBA=Day
-Byte 7,8: HGFEDCBA=Hours
-Byte 9,10: HGFEDCBA=Minutes
SVTH: Đỗ Chí Thành_Quách Thành Tính Trang 7
8 7 6 5 4 3 2 1
AB
C
DEFGH
Loại của message (T)
Chiều dài của message
Byte 1
Byte 2
LVTN: Bộ kiểm soát CID điện thoại GVHD: Nguyễn Quốc Tuấn
@. Thông số của cuộc gọi:
-Byte 1: loại của thông số:
HGFEDCBA=00000010: loại thông số của cuộc gọi.
-Byte 2: chiều dài

HGFEDCBA= tối đa 18 số
-Byte 3 đến 20: danh sách của số.
@. Trường hợp không có thông số CLI:
SVTH: Đỗ Chí Thành_Quách Thành Tính Trang 8
8 7 6 5 4 3 2 1
AB
C
DEFGH
Loại của thông số (T)
Chiều dài của thông số (L)
Byte 1
Byte 2
Chiều dài của thông số (V)
… … …
Chiều dài của thông số (V)
Chiều dài của thông số (V)
Byte 3
Byte 4
Byte 10
8 7 6 5 4 3 2 1
AB
C
DEFGH
Loại của thông số (T)
Chiều dài của thông số (L)
Byte 1
Byte 2
Lý do không có thông số CLI Byte 3
8 7 6 5 4 3 2 1
AB

C
DEFGH
Loại của thông số (T)
Chiều dài của thông số (L)
Byte 1
Byte 2
Số thứ nhất
… … …
Số thứ 18
Số thứ hai
Byte 3
Byte 4
LVTN: Bộ kiểm soát CID điện thoại GVHD: Nguyễn Quốc Tuấn
-Byte 1: loại của thông số
HGFEDCBA=00000100: lí do không có thông số CLI.
-Byte 2: chiều dài.
-Byte 3: hiển thò lí do không có:
Giá trò 0: không có giá trò.
Giá trò P: vô danh hoặc hạn chế cuộc gọi.
SVTH: Đỗ Chí Thành_Quách Thành Tính Trang 9
LVTN: Bộ kiểm soát CID điện thoại GVHD: Nguyễn Quốc Tuấn
CHƯƠNG II: TOPDOWN DESIGN, FPGA VÀ VHDL.
I..P hương pháp luận thiết kế :
Mục đích của phần này là đưa ra một cái nhìn tổng quát về VHDL và phương pháp để
nó có thể được sử dụng trong thực tiễn thiết kế. Những nhận thức khác nhau của một ngôn
ngữ, như ngôn ngữ của phần cứng và ngôn ngữ của phần mềm thì phụ thuộc lẫn nhau. Một
kiến thức chung của hầu hết các ngôn ngữ thì rất cần thiết trước khi nó được đề xuất, những
nhận thức đã được mô tả rất chi tiết. Phần này cung cấp một kiến thức cần thiết về VHDL để
tạo điều kiện cho sự hiểu biết những chi tiết của ngôn ngữ tạo thuận lợi cho việc lập trình.
Một cái nhìn tổng quát nữa, phần này cho thấy làm thế nào mà một người thiết kế có thể sử

dụng một cách thuận lợi VHDL và những công cụ sẵn có giúp cho việc tổ chức những ý
tưởng tốt hơn và cố gắng để quản lý việc thi hành những thiết kế lớn.
Trong quá trình thiết kế, trước hết chúng ta đưa ra một cái nhìn tổng quát về VHDL
và những thành phần của ngôn ngữ này, sau đó chúng ta sẽ mô tả qui trình Top-Down
design. Trong quá trình Top-Down design, chúng ta sẽ chỉ ra những mức độ khác nhau của
những ý niệm (cấu trúc, dòng dữ liệu và hành vi) trong VHDL, làm thế nào để mỗi mức độ
của những ý niệm đó có thể được sử dụng.
Việc xây dựng ngôn ngữ VHDL dành cho việc mô tả những thành phần của phần
cứng, việc gói gọn các bộ phận, sự có ích và hữu dụng của thư viện (library) và cho việc
truy cập đến những thư viện thiết kế. Do mục tiêu riêng của ngôn ngữ là dùng cho thiết kế
phần cứng. Cho nên nhiều phần đặc biệt trong ngôn ngữ VHDL được mô tả để tạo điều kiện
cho cách dùng này.
1..Phương pháp to p_down design :
Đối với những hệ thống lớn thì ta không thể mô tả hết tất cả các hành vi bên trong mà
ta phải phân chia ra nhiều thành phần và theo từng cấp khác nhau ta gọi là quá trình
top_down design.
Top_down design là phương pháp phân chia nhiều lần của hệ thống thành những
thành phần con của nó cho đến khi các thành phần con này ta có thể quản lý được. Một thành
phần có thể quản lý được nếu nó đã có sẵn trong thư viện ( nó có thể được mở rộng thêm từ
những thành phần trong thư viện) hoặc nó có thể được mô tả bằng chương trình tổng hợp
được viết bởi người thiết kế hoặc một phần cứng được tạo ra một cách tự động. Việc phân
chia đó có thể được mô tả như sau:
SVTH: Đỗ Chí Thành_Quách Thành Tính Trang 10
LVTN: Bộ kiểm soát CID điện thoại GVHD: Nguyễn Quốc Tuấn
Sau khi tiến hành phân cấp hệ thống thiết kế thì ta sẽ ánh xạ vào phần cứng. Việc
ánh xạ vào phần cứng phụ thuộc vào công nghệ cuối cùng, thư viện và công nghệ sẳn có.
Đối với những hệ thống có thể lập trình được thì từ công cụ sẵn có ta có thể sử dụng để tạo ra
các file lập trình thiết bò gọi là Design File. Một phần mềm được trang bò những công cụ tốt
và thư viện đầy đủ sẽ hổ trợ cho việc phân chia tốt hơn và hệ thống có những thành phần đơn
giản hơn, dễ dàng cho việc thiết kế. Như trong ví dụ trên thì bộ ALU được phân chia thành

phần con và từ những thành phần đó lại được phân chia thành những thành phần nhỏ hơn nữa
đến khi các thành phần ở các nút lá đã có trong thư viện hoặc ta có thể thiết kế chúng một
cách dễ dàng, đơn giản.
2..Kiểm nghiệm.
Đối với mỗi bước của quá trình Top-Down design, công việc mô phỏng những mức độ
khác nhau đóng một vai trò quan trọng trong việc kiểm nghiệm kết quả thiết kế.
Ta dùng phương pháp Top-Down design không chỉ để cho thiết kế dể hiểu, đơn giản,
dễ lập trình mà còn mô phỏng phải đúng thực tế, phải có kết quả như ta dùng các công nghệ
khác hoặc tốt hơn, ổn đònh hơn. Vì vậy khâu kiểm nghiệm thực tế là khâu rất quan trọng
trong quá trình thiết kế. Quá trình kiểm nghiệm phải được thực hiện liên tục theo từng bước
phân chia của quá trình Top-Down design .
II..Tìm hiểu về công nghệ FPGA: (Field Programmable Gate Arrays)
1..FPGA là gì?
Cũng giống như MPGA (Mask-Programed Gate Arrays), FPGA (Field Programmable
Gate Array) là một dãy các thành phần không có sự ràng buộc với nhau. Chúng có thể được
nối kết lại với nhau theo rất nhiều cách khác nhau. Giống như PAL (Programmable Array
Logic), sự kết nối giữa các thành phần trong FPGA là do người sử dụng lập trình. FPGA được
công ty Xilinx giới thiệu đầu tiên vào năm 1985. Sau đó nhiều FPGAs đã được một số công
ty khác giới thiệu như là Actel, Altera, Plessey, Plus, AMD, …
Một FPGA bao gồm 1 dãy hai chiều các khối logic. Các khối này có thể được nối lại
với nhau bởi 1 hệ thống liên kết có mặt trong toàn dãy. Việc kết nối được thực hiện bằng các
đoạn dây (segments of wire). Chiều dài các đoạn dây này có thể có nhiều kích cỡ khác nhau.
SVTH: Đỗ Chí Thành_Quách Thành Tính Trang 11
LVTN: Bộ kiểm soát CID điện thoại GVHD: Nguyễn Quốc Tuấn
Sự kết nối giữa các đoạn dây với nhau và giữa các đoạn dây với các khối logic thông qua các
công tắc có thể lập trình được (programmable switches). Các mạch logic được thực thi bằng
công nghệ FPGA này theo cách thức phân bổ logic vào từng khối logic (logic blocks) cụï thể,
sau đó nối các khối đó lại với nhau qua các công tắc có thể lập trình được.
Khối Logic: (logic block): cấu trúc và nội dung của logic block được gọi là kiến trúc
của khối. Kiến trúc của khối được thiết kế theo nhiều cách khác nhau, có loại có cấu trúc

khối đơn giản chỉ có 2-input NAND cũng có loại phức tạp hơn như là multiplexers hay lookup
tables. Đa số các logic block đều có một vài loại flipflop nhằm bổ sung cho việc thực thi các
mạch tuần tự.
Bộ kết nối: (interconnection resources): cấu trúc và nội dung của việc kết nối trong
FPGA được gọi là kiến trúc đường nối (routing architecture). Kiến trúc đường nối bao gồm
cả các đoạn dây (wire segments) và các công tắc (programmable swiches). Các công tắc này
được tạo ra bằng nhiều cách như là pass-transitor controlled, anti-fuses, EPROM transitor,
EEPROM transitor. Kiến trúc đường nối được thiết kế theo nhiều hướng khác nhau, một số
thì dùng một số lượng lớn các kết đơn giản giữa các block, số còn lại thì dùng ít số lượng
kết nối nhưng lại có tính phức tạp cao hơn.
2..Ưu, nhược điểm của công nghệ FPGA:
Ưu điểm: FPGA được sử dụng một cách có hiệu quả trong rất nhiều lãnh vực khác
nhau. So với công nghệ MPGA trước đó thì nó có 2 ưu điểm nổi bật là chi phí cho việc chế
tạo các mạch mẫu là thấp hơn rất nhiều, và thời gian sản xuất cũng được rút ngắn lại.
Nhược điểm: So với MPGA thì FPGA có 2 nhược điểm chính là tốc độ hoạt động của
mạch thấp hơn đáng kể, và độ tích hợp về logic thấp hơn. Mạch cha chậm hơn là do các
công tắc trong liên kết có trở kháng và dung kháng lớn. Độ tích hợp các cổng logic thấp hơn
cũng là do các công tắc vì sau khi chúng được lập trình, chúng sẽ chiếm nhiều thể tích hơn
trong con chíp so với các mối nối bằng kim loại trong công nghệ MPGA. Một nhược điểm
khác của FPGA là khi sản xuất với số lượng lớn, giá thành trên đơn vò sản phẩm sẽ cao hơn
so với dùng MPGA.
3..Các lãnh vực ứng dụng của FPGA:
FPGA có thể được sử dụng trong hầu hết các ứng dụng mà hiện tại đang dùng
trong các chip MPGA, PLD và SSI (Small Scale Integrated). Các ứng dụng của FPGA có thể
được liệt kê ra như sau:
Mạch tổ hợp đặc dụng ASIC (Application-Specific Integrated Circuit): FPGA là
một công cụ có tính tổng quát, và hoàn toàn có thể hiện thực được mạch logic số. Nó đặc
biệt thích hợp cho việc hiện thực ASIC. Một vài ứng dụng đã được ghi nhận như: 1 megabit
FIFO controller, kênh giao tiếp IBM PS/2, DRAM controller, graphic engine, mạch nhận biết
ký tự qua hình ảnh, …

Mạch hiện thực logic ngẫu nhiên (Implementation of Random Logic): trước đây
mạch logic ngẫu nhiên thường dùng PAL (PAL chạy nhanh hơn so với FPGA). Tuy nhiên,
trong những mạch logic mà tốc độ không phải là mối quan tâm hàng đầu thì FPGA được sử
dụng bởi vì hiện thực nó dễ dàng hơn PAL nhiều. Hiện nay một FPGA có thể hiện thực được
một mạch mà phải cần đến 10 đến 20 PAL mới hiện thực được. Trong tương lai ưu điểm này
của FPGA còn vượt xa hơn nữa.
SVTH: Đỗ Chí Thành_Quách Thành Tính Trang 12
LVTN: Bộ kiểm soát CID điện thoại GVHD: Nguyễn Quốc Tuấn
Thay thế các chip SSI cho mạch logic ngẫu nhiên: Những mạch hiện có trong
các sản phẩm thương mại thường chứa các chip SSI. Trong rất nhiều trường hợp, các chip này
có thể được thay thế bởi các FPGA. Việc dùng các FPGA có lợi là giảm đáng kể kích thước
các board mạch chứa các chip.
Xây dựng mạch mẫu (prototyping): FPGA là phương tiện lý tưởng cho việc
thiết kế các mạch mẫu. Chi phí thấp cho việc sản xuất cũng như thời gian thực thi trong thiết
kế tương đối ngắn đem lại nhiều thuận lợi to lớn so với phương pháp xây dựng mạch mẫu
truyền thống. Các mạch mẫu có thể được thay đổi và chỉnh sửa một cách nhanh chóng, dễ
dàng và không tốn nhiều chi phí.
ng dụng trong các máy tính dựa trên nền các FPGA: một loại máy tính mới
hoàn toàn được ra đời nhờ vào các FPGA có thể tái lập trình được ngay trên mạch của nó.
Những máy tính này bao gồm các mạch được thiết kế từ các FPGA. tưởng này xuất phát từ
việc dùng một chương trình phần mềm để “dòch” vào phần cứng thay vì vào phần mềm theo
cách thông thường. Phần cứng này sau đó được hiện thực bằng cách lập trình các board mạch
FPGA. Phương pháp mới này có 2 thuận lợi cơ bản là:
Không yêu cầu quá trình lấy lệnh như là các bộ vi xử lý truyền thống bởi vì
chính bản thân phần cứng là sự thể hiện của các lệnh đó. Ưu thế này có thể giúp cho
tốc độ của mạch tăng lên đến 100 lần.
Loại thiết bò mới này còn có thể hỗ trợ các quá trình xử lý song song ở mức độ
rất cao, dẫn đến tốc độ xử lý tăng vọt.
ng dụng vào việc tái cấu hình phần cứng (On- Site Re- Configuration of
Hardware): Công nghệ FPGA còn được yêu thích ở chỗ nó cho phép thay đổi được

cấu trúc các máy đã sản xuất hoàn chỉnh hay đã được xử dụng. Ngay cả đối với các
máy ở xa cũng có thể được thay đổi, bổ sung cho thích ứng hoặc ngay cả chỉnh sửa lại
sự sai sót của công việc thiết kế mạch đó. Loại FPGA thích hợp nhất cho việc tái cấu
hình này là loại chứa những công tắc có thể tái lập trtình được (re-programmable
switches).
SVTH: Đỗ Chí Thành_Quách Thành Tính Trang 13
LVTN: Bộ kiểm soát CID điện thoại GVHD: Nguyễn Quốc Tuấn
4..Quá trình hiện thực FPGA:
Môt người thiết kế muốn sử dụng tốt FPGA phải có được một hệ thống CAD
(Computer Aided Design) có hiệu quả. Hình 4 miêu tả các bước mà một hệ thống CAD điển
hình hiện thực một mạch FPGA.
Khối logic khởi đầu (initial logic entry): bước này có liên quan đến việc vẽ lược đồ
(sử dụng chương trình schematic capture), việc nhập vào sự miêu tả phần cứng bằng ngôn
ngữ VHDL, và việc đặc tả các biểu thức boolean. Bất kể nhập vào khối khởi đầu này bằng
cách nào, việc miêu tả mạch thường được chuyển sang một dạng chuẩn là các biểu thức
boolean.
Khối tối ưu hoá logic (logic optimization): các biểu thức boolean được đưa vào xử
lý khối này bởi một công cụ tối ưu hoá logic, mà nó có thể quản lý được các biểu thức
boolean đó. Mục tiêu của khối này là điều chỉnh các biểu thức đầu vào để tối ưu hoá kích
thước và tốc độ của mạch điện sau cùng. Sự kết hợp của những yêu cầu về tốc độ và kích
thước cũng được xem xét tại khối này. Việc tối ưu hóa này thường thể hiện bằng cách giảm
thiểu tối đa về mặt đại số của các biểu thức boolean. Các biểu thức sau khi được tối ưu hóa
có thể được hiện thực thành một mạch logic bằng bất kỳ phương tiện nào, chứ không phải chỉ
dùng FPGA.
SVTH: Đỗ Chí Thành_Quách Thành Tính Trang 14
Hệ thống
CAD
Khối logic khởi đầu
(Initial design logic)
Khối tối ưu hóa logic

(Logic optimization)
Khối ánh xạ vào công nghệ
(Technology mapping)
Khối sắp xếp vò trí
(Placement)
Khối tạo liên kết
(Routing)
Khối lập trình
(Programing unit)
FPGA
(được cấu hình)
LVTN: Bộ kiểm soát CID điện thoại GVHD: Nguyễn Quốc Tuấn
Khối ánh xạ vào công nghệ (Technology mappy): Tại đây, các biểu thức boolean
(đã được tối ưu hóa) được biến đổi thành một mạch bao gồm các khối logic FPGA. Công
việc này được thực hiện nhờ vào một chương trình gọi là technology mapping program.
Việc ánh xạ có thể nhằm vào mục tiêu giảm thiểu số lượng tổng cộng các khối logic, tức tối
ưu hóa về mặt kích thước, hay giảm các giai đoạn của các khối logic để hạn chế thời gian
delay.
Khối sắp xếp vò trí (Placement): Nhiệm vụ của khối này là quyết đònh đặt mỗi
khối logic vào khối nào ở trong dãy FPGA. Một chương trình gọi là placement được sử dụng
để giải quyết vấn đề này. Giải thuật sắp xếp điển hình nhắm vào việc giảm thiểu chiều dài
tổng cộng các liên kết.
Khối tạo liên kết (Routing): đây là bước cuối cùng trong hệ thống CAD được thực
hiện bởi một phần mềm gọi là routing. Nó gán trò cho các đoạn dây và các con tắc để thành
lập nên những liên kết cần thiết giữa các khối logic với nhau. Phần mềm routing phải bảo
đảm được rằng 100% các mối liên kết đã được thiết lập, và thời gian delay trên các mối liên
kết đó phải được giảm thiểu.
Khối lập trình (programing unit): ngõ ra của hệ thống CAD sẽ được đưa vào khối
này để cấu hình cho chip FPGA. Quá trình hiện thực mạch trên FPGA có thể kéo dài từ vài
phút cho đến 1 giờ, tùy loại FPGA nào được sử dụng.

III..To ùm tắt sơ lược ngôn ngữ VHDL :
1..Giới thiệu:
Ngôn ngữ VHDL ra đời với mục đích phục vụ cho việc mô phỏng phần cứng. Nó tạo
ra sự liên kết chặt chẽ giữa máy tính và điện tử . Lónh vực ứng dụng quan trọng của ngôn ngữ
là mô tả phần cứng bằng sự tổng hợp . Nó cung cấp cho người thiết kế một cái nhìn tổng
quát vấn đề để việc thiết kế đạt hiệu quả nhanh chóng. Trong thời đại ngày nay sự kết hợp
giữa phần cứng và phần mềm là không thể thiếu được. Ngôn ngữ VHDL là một công cụ hỗ
trợ đắc lực cho việc nhúng phần cứng vào phần mềm tạo ra những sản phẩm điện tử có giá
trò một cách nhanh chóng và hiệu quả. Công nghệ FPGA là một bằng chứng chứng tỏ kỹ
thuật mới sẽ phát triển cấp trừu tượng về sự mô tả công cụ điện tử. Vì vậy mà các công nghệ
mới cần sự hổ trợ rộng rãi của các ngôn ngữ miêu tả phần cứng nhờ vào sự tổng hợp.
Tổng hợp là một quá trình cho phép sự mô tả hành vi sang sự mô tả cấu trúc mà mỗi
phần tử đại diện là một tài nguyên được xác đònh trước. Trong chu kỳ thiết kế, tổng hợp mô
tả là một trong các bước sau cùng. Chức năng chính của phần tử thiết kế phải được duy trì.
Kỹ thuật tổng hợp nhằm mục đích sắp xếp kết quả việc lựa chọn kiến trúc dựa vào tập hợp
các phần tử cơ bản. Một phần tử có thể đại diện cho một tài nguyên phần cứng hoặc một vài
ô nhớ chuẩn cho mạch tích hợp.
Tầm quan trọng của việc tổng hợp:
- Sự thuận lợi đầu tiên là cấp mô tả phần cứng được thể hiện ở mức mô tả cao hơn, sự ứng
dụng của người thiết kế càng ít việc chi tiết hóa mô tả. Việc đạt được từ sự trừu tượng
được là giảm bớt và rút gọn sự mô tả ban đầu, do đó sẽ làm thuận lợi việc debug của
chúng.
SVTH: Đỗ Chí Thành_Quách Thành Tính Trang 15
LVTN: Bộ kiểm soát CID điện thoại GVHD: Nguyễn Quốc Tuấn
- Càng trừu tượng ở các cấp thì càng có nhiều chức năng mô tả hơn. Sự tổng hợp ở phương
diện này sẽ làm ngắn con đường dẫn từ ý tưởng đến ứng dụng.
- Tổng hợp dẫn đến thông tin thiết kế an toàn hơn và được xem như là một nhãn chất
lượng trong chu trình thiết kế.
- Từ lúc tổng hợp làm giảm kích thước mô tả, nó cũng là phép cập nhật dể dàng hơn,
debug nhanh hơn và sự khám phá của việc lựa chọn kiến trúc rộng hơn.

- Phần lớn dòng mô tả phần cứng cùng với khả năng thông số hóa sẽ dẫn đến việc tạo thư
viện tài nguyên để sản sinh các thiết kế điện tử tốt hơn.
2..Các thành phần thiết kế chủ yếu trong ngôn ngữ VHDL:
Thiết kế bằng ngôn ngữ VHDL ta có thể thấy được trong ngôn ngữ có các đơn vò thiết
kế chủ yếu sau:
a..Entity:
Một thiết kế VHDL chứa đựng một hay nhiều entities. Entity mô tả một thực thể bao
gồm các giao diện bên ngoài như các ngõ inputs và outputs và thực hiện một chức năng đã
được đònh nghóa. Mỗi thiết kế thực thể gồm hai phần:
- Phần đặc tả thực thể : đònh nghóa các ngõ vào ra của thiết kế. Khi một thực thể
được sử dụng thì người sử dụng chỉ biết về thực thể như một hộp đen, chỉ biết
được ngõ vào ra, chức năng và cách thức hoạt động của nó, người sử dụng không
thể biết được cấu trúc bên trong.
- Phần kiến trúc: chỉ ra chức năng của thực thể, do người thiết kế mô tả.
Khai báo một Entity
Entity indentifier is
[ generic (generic_list)] [ port (port_list)]
entity_declarative_part
[ Begin
entity_Statement_part ]
end entity [entity_simple_name ];
VD :
entity AND is
A port (A,B : in BIT ; O : out BIT);
B end AND;
b..Architecture:
Đây là thành phần thứ yếu chỉ ra chức năng của một entity, mô tả chức năng, phương
thức hoạt động của một entity dưới một trong ba dạng là Structure, Data flow, Behavior.
Trong architecture có thể chứa các thành phần sau :
• Blocks: Nhóm các phát biểu đồng thời (concurrent statements) lại với nhau

• Signal assignment: Gán giá trò tính toán đến các tín hiệu hoặc các cổng giao tiếp
• Procedure calls: gọi giải thuật để tính và gán giá trò cho các tín hiệu
• Component instantiations: tạo ra một instance của thực thể để nối các cổng giao
tiếp với các tín hiệu hoặc các cổng giao tiếp của một thực thể đã được đònh nghóa
SVTH: Đỗ Chí Thành_Quách Thành Tính Trang 16
LVTN: Bộ kiểm soát CID điện thoại GVHD: Nguyễn Quốc Tuấn
• Processes: đònh nghóa một giải thuật tuần tự. Các phát biểu trong một process sẽ
thực thi tuần tự
Khai báo một architecture
Architcture identifier of entity_name is
architecture_declarative_part
Begin
Architecture_statement_part
End [ architecture_simple_name ];
VD: Mô tả Architecture của entity NAND dưới dạng structure.
Architecture STR of NAND is
Component INV
port( P : in BIT ; Q : out BIT);
end componant;
Componant AND
port( A,B : in BIT ; C :out BIT);
end componant
Begin
Vo : port map INV(C , ABAR);
No : port map AND(A , B , C);
End;
Mô tả Architecture của entity NAND dưới dạng data flow.
Architecture STR of NAND is
Begin
C <= not (A and B) ;

End;
Mô tả Architecture của entity NAND dưới dạng bihavior.
Architecture STR of NAND is
Begin
Process(A,B)
C <= not (A and B) ;
End process;
End;
c..Configuration:
Một confguration đặc tả một sự kết nối giữa một entity và architecture của nó.
Khai báo cấu hình :
Configuration identifier of entity_name is
Configuration_declarative_part
Block_configuration
End[configuration][configuration_simple_name];
d..Process:
SVTH: Đỗ Chí Thành_Quách Thành Tính Trang 17
LVTN: Bộ kiểm soát CID điện thoại GVHD: Nguyễn Quốc Tuấn
Process chứa đựng những phát biểu tuần tự để đònh nghóa thuật toán, thường dùng
trong đònh nghóa hành vi (bihavior) của một thực thể. Process là sự thể hiện phát biểu đồng
thời chứa nhiều phát biểu tuần tự. Process có thể có hoặc không có danh sách cảm nhận
(sensitivitynetlist).Trong process ta có thể dùng các phát biểu sau:
* Gán tín hiệu : tính toán giá trò và gán chúng cho các tín hiệu.
* Gọi thủ tục
* Gán biến
* Phát biểu If
* Phát biểu Case
* Phát biểu Loop
* Phát biểu Next
* Phát biểu exit

* Phát biểu Wait
* Phát biểu Null
Chức năng, và cú pháp của các phát biểu này sẽ được nói đến ở phần sau.
Khai báo processes:
[process_label :]
[postponed] process [(sensitivity_list)][is]
process_declarative_part
begin
process_statement_part
end [postponed] process [process_label];
e..Subprogram:
Giống như process chương trình con sử dụng phát biểu tuần tự. Có hai loại chương
trình con là functions và procedure. Function trả về giá trò đơn trực tiếp, Procedure trả về
0 hoặc giá trò thông qua giao diện. Chương trình con hữu dụng cho việc tính toán lặp vòng.
Chương trình con được khai báo trong package.
Khai báo chương trình con
Subprogram_Specification is
Subprogram_declarative_part
Begin
Subprogram_declarative_part
End [subprogram_kind][designator];
VD:
+Function: Tìm phần tử lớn nhất trong tập hợp.
Function LARGEST (TOTAL_NO : integer ; SET : PATTERN)
Return REAL is
Variable RETURN_VALUE : REAL := 0.0;
Begin
For K in SET’RANG loop
If SET(K) > RETURN_VALUE then
RETURN_VALUE := SET(K);

End if;
SVTH: Đỗ Chí Thành_Quách Thành Tính Trang 18
LVTN: Bộ kiểm soát CID điện thoại GVHD: Nguyễn Quốc Tuấn
End loop;
Return RETURN_VALUE;
End LARGEST;
+Procedure: Thực hiện khối toán học-so sánh đơn giản.
TYPE OP_CODE is (ADD,SUB,MUL,DIV,LT,LE,EQ);
Procedure ARITH_UNIT(A,B : in INTEGER; OP : in OP_CODE;
Z : out INTEGER; ZCOMP: out BOOLEAN) is
Begin
Case OP is
When ADD => Z:=A+B;
When SUB => Z:=A-B;
When MUL => Z:=A*B;
When DIV => Z:=A/B;
When LT => ZCOMP:=A<B;
When LE => ZCOMP:=A<=B;
When EQ => ZCOMP:=A=B;
End case;
End ARITH_UNIT;
f..Package:
Package cung cấp một cơ cấu tiện lợi cho việc lưu trữ và chia dữ liệu khi nhiều đơn
vò thiết kế muốn sử dụng. Packages đại diện cho phần mềm của thiết kế, nó chứa các phần
tử tiện ích cho người thiết kế. Một package gồm hai phần : phần khai báo và phần body .
Khai báo một package
Package package_name is
{ package_declarative_item }
end [package_name];
VD:

Package SYNTH_PACK is
Constant LOW2HIGH : TIME:=20 ns;
TYPE ALU_OP is (ADD,SUB,MUL,DIV,EQL);
Attribute PIPELINE : BOOLEAN;
TYPE MVL is (‘U’,’O’,’1’,’Z’);
TYPE MVL_VECTOR is array(NATURAL range<>) of MVL;
SubTYPE MY_ALU_OP is ALU_OP range ADD to DIV
Component NAND2
Port (A,B : in MVL; C: out MVL);
End component;
End SYNTH_PACK;
• Package body : chứa hành vi của chương trình con và giá trò của hàng số được
khai trong phần khai báo package và các phần khai báo khác.
Package body package_name is
SVTH: Đỗ Chí Thành_Quách Thành Tính Trang 19
LVTN: Bộ kiểm soát CID điện thoại GVHD: Nguyễn Quốc Tuấn
Package_body_declarative_part
End [package_body][package_name];
VD:
Package body PROGRAM_PACK is
Use WORK.TABLES.all;
Constant PROP_DELAY : TIME:=15ns;
Function “and”(L,R:MVL) return MVL is
Begin
Return TABLE_ANĐ(L,R);
End ”and”;
Procedure LOAD (singal ARRAY_NAME :inout MVL_VECTOR;
STR_BIT,STO_BIT: in INTEGER) is
Begin
procedure behaviour here.

End LOAD;
End PROGRAM_PACK;
3..Các đối tượng trong ngôn ngữ VHDL:
a..Hằng:
Giá trò của nó được xác đònh trong thời gian khởi tạo. Giá trò này không đổi trong
suốt quá trình thực thi. Tuy nhiên, khi đã khai báo bên trong một chương trình con,
các hằng được tính toán lại mỗi lần chương trình con được gọi nhưng vẫn không thay
đổi trong quá trình chương trình con thực thi.
b..Biến:
Giá trò của biến được cập nhật tức thời khi được gán. Biến có thể được khai báo
trong các chương trình con hoặc trong các quá trình và trong các quá trình tổng hợp,
nơi mà nó có thể suy ra các phần tử nhớ.
c..Tín hiệu:
Thay thế cho các dây dẫn trong thực tế ngôn ngữ VHDL dùng tín hiệu. Các tín
hiệu hiện hữu từ khi bắt đầu đến khi kết thúc quá trình tái tạo. Thông tin được trao
đổi giữa các thành phần chỉ đi qua các tín hiệu. Tín hiệu không chứa đựng giá trò như
các biến, nó có thể truy xuất dùng các thuộc tính, một giá trò hiện tại. Vì vậy phép
gán tín hiệu thể hiện giá trò hiện hành của tín hiệu được cập nhật một cách tức thời
bởi các tín hiệu khác.
4..Các kiểu dữ liệu được sử dụng:
a..Kiểu rời rạc: được đònh nghóa bởi danh sách tất cả các giá trò có thể có của kiểu
Cú pháp của một kiểu rời rạc là :
TYPE TYPE_name is (enumeration_literal
{ ,enumeration_literal});
VD:
TYPE COLOR is (BLUE,GREEN,YELLOW,RED);
SVTH: Đỗ Chí Thành_Quách Thành Tính Trang 20
LVTN: Bộ kiểm soát CID điện thoại GVHD: Nguyễn Quốc Tuấn
b..Kiểu integer:
Tầm trò của kiểu integer nằm trong khoảng(-47483647,2147483647)

Cú pháp của khai báo kiểu integer:
TYPE TYPE_name is range interger_range;
VD:
TYPE PERCENT is range -100 to 100;
c..Kiểu array:
Giống như một số ngôn ngữ cấp cao khác (C, Pascal,..) kiểu array trong VHDL là
một đối tượng chứa một dãy các phần tử cùng kiểu. Array chia làm hai loại
- Constrained array
Cú pháp:
TYPE array_TYPE_name is
Array (integer_range) of TYPE_name;
- Unconstrained array
Cú pháp:
TYPE array_TYPE_name is
Array (range_TYPE_name range<>) of element_TYPE_name;
Các thuộc tính của kiểu array là: left, right, high, low, length, range, reverse_range.
d..Kiểu record:
Một record là một tập hợp các field được đặt tên của nhiều kiểu khác nhau.
Cú pháp:
TYPE TYPE_name is
Record
Element_TYPE_declaration;
End record;
VD:
TYPE BYTE_AND_IX is
Record
BYTE : BIT_VECTOR (5 downto 0);
IX : integer range 0 to LEN;
End record;
e..Một số kiểu dữ liệu đònh nghóa trước của VHDL:

- Kiểu BOOLEAN: Nhận hai giá trò False và True với False<True, được dùng
cho các toán tử so sánh.
- Kiểu BIT : Nhận giá trò nhò phân ‘0’ và ‘1’.
- Kiểu CHARACTER : Nhận các giá trò trong tập kí tự của bảng mã ASCII.
- Kiểu INTEGER.
- Kiểu NATURAL : Là kiểu con của integer nhận giá trò không âm.
- Kiểu POSITIVE : Là kiểu con của integer nhận giá trò dương.
- Kiểu STRING : Là một kiểu unconstrained array của kiểu kí tự.
- Kiểu BIT_VECTOR : Là kiểu array of BIT.
SVTH: Đỗ Chí Thành_Quách Thành Tính Trang 21
LVTN: Bộ kiểm soát CID điện thoại GVHD: Nguyễn Quốc Tuấn
f..Một số kiểu dữ kiệu không hổ trợ FPGA Express:
- Kiểu Physical.
- Kiễu Floating Point.
- Kiểu Access.
- Kiểu File.
5..Các to án tử trong vhdl :
Ta có thể tóm tắt vào bảng sau:
Kiểu
Toán tử
Độ ưu tiên
Logical And Or Nand Nor Xor Lowest
Relational = /= < <= > >=
Adding + - &
Unary(sign) + -
Multiplying * / Mod Rem
Miscellaneous
** Abs Not Highest
6..Các phát biểu tuần tự:
- Phát biểu gán biến:

Cú pháp:
Target := Expression;
Target: phải là biến cùng kiểu với kiểu của biểu thức expression.
- Phát biểu gán tín hiệu:
Cú pháp :
Target <= Expression;
Target: phải là tín hiệu cùng kiểu với kiểu của biểu thức expression.
- Phát biểu điều kiện IF:
Cú pháp :
If condition then
{Sequential_statement}
{elsif condition then
{sequential_statement}}
[else
{sequential_statement}]
end if;
Phát biểu If phải có ít nhất 1 phát biểu tuần tự .
- Phát biểu chọn lựa case: dùng để thay thế cho phát biểu IF có nhiều phát biểu
ELSIF.
Cú pháp:
Case expression is
When choices => {sequential_statement}
{When choices => {sequential_statement}}
End case;
SVTH: Đỗ Chí Thành_Quách Thành Tính Trang 22
LVTN: Bộ kiểm soát CID điện thoại GVHD: Nguyễn Quốc Tuấn
Phát biểu Case hợp lệ nếu có một hoặc nhiều chọn lựa when .
- Phát biểu Loop:
Cú pháp:
[Label :][iteration_scheme] loop

{sequential_statement}
{next [label] [when condition];}
{exit [label] [when condition];}
end loop [label];
Phát biểu loop có 3 dạng:
+ phát biểu loop cơ bản: không có điều kiện nên chương trình sẽ thoát khỏi vòng
lặp khi gặp phát biểu Exit.
Cú pháp:
[Label :] loop
{sequential_statement}
end loop [label];
+ While .. loop : chương trình sẽ thoát khỏi vòng lặp khi điều kiện condition
không được thỏa.
Cú pháp:
[Label :] while condition loop
{sequential_statement}
end loop [label];
+ For .. loop: lặp với số vòng lặp được biết trước.
Cú pháp:
[Label :] for identifier in range loop
{sequential_statement}
end loop [label];
- Phát biểu Next: được dùng trong các vòng lặp, việc thực thi sẽ bỏ qua các lệnh
phía sau lệnh Next trong vòng lặp.
Cú pháp:
Next [label] [when condition];
- Phát biểu Exit: chương trình thoát khỏi vòng lặp khi gặp lệnh Exit.
Cú pháp:
Exit [label] [when condition];
- Gọi chương trình con:

+ Gọi thủ tục :
Procedure_name [([name =>] expression
{ , [name =>] expression})];
+ Gọi hàm :vì hàm trả về giá trò nên khi gọi ta phải đặt nó trong một expression.
Vd:
V := INVERT (V1) xor 1;
- Phát biểu Return: trả về giá trò khi hàm đã thực thi xong.
Cú pháp :
Return expression ; (dùng cho function)
SVTH: Đỗ Chí Thành_Quách Thành Tính Trang 23
LVTN: Bộ kiểm soát CID điện thoại GVHD: Nguyễn Quốc Tuấn
Return ; (dùng cho procedure)
- Phát biểu Wait: khi gặp phát biểu này thì việc thực thi sẽ dừng lại đến khi điều
kiện được thỏa.
Cú pháp :
+ Wait until signal = value;
+ Wait until signal'event
and signal = value;
+ Wait until not signal'stable
and signal = value;
- Phát biểu Null: là phát biểu tường minh, khi gặp phát biểu thì chương trình không
làm gì cả.
Cú pháp :
Null;
7..Phát biểu đồng thời:
Các phát biểu đồng thời được đặt ở vò trí giữa Begin và End của phần Architecture.
- Phát biểu process:
Cú pháp như đã trình bày.
- Phát biểu block :
Cú pháp:

Label : block
{block_declarative_item}
Begin
{concurrent_statement}
end block [label];
- Gọi thủ tục: tương tự như trong phát biểu tuần tự, nhưng được gọi trong một khối
(block) hoặc trong một kiến trúc (architecture).
- Gán tín hiệu đồng thời:
Cú pháp:
Target <= expression;
- Gán tín hiệu điều kiện:
Cú pháp:
Target <= {expresion when condition else}
expresion;
- Gán tín hiệu chọn lựa:
Cú pháp:
With choice_expression select
Target <= {exprssion when choices, }
expression when choices;
- Component instantiation : Tham khảo đến một thành phần phần cứng được đònh
nghóa trước.
Cú pháp:
Instance_name : Component_name port map (
SVTH: Đỗ Chí Thành_Quách Thành Tính Trang 24
LVTN: Bộ kiểm soát CID điện thoại GVHD: Nguyễn Quốc Tuấn
[port_name => ] expression
{, [port_name =>] expression});
- Generate statement : có 2 loại:
+ For .. generate statement
Cú pháp:

Label : For identifier in range generate
{concurrent_statement}
end generate [label];
+ If .. generate statement:
Cú pháp :
Label : If expression generate
{concurrent_statement}
end generate [label];
SVTH: Đỗ Chí Thành_Quách Thành Tính Trang 25
LVTN: Bộ kiểm soát CID điện thoại GVHD: Nguyễn Quốc Tuấn
CHƯƠNG III
GIỚI THIỆU PHẦN MỀM XILINX FOUNDATION Series 2.1i
I..Yêu cầu phần cứng:
+Bộ xử lý Pentium Pro trở lên.
+Hệ điều hành Window 9x hay NT4.0 trở lên.
+Tốc độ xung 120MHz trở lên.
+Bộ nhớ chính 48MB trở lên.
+Swap file 48MB trở lên.
+Không gian đóa cứng trống 2GB.
+Màn hình SVGA 17” trở lên.
+CD ROM 4x trở lên (optional).
+Bàn phím.
+Chuột hai hay ba nút nhấn.
Chú ý: Nếu cấu hình máy thấp hơn yêu cầu thì thời gian chạy chương trình sẽ lâu hơn.
II..Cài đặt chương trình:
1..Có đóa CD source chương trình ở ổ CD ví dụ ổ E. Chọn Start-Run, gõ vào lệnh
E:\setup.exe.
2..Làm theo các hướng dẫn trên màn hình.
Chú ý : ta chọn các option (xem hình sau)
Ta chọn họ XC4000XL để cài đặt:

SVTH: Đỗ Chí Thành_Quách Thành Tính Trang 26
LVTN: Bộ kiểm soát CID điện thoại GVHD: Nguyễn Quốc Tuấn
Trong quá trình cài đặt phần mềm yêu cầu Name, Company, và CDKey. Điều này
có nghóa là người sử dụng phải được cấp bản quyền sử dụng phần mềm.
III..Sơ lược về cách sử dụng chương trình:
1..Tạo project:
SVTH: Đỗ Chí Thành_Quách Thành Tính Trang 27
LVTN: Bộ kiểm soát CID điện thoại GVHD: Nguyễn Quốc Tuấn
Sau khi cài đặt, sẽ xuất hiện link trên menu Start và một biểu tượng Project
Manager trên desktop. Kích đôi vào biểu tượng này để chạy chương trình.
Trên màn hình sẽ hiện bảng thông báo yêu cầu mở một project có sẵn hay là tạo một
project mới. Ví dụ ở đây ta chọn tạo một project mới. Nhập vào tên của project là add4bit,
chọn thiết kế theo VHDL, kích vào OK.
2..Nhập chương trình:
Kích vào biểu tượng trên lưu đồ thiết kế trên màn hình ở phần Design Entry, hoặc
kích Tool-Design Entry-HDL Editor. Một cửa sổ hiện ra yêu cầu chọn các option sau: tạo
tài liệu rỗng, mở tài liệu có sẵn hay là chọn thiết kế dùng Wizard. Theo cách truyền thống,
ta có thể chọn thiết kế HDL, ta chọn Create Empty và kích OK. Một window trống xuất
hiện chờ ta nhập chương trình vào.
Ta gõ vào chương trình cộng hai số tám bit như sau:
Library dls_ieee;
Use dls_ieee.std_logic_1164.all;
Use dls_ieee.std_logic_arith.all;
entity add4bit is
port ( a,b : in std_logic_vector(0 to 7);
clk : in std_logic;
reset : in std_logic;
cout : out std_logic;
result : out std_logic_vector(0 to 7)
);

end add4bit;
architecture add4bit_behavioral of add4bit is
signal crry : std_logic;
begin
process(clk,a,b)
variable carry : std_logic;
begin
if (clk'event and clk = '1') then
for j in 7 downto 0 loop
result(j)<= a(j) xor b(j) xor carry;
carry := (a(j) and b(j)) or (a(j) and carry) or (carry and b(j));
end loop ;
if carry='0' then crry <= '0';else crry <= '1'; end if;
end if;
end process;
cout <= crry;
end add4bit_behavioral;
3..Kiểm tra cú pháp:
Sau đó ta Save lại với tên file là add4bit.vhd. Sau đó kích Synthesis-CheckSyntax.
Phần mềm sẽ chạy kiểm tra cú pháp chương trình và báo lỗi bằng dấu nhắc màu đỏ ở dòng
lệnh có lỗi. Cụ thể là dòng 1, 2, 3 vì không có thư viện dls_.ieee.std_logic mà chỉ có thư viện
SVTH: Đỗ Chí Thành_Quách Thành Tính Trang 28

×