CHƯƠNG I: NGUYÊN LÍ VÀ CẤU TRÚC CỦA HỆ THỐNG OFDM
CHƯƠNG 3: TÌM HIỂU NGÔN NGỮ LẬP TRÌNH VHDL
3.3 CÁC CẤU TRÚC CƠ BẢN CỦA NGÔN NGỮ VHDL
3.3.4 Định cấu hình (Configurations)
Mỗi một Entity bao gồm nhiều kiến trúc khác nhau. Trong quá trình thiết kế,người thiết kế có thể muốn thử nghiệm với các sự biến đổi khác nhau của thiết kế bằng việc chọn lựa các kiểu kiến trúc khác nhau. Configuration có thể được sử dụng để cung cấp một sự thay thế nhanh các thể hiện của các phần tử (Component) trong một thiết kế dạng cấu trúc. Cú pháp khai báo của Configuration này như sau:
Configuration configuration_name of entity_name is {configuration_decalarative_part}
For block_specification {use_cluse}
{configuration_item}
end for;
3.3.5 Các thƣ viện thiết kế (Library)
Kết quả của việc biên dịch VHDL là chúng được cất giữ bên trong các thư viện để dùng cho bước mô phỏng tiếp theo, điều này giống như việc sử dụng một phần tử đã được khai báo trong một thiết kế khác. Một thư viện thiết kế có thể chứa các đơn vị thư viện như sau:
- Các đóng gói (PACKAGES) - Các thực thể Entity
Thực hiện hệ thống OFDM trên FPGA SVTH: Lê Quang Huy - Các kiểu kiến trúc Architectures
- Các phép định cấu hình Configurations.
Về cơ bản, tất cả các đối tượng VHDL đều được lưu trong các thư viện. Theo định nghĩa, thư viện là một tập hợp các đơn vị thiết kế (design unit) đã được kiểm chứng. Work và std là hai thư viện dùng được cho mọi design unit.
Hình 3.1: Cấu trúc Library. [4]
3.3.6 Các kiểu dữ liệu (Data Types)
- Data types là một yếu tố quan trọng trong VHDL (cũng như trong các ngôn ngữ khác)
• Mỗi một kiểu dữ liệu chỉ cho phép nhận các giá trị trong một dải nhất định.
• Mỗi đối tượng (signal, variable, constant, hoặc port) cần phải có kiểu dữ liệu nhất định khi được khai báo (declared).
- VHDL là một ngôn ngữ định kiểu rất chặt chẽ.
• Các tín hiệu liên kết với nhau cần phải có cùng kiểu.
- Trong VHDL có nhiều kiểu dữ liệu cho phép mô tả phần cứng và kiểm tra lỗi nhằm đảm bảo sự tương thích tín hiệu trong các mô hình lớn và phức tạp.
• Cần tuân thủ quy tắc kiểm tra kiểu trong các mô hình cả hành vi (behavioral) và mức cổng (gate-level).
3.3.7 Liên kết tín hiệu
Có hai phương pháp liên kết các tín hiệu với các cổng tương ứng của chúng package std_logic_1164 is..
package std_logic_arith is..
package std_logic_unsigned is..
library IEEE
;
Thực hiện hệ thống OFDM trên FPGA SVTH: Lê Quang Huy - Liên kết theo vị trí: Các tín hiệu ở mức cao được liệt kê theo đúng trật tự của các
cổng (port) ở mức thấp trong component declaration
• U1: DFF port map (D_in, Clk, Rst, Q_out) ; component DFF
port (D, Clock : in std_logic ; Reset : in std_logic ; Q : out std_logic ) ; end component ;
- Liên kết theo tên: Các cổng (ports) và tín hiệu (signals) được liệt kê một cách rõ ràng, đầy đủ, không phụ thuộc trật tự (strongly recommended)
• U1: DFF port map ( D =>D_in(1), Clock =>Clk, Reset =>Rst, Q=>Q_out(1)) ;
component DFF
port (D, Clock : in std_logic ; Reset : in std_logic ; Q : out std_logic ) ; end component ;
3.3.8 Biên dịch VHDL
Có thể có bốn giai đoạn biên dịch ứng với bốn mức xử lý cho một mô hình phần cứng VHDL như hình 3.2.
Analysis (phân tích)
Design unit được kiểm tra lỗi cú pháp. Sau khi hoàn tất, nó sẽ được lưu giữ ở work directory.
Elaboration (chỉnh sửa)
Cấu trúc hierarchy của thiết kế được dàn trải bắt đầu từ mức cao nhất. Ứng với mỗi sub-module cụ thể chỉ có một copy duy nhất được tạo ra .
Synthesis (tổng hợp)
Dạng mô tả netlist của thiết kế được tạo ra hoặc theo format chuẩn công nghiệp hoặc theo một vendor-specific format.
Execution (chỉ mô phỏng)
Mô hình được mô phỏng theo các bước thời gian gián đoạn. Nó được điều khiển bởi các sự kiện ở các tín hiệu đồng bộ quá trình.
Do mối quan hệ giữa các primary và secondary design unit cũng như khả năng có thể cụ thể hoá các module ở mức thấp hơn, nên quá trình biên dịch luôn tuân theo một trật tự nghiêm ngặt.
Thực hiện hệ thống OFDM trên FPGA SVTH: Lê Quang Huy
Các entity phải được phân tích trước các architecture tương ứng với chúng.
Các package cần phải được phân tích trước các package body.
Mỗi một module cần phải được phân tích trước khi nó được tham trỏ bởi các module khác.
Hình 3.2: Quy trình biên dịch [4]
entity DFF is port (D, Clk : in Reset: in Q: out . . .
architecture..
Analyze
Elaborate
Execute Synthesize