Rtl Design là gì

Sự khác biệt chính giữa RTL và HDL là gì? Thành thật mà nói tôi đã tìm kiếm / googled nó nhưng mọi người đang chia rẽ ý kiến ​​của họ. Tôi nhớ một người nói rằng HDL là ngôn ngữ máy tính được sử dụng để mô tả một mạch kỹ thuật số và khi nó được tổng hợp, thì nó được coi là RTL.

HDL là tên bắt tất cả cho tất cả các ngôn ngữ định nghĩa phần cứng [Verilog, VHDL, v.v.] theo cùng một cách mà Hướng đối tượng có thể tham chiếu đến C ++, Java, v.v.

RTL mặt khác là một cách để mô tả một mạch.

Bạn viết mã cấp độ RTL bằng ngôn ngữ HDL, sau đó được dịch [bằng các công cụ tổng hợp] sang mô tả cấp độ cổng trong cùng ngôn ngữ HDL hoặc bất cứ điều gì thiết bị / quy trình mục tiêu của bạn sẽ thực hiện.

Tôi sẽ cho bạn một ví dụ. Dưới đây là một dòng Verilog [HDL] mô tả một mux trong RTL: assign mux_out = [sel] ? din_1 : din_0;

Công cụ tổng hợp của bạn có thể lấy nó và chuyển đổi nó thành một tập hợp các cổng logic hoặc chỉ là một macro mux được thiết bị cuối của bạn hỗ trợ. Ví dụ, nó có thể khởi tạo một macro mux mux u3 [mux_out, din_1, din_0];

Trong cả hai trường hợp, bạn có thể cung cấp cùng một đầu vào cho khối [RTL hoặc mức cổng] và đầu ra của bạn phải giống nhau. Trong thực tế, có những công cụ kiểm tra đầu ra của tổng hợp so với mã RTL của bạn để đảm bảo công cụ không vô tình tối ưu hóa hoặc thay đổi một cái gì đó trong quá trình tổng hợp gây ra sự không khớp. Điều này được gọi là Xác minh chính thức.

Vì nhiều lý do, khả năng tương tác, dễ thay đổi, dễ hiểu, bạn viết mô tả của bạn về mạch kỹ thuật số là RTL, thay vì cấp độ cổng.

HDL [Ngôn ngữ mô tả phần cứng] là loại ngôn ngữ được sử dụng, Verilog / VHDL so với javascript không phải HDL.

RTL [Cấp độ chuyển đổi đăng ký] là một mức độ trừu tượng mà bạn đang viết. Ba cấp độ tôi đề cập đến là Hành vi, RTL, Cấp độ cổng.

Hành vi có lớp trừu tượng cao nhất mô tả hành vi tổng thể và thường không tổng hợp được, nhưng rất hữu ích để xác minh.

RTL mô tả phần cứng bạn muốn bằng cách ngụ ý logic. xác định flip-flop, chốt và cách dữ liệu được chuyển giữa chúng. Đây là tổng hợp, tổng hợp có thể thay đổi / tối ưu hóa logic được sử dụng nhưng không phải hành vi. Chuyển đổi mux cho cổng vv một số lần đảo ngược tín hiệu để tối ưu hóa thiết kế tốt hơn.

Verilog RTL ngụ ý một flip-flop: logic a;              //logic is SystemVerilog, could be a 'reg' logic k;              // Driven by RTL not shown always @[posedge clk or negede rst_n] begin if [~rst_n] begin a

Chủ Đề