User Tag List

+ Trả lời chủ đề
Hiện kết quả từ 1 tới 10 của 10

Chủ đề: VHDL và các vấn đề liên quan

  1. #1
    HUT's Student Avatar của WTDOng
    Tham gia ngày
    Nov 2004
    Bài gửi
    294

    Mặc định VHDL và các vấn đề liên quan

    Các huynh ơi, có thể nói cho đệ một cách sơ lược về VHDL không, đệ cần làm 1 chương trình dịch, trông có vẻ giông VHDL, nên nhân tiện tìm hiểu về VHDL luôn.
    cám ơn các huynh rất nhiều

  2. #2
    Uỷ viên ban điều hành Box khoa ĐTVT Avatar của nothingtolose
    Tham gia ngày
    Sep 2004
    Bài gửi
    1.817

    Mặc định

    Quote Nguyên văn bởi WTDOng
    Các huynh ơi, có thể nói cho đệ một cách sơ lược về VHDL không, đệ cần làm 1 chương trình dịch, trông có vẻ giông VHDL, nên nhân tiện tìm hiểu về VHDL luôn.
    cám ơn các huynh rất nhiều
    VHDL là một ngôn ngữ mô tả phần cứng thuộc họ HDL có nghĩa là cho phép xây dựng mạch cứng thông qua việc mô tả hành vi và cấu trúc của mach cứng đó. Xem xét 1 VD đơn giản sau

    // Sử dụng thư viện IEEE.std_logic_1164 ( thu viện đình nghĩa mức logic chuẩn trong mạch số với điện áp Vdd, Gnd khác nhau
    ibrary ieee;
    use IEEE.std_logic_1164. all;

    // Khai báo cấu trúc của một thực thể aoi gồm 4 đầu vào a,b,c,d và 1 đầu ra output

    entity aoi is
    port(a,b,c,d : in std_logic;
    output : out std_logic);
    end aoi;

    // Mô tả hành vi của thực thể aoi dưới dạng đầu ra output là 1 hàm số của 4 đầu vào a, b, c, d
    architecture behavior of aoi is
    begin
    process (a,b,c,d)
    variable ab,cd : std_logic:='0';
    begin
    ab := a and b; //Mặc định độ trễ của cổng AND =0ns
    cd := c and d; //Mặc định độ trễ của cổng AND =0ns
    output <= (ab nor cd); //Mặc định độ trễ của cổng NOR =0ns
    end process;
    end behavior;

    Sau khi mô phỏng chính xác (có xem xét độ trễ về mặt lý thuyết) thì thực viện tổng hợp mạch (synthesis). Nếu chúng ta có một thư viện các cổng lôgíc cơ bản (AND, OR,NOR, NOT ...) hoặc phức tạp hơn như có chứa thêm thanh ghi, counter, pll sau khi sử dùng các công cụ tổn hợp như Quartus, ISE, hoặc Synopsys Design Compiler chung ta sẽ có được 1 sơ đồ mạch cứng của thực thể aoi mà không cần vẽ sơ đồ mạch (hoàn toàn do phần mềm quyết định). Đây chỉ là 1 ví dụ đơn giản, đối với các vĩ dụ phức tạp hơn như thiết kế mP,mC hay PWM thì việc ngồi thiết kế từng linh kiên là rất khó (tất nhiên vẫn có thể làm được và cách này thì tối ưu hơn)

    Khi mà các hệ thống càng trở nên phức tạp hơn (hệ nhúng, SoC, CSoC ...) thì việc tái sử dụng lại các thiết kế nhỏ là cần thiết do vậy các IP Core dưới dạng phần mềm VHDL or Verilog, System C, VHDL-AMS, System Verilog được ưa chuộng. Nó cho phép user có thể tùy biến tổng hợp mạch điện trên các thư viện logic của các nhà cung cấp khác nhau, layout với các công nghệ CMOS khác nhau ....

    VHDL hiện nay đang được phát triển ngày càng hoàn thiện, có thể thiết kế mix-signal bằng VHDL-AMS. Về cú pháp VHDL giống pascal, còn Verilog giống C, System C giống C++ tuy nhiên phải compiler về HDL trước khi tổng hợp (có ưu điểm là dễ viết)

    Vậy thiết kế VHDL cần gì : Methodology và Synthesis

    - Methodology : Là kiến trúc tổng quan của thiết kế : các block, tín hiệu vào ra, hoat động(hành vi) của các block như thế nào, kết nối với nhau ra sao ....
    - Synthesis : Thư viện tổng hợp là gì (chú ý không phải bất cứ thư viện nào cũng có thể phù hợp với CT VHDL, phụ thuộc vào đặc điểm của các phần tử logic cơ bản mà có thể tổng hợp ra mạch cứng hay không), độ trễ vào ra, trễ trong ra sao, có hỗ trợ floating-point hay không ...

    (Nói riêng về layout, Quartus và ISE có phép Place and Route trên FPGA tuy nhiên nếu làm IC Design thì phải dùng Apollo, Vera hoặc Astro của Synopsis -> Cực kì tốn kém -> Chọn FPGA/CPLD, rồi dùng free soft để thực hành ->Có thể dùng Modelsim là công cụ mô phỏng real-time tốt nhất hiện nay tuy nhiên muốn mô phỏng tốt cần phải xây dựng các testbench bằng các CT dạng HDL, C để cung cấp đầu vào cho mô phỏng)

    Khó khăn của thiết kế VHDL là gì : Nói đơn giản là biến các hoạt động của mạch cứng (PT toán học, lược đồ thời gian, đặc trưng của tín hiệu ... ) thành mã lệnh HDL và tổng hợp mã lệnh HDL thành mạch cứng.

    Thiết kế HDL cho các ứng dụng lớn SoC là một thách thức rất hấp dẫn cho các KS EE hiện nay. Tớ đã định viết 1 tutorial về VHDL nhưng hồi BKF hỏng đã bị mất tớ không giữ lại nên bỏ luôn, sorry

  3. #3
    binhjuventus
    Guest

    Mặc định

    Quote Nguyên văn bởi WTDOng
    Các huynh ơi, có thể nói cho đệ một cách sơ lược về VHDL không, đệ cần làm 1 chương trình dịch, trông có vẻ giông VHDL, nên nhân tiện tìm hiểu về VHDL luôn.
    cám ơn các huynh rất nhiều
    Cậu làm một chương trình dịch cơ á??? (Compiler ý)
    Định dịch từ ngôn ngữ nào? sang ngôn ngữ máy à?
    Hồi xưa, nhớ hình như anh Lê Dũng khoa mình có một đề tài về chương trình dịch Pascal cho vi điều khiển 8051. Hoành tráng phết nhưng không biết thế nào, chỉ nghe nói!

    VHDL chỉ là một họ ngôn ngữ mô tả phần cứng, VHDL hình như được dùng nhiều ở EU còn VeriLog thì ở US thì phải (ai biết confirm hộ thông tin nhé)

    Bây giờ lên các diễn đàn về uE thì thấy nhiều người nói đến SystemC!

  4. #4
    Uỷ viên ban điều hành Box khoa ĐTVT Avatar của nothingtolose
    Tham gia ngày
    Sep 2004
    Bài gửi
    1.817

    Mặc định

    Quote Nguyên văn bởi binhjuventus
    Cậu làm một chương trình dịch cơ á??? (Compiler ý)

    VHDL hình như được dùng nhiều ở EU còn VeriLog thì ở US thì phải (ai biết confirm hộ thông tin nhé)

    Bây giờ lên các diễn đàn về uE thì thấy nhiều người nói đến SystemC!
    VHDL đúng là được ưa chuộng ở châu Âu, còn Verilog thì Mỹ và Châu Á hay xài do Verilog rất gần với mức logic gate mà fabrication thì Mỹ và Châu Á (HQ, NB, TQ, ĐL ...) có vẻ mạnh hơn khối châu Âu.

    - Ưu điểm của VHDL là ra đời trước và được phát triển rất hoàn thiện các thư viện xử lý floating point, các thư viện thuật toán, ... và cấu trúc rõ ràng, chặt chẽ ...

    - Verilog gần với mức logic gate nên rất thuận tiện cho việc xây dựng hành vi của các cổng logic cơ bản,... Verilog giống C nên cực kì linh hoạt. Tuy nhiên bây giờ các hãng EDA đã thôi hỗ trợ thêm cho Verilog và chuyển sang System Verilog

    - SystemC giống C++, xây dựng mô hình và hành vi của các đối tượng dưới sạng class, cú pháp rõ ràng và thân thiện tuy nhiên System C thường được biên dịch thành HDL (VHDL or Verilog tùy theo compiler) cho nên dùng SystemC ưu điểm thuận tiện nhưng tổng hợp mạch thì mất thêm thời gian (thực tế là biên dịch 2 lần SystemC -> HDL -> Bit stream file). Khi xây dựng các hệ thống phức tạp thường dùng System C để mô phỏng kiểm tra sau đó compiler từng phần thành HDL và kiểm tra ...

    - Mixed-signal HDL language : VHDL, Verilog chỉ dùng cho mạch số tuy nhiên hiện nay các hệ thống SoC thường là mixed-signal system (ít nhất cũng cần AD/DA) cho nên phát triển thêm VHDL-AMS và System Verilog


  5. #5
    Uỷ viên ban điều hành Box khoa ĐTVT Avatar của nothingtolose
    Tham gia ngày
    Sep 2004
    Bài gửi
    1.817

    Mặc định

    Quote Nguyên văn bởi binhjuventus
    Cậu làm một chương trình dịch cơ á??? (Compiler ý)
    Định dịch từ ngôn ngữ nào? sang ngôn ngữ máy à?
    Hồi xưa, nhớ hình như anh Lê Dũng khoa mình có một đề tài về chương trình dịch Pascal cho vi điều khiển 8051. Hoành tráng phết nhưng không biết thế nào, chỉ nghe nói!
    Trình dịch khó hay dễ tùy theo tập lệnh của các mC, mP

    Còn trình dịch Pascal cho x51 tớ đã nhìn thấy 1 cái rồi (do 1 SV Cao đẳng thôi nhé), đã xử dụng rất tiện lợi, tất nhiên có kết hợp open-source (hình như Borland free cái giấy phép phát triển Pascal thì phải) nhưng mà cậu ấy có thể hiểu hết và tùy biến thay đổi cái đó để bổ xung các chíp cho dòng x51. Tớ khâm phục lắm

  6. #6
    HUT's Student Avatar của WTDOng
    Tham gia ngày
    Nov 2004
    Bài gửi
    294

    Mặc định

    em đang làm 1 cái chương trình dịch cho EEPROM, cho mạch nạp mà em thiết kế
    em đang thiết kế trên nền VB6, thấy VHDL trông có vẻ giống cái em cần, nên tham khảo chơi xem có bắt chước được gì không, anh nào có hướng thì bảo em với , chắc mới đầu chỉ làm đơn giản thôi, sau đó nâng cấp lên sau

  7. #7
    Quân Nhân Danh Dự Avatar của Bandani
    Tham gia ngày
    Feb 2003
    Bài gửi
    599

    Mặc định

    Theo tớ hiểu thì VHDL không giống rồi. Cái kia là nạp dữ liệu thuần túy. Còn VHDL là mô tả phần cứng cơ mà. Khác nhau lắm.
    Vũ Trụ Nội Mạc Phi Phận Sự www.traveltovietnam.cc www.bookilook.com

  8. #8
    binhjuventus
    Guest

    Mặc định

    Quote Nguyên văn bởi WTDOng
    em đang làm 1 cái chương trình dịch cho EEPROM, cho mạch nạp mà em thiết kế
    em đang thiết kế trên nền VB6, thấy VHDL trông có vẻ giống cái em cần, nên tham khảo chơi xem có bắt chước được gì không, anh nào có hướng thì bảo em với , chắc mới đầu chỉ làm đơn giản thôi, sau đó nâng cấp lên sau
    VHDL thường được dùng để "config" những con chip "trắng" theo một cấu hình nào đó để thực hiện một chức năng nào đó.

    Nếu để nạp cho EEPROM thì không nên dùng VHDL như Các nói, tớ chỉ dám nói là không nên vì cũng chưa biết VHDL đã được dùng cho mục đích này hay chưa...

  9. #9
    HUT's Student Avatar của WTDOng
    Tham gia ngày
    Nov 2004
    Bài gửi
    294

    Mặc định

    hic, các bác thông cảm vì em mới chỉ xem qua VHDL thôi, còn viết chương trình dịch cho eeprom chắc cũng chỉ viết đơn giản thôi, còn phát triển thì để sau vậy, dạo này bận quá *_o

  10. #10
    Uỷ viên ban điều hành Box khoa ĐTVT Avatar của nothingtolose
    Tham gia ngày
    Sep 2004
    Bài gửi
    1.817

    Mặc định

    Quote Nguyên văn bởi binhjuventus
    VHDL thường được dùng để "config" những con chip "trắng" theo một cấu hình nào đó để thực hiện một chức năng nào đó.

    Nếu để nạp cho EEPROM thì không nên dùng VHDL như Các nói, tớ chỉ dám nói là không nên vì cũng chưa biết VHDL đã được dùng cho mục đích này hay chưa...
    Thực ra cần phân biệt rõ CT dịch và CT nạp

    - CT dịch là dịch pseudo-code sang mã máy (dạng file nhị phân)

    - CT nạp là thực hiện đọc file nhị phân này và ghi vào chip dựa trên lược đồ thời gian(time diagram) của các chân điều khiển đọc/ghi trên chíp.


    -> Rất nhiều IDE hiện nay tích hợp CT dịch và CT nạp vào một công đoạn để tiện cho người dùng.

    Nếu làm CT nạp tức là điều khiển việc ghi đọc chíp theo time diagram
    thì VHDL làm được (dùng IEEE.std_textio, load các byte trong file nhị phân vào các thanh ghi rồi phân tích ra các tín hiệu gửi tới các chân ĐK chíp)

    Còn dùng VHDL để làm CT dịch thì impossible và là unreality

+ Trả lời chủ đề

Thông tin chủ đề

Users Browsing this Thread

Hiện có 1 người đọc bài này. (0 thành viên và 1 khách)

Chủ đề tương tự

  1. Spartan-3, VHDL và các vấn đề liên quan
    Gửi bởi FFGmember trong mục Kỹ thuật điện tử
    Trả lời: 10
    Bài cuối: 23-01-2007, 09:05 PM
  2. Công nghệ FPGA và ngôn ngữ VHDL
    Gửi bởi Hue_bka trong mục Giảng đường khoa ĐTVT
    Trả lời: 22
    Bài cuối: 23-06-2006, 11:36 AM
  3. Kiều hối và những vấn đề liên quan
    Gửi bởi walktheweb trong mục Thảo luận
    Trả lời: 65
    Bài cuối: 31-05-2006, 11:44 PM
  4. Có ai muốn làm quan không ???
    Gửi bởi nothingtolose trong mục Thảo luận
    Trả lời: 4
    Bài cuối: 01-10-2005, 08:51 AM

Từ khóa (Tag) của chủ đề này

Quyền viết bài

  • Bạn không thể gửi chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình


About svBK.VN

    Bách Khoa Forum - Diễn đàn thảo luận chung của sinh viên ĐH Bách Khoa Hà Nội. Nơi giao lưu giữa sinh viên - cựu sinh viên - giảng viên của trường.

Follow us on

Twitter Facebook youtube