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
-
bởi haidangdooLễ Hội Tuyết Sapporo – Điểm Đến Mùa Đông Không Thể Bỏ Lỡ
Lễ hội tuyết Sapporo, một trong những sự kiện mùa đông lớn nhất thế giới, được tổ chức hàng năm tại Sapporo, Hokkaido, Nhật Bản. Đây là cơ hội để bạn chiêm ngưỡng các tác...-
Channel: Quảng cáo
hôm nay, 15:13 -
-
bởi nganngan1510Gạch thông gió GreenTiles là một vật liệu xây dựng được ưa chuộng nhờ vào khả năng thông gió tự nhiên và tính thẩm mỹ cao. Việc thi công gạch thông gió không chỉ đòi hỏi sự chính xác mà còn cần sự nhanh chóng để đảm bảo tiến độ...
-
Channel: Tìm mua
hôm nay, 14:36 -
-
bởi Minhdai95Em chào mọi người, e đang sửa mạch tạo sóng siêu âm cho máy rửa mà chưa có tài liệu để tham khảo sửa, mọi người cho e xin tài liệu ạ...
-
Channel: Điện tử công suất
hôm nay, 11:37 -
-
bởi pia2k1Cùng câu hỏi và cần được giải đáp thêm ạ...
-
Channel: Hướng dẫn sử dụng diễn đàn
hôm nay, 11:28 -
-
bởi trun9Chào các bạn,
Tôi vừa làm 1 video Youtube đăng lên vào tối hôm qua, hiện tại có 4 lượt xem đều là của tôi vào xem có ai xem không
https://www.youtube.com/watch?v=_oFIBAcvoSY
Vào xem và chửi tôi để tôi bớt làm lại đi.-
Channel: Quảng cáo
hôm nay, 08:55 -
-
Trả lời cho Công thức điện tửbởi mèomướpDạ thời thế giờ thay đổi theo hướng tích cực hơn rồi chú trung sĩ ạ. Kiến thức được chia sẻ ngày càng nhìu nên làm ăn gian dối ko còn dễ dàng như trước đâu ạ. Những thợ nhỏ rồi sẽ thành công nhân sản xuất đồ mới hết thay vì sửa chữa lặt vặt...
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 21:21 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi mèomướpDạ cùng chuẩn tín hiệu thì chắc chắn là nhận ạ. Vì bản chất oled hay lcd thì đều phải có mạch chuyển đổi trên thanh gỗ rồi chuyển sang những chip xử lý hàng nghìn chân gắn trên những tab mỏng dính rồi mới ra các điểm ảnh theo hàng...
-
Channel: Thiết bị điện tử cá nhân
Hôm qua, 20:31 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi yname11Ok , thanks bác đã chỉ...
-
Channel: Thiết bị điện tử cá nhân
Hôm qua, 15:06 -
-
bởi nguyendinhvanSau bao năm nghiên cứu cái dtvn. Tôi phát hiện công thức này. Các anh em xem đúng bao nhiêu phần trăm nhé !
Chập thì thay. Cháy thì tháo
Làm thì láo. Báo thì hay
May thì khoe. Rủi thì bỏ
Thành tích nhỏ. Báo thành to
Làm cho có. Báo chi li
Sai cả li. Báo...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 00:35 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi yname11có chắc ko b, màn lcd phải có cao áp mới sáng, màn led thì ko có, ko có cáp chuyển đổi thì lắp thế nào đc ??...
-
Channel: Thiết bị điện tử cá nhân
25-11-2024, 22:31 -
Comment