Em mới học về VHDL, em thấy khi phân biệt RTL code và Behavior code rất mơ hồ ví dụ như cùng code VHDL cả nhưng RTL thì tổng hợp đc còn Behavior chỉ để mô phỏng và debug ... Em đang muốn học để code theo RTL coding style để sau này còn synthesize. Em không biết bắt đầu từ đâu, học như thế nào, đọc tài liệu nào, code ntn để là RTL chứ không phải Behavior (sorry vì em học code theo C, C++ quen rồi ... nên có thể hỏi hơi ngớ ngẩn) Các anh, chị đi trước có thể giải thích cũng như cho em lời khuyên hay cách học được không. Thanks
Thông báo
Collapse
No announcement yet.
Phân biệt RTL code và Behavior code,
Collapse
X
-
VHDL là viết tắt của "Very high speed Hardware Description Language" nên nó là ngôn ngữ mô tả phần cứng chứ không phải là ngôn ngữ lập trình. Đó là điều mà trước tiên bạn cần phải nhớ kỹ. Khi bạn viết VHDL tức là bạn đang mô tả lại phần cứng mà bạn thiết kế chứ không phải là bạn đang lập trình. RTL là viết tắt của "Register Transfer Level". Những mạch số mà bạn thiết kế có thể được môt tả bằng những phần tử flipflop có trong mạch, và mạch combinational logic giữa các flipflop này. RTL code tức là đoạn code mô tả hoạt động của phần combinational logic nằm giữa các flipflop (Register). Các phần mềm EDA sẽ tổng hợp đoạn code của bạn để tạo ra mạch logic nằm giữa các flipflop thực hiện chức năng mà bạn đã mô tả.
Vì vậy khi bạn viết RTL code thì bạn trước hết cần hiểu được các phần mềm EDA sẽ tổng hợp các đoạn code thành mạch thực tế như thế nào (ví dụ như câu lệnh if sẽ được chuyển thành mux, câu lệnh for sẽ được unroll thành nhiều đoạn mạch tương tự nhau...). Sau đó bạn phải biết được mạch bạn đang thiết kế là như thế nào (ở đây dùng FSM, ở kia dùng ALU...) rồi sau cùng mới viết code mô tả mạch mà bạn thiết kế. Cái này cần một chút kinh nghiệm nhưng sau khi quen rồi thì có thể xem qua là đã biết mạch cần phải làm là như thế nào và viết thế nào rồi.
Ở đây có một quyển sách tớ nghĩ là cũng tạm được bạn muốn có thể xem qua.
RTL Hardware Design Using VHDL: Coding for Efficiency, Portability, and Scalability
Deposit Files
-
Chào bạn Gimemecs1315,
Nguyên văn bởi Gimemecs1315 Xem bài viếtEm mới học về VHDL, em thấy khi phân biệt RTL code và Behavior code rất mơ hồ ví dụ như cùng code VHDL cả nhưng RTL thì tổng hợp đc còn Behavior chỉ để mô phỏng và debug ... Em đang muốn học để code theo RTL coding style để sau này còn synthesize.
Về cách học code thì bác Rommel.de đã chỉ ra những điểm rât mấu chốt rồi.
Thân mến,
Comment
-
chào cả nhà. mình có đoạn chuong trình này mong mọi người giải thích cho mình;
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
use work.CALC1_PAK.all;ENTITY CNTRL_FSM_TB_vhd IS
END CNTRL_FSM_TB_vhd;
ARCHITECTURE behavior OF CNTRL_FSM_TB_vhd IS
COMPONENT CNTRL_FSM
PORT(
DATA_FRAME : IN MY_RECORD;
CLK : IN std_logic;
RESET : IN std_logic;
A_OP : OUT std_logic_vector(3 downto 0);
B_OP : OUT std_logic_vector(3 downto 0);
C_IN : OUT std_logic;
OP_CODE : OUT std_logic_vector(3 downto 0);
EXP : OUT std_logic_vector(3 downto 0);
MEM_EN : OUT std_logic;
ALU_EN : OUT std_logic ;
COMP_EN : OUT std_logic ;
ADDR : OUT std_logic_vector(2 downto 0) );
END COMPONENT;
SIGNAL DATA_FRAME : MY_RECORD := ("0000", "0000","0000",'0',"0000");
SIGNAL CLK : std_logic := '0';
SIGNAL RESET : std_logic := '0';
SIGNAL A_IN, B_IN : std_logic_vector(3 downto 0);
SIGNAL C_IN : std_logic;
SIGNAL OP_CODE : std_logic_vector(3 downto 0);
SIGNAL EXP : std_logic_vector(3 downto 0);
SIGNAL ALU_EN, MEM_EN, COMP_EN : std_logic;
SIGNAL ADDR : std_logic_vector(2 downto 0);
BEGIN
uut: CNTRL_FSM PORT MAP(
DATA_FRAME => DATA_FRAME,
CLK => CLK,
RESET => RESET,
A_IN => A_IN,
B_IN => B_IN,
C_IN => C_IN,
OP_CODE => OP_CODE,
EXP => EXP,
ALU_EN => ALU_EN, MEM_EN => MEM_EN, COMP_EN => COMP_EN ,
ADDR => ADDR );
CLK <= not CLK after 20 ns;
RESET <= '1' after 10 ns, '0' after 25 ns;
tb : PROCESS
BEGIN
DATA_FRAME <= ("1000", "0100","0000",'0',"0000");
wait for 100 ns;
DATA_FRAME <= ("1000", "0100","0101",'0',"0000");
wait for 100 ns;
DATA_FRAME <= ("1000", "0100","0100",'0',"0000");
wait; -- will wait forever
END PROCESS;
END TEST;
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Năm mới dientuvietnam.netbởi mèomướpDạ năm mới cháu xin kính chúc ông, bà, cô, dì, chú, bác, anh, chị, em, các bạn, các cháu... trong diễn đàn sức khỏe dồi dào, gặp nhìu may mắn và thành công...
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 05:42 -
-
Trả lời cho Năm mới dientuvietnam.netbởi nhathung1101Chúc cả nhà ăn no mặc ấm, quần lúc có lúc không.
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 00:02 -
-
Trả lời cho Năm mới dientuvietnam.netbởi vandong1111Năm mới 2025 cháu chúc các chú, các bác mạnh khỏe, vui vẻ, gặp nhiều may mắn.
-
Channel: Tâm tình dân kỹ thuật
29-01-2025, 20:59 -
-
Trả lời cho tìm mua đồng hồ vạn năngbởi bqvietNói một cách xây dựng thì kiểu đồng hồ kiêm kẹp dòng NJTY3266 mà bạn Mèo đề cập là đúng nhu cầu người hỏi rồi. Một số cửa hàng bán trên 200ng, vài sàn thương mại điện tử bán dưới - thế là đúng nhu cầu về giá. Nếu khéo săn...
-
Channel: Điện tử dành cho người mới bắt đầu
27-01-2025, 20:02 -
-
Trả lời cho tìm mua đồng hồ vạn năngbởi nhathung1101Đa năng còn chưa dùng hết, nếu không biết cách dùng.
200k thì hơi khó mua, nhưng 50k chắc là có. Cứ bảo bán cho tôi cái đồng hồ hỏng.-
Channel: Điện tử dành cho người mới bắt đầu
26-01-2025, 23:21 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi nhathung1101Lão Đinh Vặn học giải phương trình hồi đi trẻ mà. Mẫu giáo học lập trình AI rồi. Lớp lão ấy gần lớp em nên em biết....
-
Channel: Điện tử công suất
26-01-2025, 23:11 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nhathung1101Vậy chú đã hỏi hãng SIEMEN chưa? Tại sao cái PLC S7-200 cổ lỗ mà họ vẫn thiết kế riêng cho thị trường TQ với chữ SMART? Thậm chí phần mềm riêng để đọc file ngu.smart?
Vấn đề không còn là công nghệ "cốt lõi" nữa, mà là giá thành quyết định. Ham rẻ là trả giá mà....-
Channel: Điện tử công suất
26-01-2025, 23:01 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi vi van phamĐồng ý với Bqv.
50 năm làm nghề, tôi đã chứng kiến 3 lần máy x quang mới nhập từ nước ngoài về bị lỗi.
- Lần thứ 1 máy xq của Pháp được ks Pháp lằp đặt bị lỗi 1 con didode, đưa cho ks Pháp con didode khác cùng mã số, ông...-
Channel: Điện tử công suất
26-01-2025, 08:09 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi mèomướpDạ chú dinh... muốn sửa lỗi cho hãng thì chú cứ gửi những hình ảnh, video cho họ đi ạ, chú có thể tìm thông tin của những lãnh đạo bên ấy để gửi thì sẽ hiệu quả hơn ạ. Về tổng quan thì họ sẽ ko phản hồi rõ ràng đâu ạ, vì nhận...
-
Channel: Điện tử công suất
26-01-2025, 06:19 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi bqvietCuối năm bàn thêm chuyện to hơn chút, đấy là 2 vụ rơi đám 737 đời mới và trục trặc ở cả tá chiếc khác. Ngay cả những thứ tưởng như cao siêu sang xịn thật thì vẫn có thể gặp trường hợp oái oăm như thường. Từ hồi đó bqv đã thấy khó hiểu làm sao lại đẻ ra đám MCAS quái thai đến thế được. Rồi...
-
Channel: Điện tử công suất
24-01-2025, 19:40 -
Comment