Bắt đầu với định nghĩa về VHDL từ wikipedia
VHDL (Ngôn ngữ mô tả phần cứng VHSIC) là ngôn ngữ mô tả phần cứng được sử dụng trong tự động hóa thiết kế điện tử để mô tả các hệ thống tín hiệu số và
hỗn hợp như mảng cổng lập trình trường và mạch tích hợp. VHDL cũng có thể được sử dụng như một ngôn ngữ lập trình song song cho mục đích chung .
VHDL được sử dụng chủ yếu để mô tả các mạch kỹ thuật số cho ASIC hoặc FPGA nhưng nó có thể được sử dụng cho các hệ thống tương tự kỹ thuật số (tín hiệu hỗn hợp) hoặc thậm chí được sử dụng để mô tả các quá trình song song.
'Sự kiện có nghĩa là một sự thay đổi trong tín hiệu kỹ thuật số, đó là một cạnh . Kết hợp với '1' bạn xác định cạnh tăng . Điều này gần giống như chức năng tăng_edge (clk) . Ở đây có sự khác biệt nhỏ giữa chúng (đối với người dùng nâng cao).
Vì vậy, nếu bạn không sử dụng sự kiện ', bạn đang mô tả một quy trình được kích hoạt trong mức độ cao của clk. Ví dụ: đối với chu kỳ nhiệm vụ 50% của đồng hồ 40 MHz, đồng hồ ở trạng thái '1' trong 12,5ns. Điều gì xảy ra với quầy trong 12,5ns này? Bao nhiêu lần sẽ được tính trong 12,5ns? Và điều quan trọng nhất, hệ thống mà các mã này đã được viết có khả năng tăng bộ đếm bằng mức đồng hồ không? Có lẽ là không, mặc dù trình giả lập của bạn cho bạn kết quả tương tự. Hãy cẩn thận với kết quả giả lập , bởi vì trình giả lập khác với trình tổng hợp và có thể cung cấp kết quả rất khác nhau.
VHDL là một ngôn ngữ chung được sử dụng rộng rãi để mô tả các mạch kỹ thuật số. Vì vậy, mỗi nhà sản xuất có các mẫu tối ưu của họ để mô tả các bộ đếm, thanh ghi, bộ nhớ ... Và clock'event và clock = '1' hoặc tăng_edge (clk) là tiêu chuẩn thực tế để mô tả cạnh tăng của tín hiệu được liệt kê trong độ nhạy danh sách. Theo cách tương tự, nếu bạn mô tả thiết lập lại không đồng bộ, bạn đặt tín hiệu đặt lại trong danh sách độ nhạy và mức cao hoặc thấp để khởi tạo thanh ghi tất cả thời gian tín hiệu được xác nhận, không được xác định ngay lập tức với cạnh.
process (clock, reset)
begin
if reset='1' then
count <= (others => '0');
elsif clock='1' and clock'event then
<count> <= <count> + 1;
end if;
end process;
Để tóm tắt , mỗi nhà sản xuất logic lập trình sử dụng một bộ định nghĩa VHDL giới hạn và được xác định để mô tả các hệ thống của họ. Tôi khuyên bạn nên tìm kiếm các mẫu VHDL hoặc Verilog cho Xilinx hoặc Altera. Các mẫu này được bộ tổng hợp hiểu chính xác để được dịch sang các phần tử của chip logic lập trình cụ thể, hoặc ASIC hoặc các hệ thống khác.