VHDL hay Verilog? [đóng cửa]


94

VHDLVerilog là HDL trong ngày. Những lợi thế của một trong hai người không có kinh nghiệm với HDL là gì?


2
Họ dường như là hiệu quả như nhau, chọn một trong những bạn thích. Tôi thấy rằng VHDL phù hợp với tôi nhất.
Leon Heller

1
Làm thế nào tôi có thể cho những người điều hành "bỏ phiếu"? Những lời hoa mỹ của những người có kinh nghiệm sớm hơn có giá trị hơn những thông tin có trong sách. Sách không mang khái niệm thời gian.
dsgdfg

Câu trả lời:


70

Tôi không thể cho bạn biết nên học gì, nhưng đây là một số điểm tương phản (từ một người dùng rất trung tâm VHDL, nhưng tôi đã cố gắng công bằng nhất có thể!), Có thể giúp bạn đưa ra lựa chọn dựa trên sở thích của riêng bạn về phong cách phát triển:

Và hãy ghi nhớ câu nói nổi tiếng đi theo dòng chữ "Tôi thích bất cứ ai trong số hai tôi hiện không sử dụng" (xin lỗi, tôi không thể nhớ ai đã thực sự viết bài này - có thể là Janick Bergeron?)

VHDL

  • gõ mạnh
  • dài dòng hơn
  • rất quyết đoán
  • cú pháp không giống C (và tư duy)

Rất nhiều lỗi biên dịch để bắt đầu, nhưng sau đó chủ yếu hoạt động như bạn mong đợi. Điều này có thể dẫn đến một đường cong học tập cảm giác rất dốc (cùng với cú pháp không quen thuộc)

Phiên bản

  • đánh máy yếu
  • súc tích hơn
  • chỉ xác định nếu bạn tuân theo một số quy tắc cẩn thận
  • cú pháp giống C hơn (và tư duy)

Lỗi được tìm thấy sau này trong mô phỏng - đường cong học tập để "cảm thấy như hoàn thành một việc gì đó" sẽ nông hơn, nhưng sẽ kéo dài hơn (nếu đó là phép ẩn dụ đúng?)

Ngoài ra, ưu tiên của Verilog là xác minh cao cấp ngày càng nghiêng về SystemVerilog, một phần mở rộng rất lớn cho Verilog. Nhưng các công cụ cao cấp cũng có thể kết hợp mã tổng hợp VHDL với mã xác minh SystemVerilog.


Đối với một cách tiếp cận hoàn toàn khác: MyHDL - bạn có được tất cả sức mạnh của Python như một ngôn ngữ xác minh với một bộ các phần mở rộng tổng hợp mà từ đó bạn có thể tạo VHDL hoặc Verilog.

Hoặc Cocotb - tất cả sức mạnh của Python như một ngôn ngữ xác minh, với mã tổng hợp của bạn vẫn được viết bằng bất kỳ HDL nào bạn quyết định học (ví dụ VHDL hoặc Verilog).


2
Tôi biết Verilog nhưng tôi không quen thuộc với VHDL: ý bạn là gì khi VHDL có tính quyết định cao hơn Verilog?
cic

44

Tôi đã học cả hai cùng một tuần. VHDL giống như ADA / Pascal và Verilog giống như C. VHDL dài dòng hơn và đau đớn hơn để có được một trình biên dịch, nhưng một khi bạn có được một biên dịch, cơ hội thành công của bạn sẽ tốt hơn. Ít nhất đó là những gì tôi tìm thấy. Verilog, giống như C, khá hài lòng khi cho phép bạn tự bắn vào chân mình. Một số ngành công nghiệp như hàng không vũ trụ / chính phủ nghiêng về VHDL, một số ngành khác nghiêng về Verilog. Vấn đề tôi tìm thấy với cả hai là khả năng của băng ghế thử nghiệm, và khi cố gắng học và cố gắng chuyển từ mô phỏng sang viết mã silicon / chỉ có thể tổng hợp là một cấp độ giáo dục khác.

Có một ngôn ngữ tôi thực sự thích gọi là CDL . Nó hoàn toàn có thể tổng hợp được, bạn viết các băng ghế thử nghiệm của mình theo những cách khác, nó tạo ra Verilog tổng hợp mà bạn có thể đưa vào các công cụ khác. Thật không may, các tài liệu CDL đang thiếu, tôi hy vọng sẽ lấy được một số mẫu trên thế giới để cho thấy nó dễ sử dụng hơn nhiều so với Verilog hoặc VHDL, nhưng chỉ không làm được điều đó. Nó đi kèm với môi trường sim / thử nghiệm riêng của nó. Với CDLGTKWave, bạn có thể thực hiện một số lượng công việc đáng kể.

Một công cụ khác có tên là Verilator , khá cứng nhắc trong việc giữ cho Verilog của bạn sạch sẽ. Nó là một trình giả lập Verilog miễn phí với một cách rất dễ dàng để gắn vào sim hoặc tạo các băng ghế thử nghiệm trong C / C ++. Bạn cũng có thể sử dụng Verilog, không giới hạn bạn ở đó. Cũng có Icarus Verilog , lớn hơn và được nhiều người biết đến hơn, nhưng tôi muốn giới thiệu Verilator nếu bạn muốn học Verilog. Đối với VHDL có GHDL , trải nghiệm của tôi với nó không tốt bằng Verilator , nhưng ít nhất có một công cụ miễn phí để cố gắng làm ướt chân bạn. Nếu bạn có kinh nghiệm lập trình phần mềm, bạn có khả năng sẽ tiếp nhận và thưởng thức Verilog nhanh hơn VHDL.

Tôi chắc chắn đồng ý với Leon, hãy thử cả hai. fpga4fun và các trang web khác có một số thông tin tốt và một số trang đó sẽ cung cấp cho bạn cả tương đương Verilog và VHDL cho chủ đề họ đang thảo luận. Tôi thấy các trang như những trang hữu ích nhất để so sánh hai ngôn ngữ. Nếu sử dụng HDL là điều bạn muốn làm trong sự nghiệp, tôi khuyên bạn nên có ít nhất một số khả năng với cả hai, có thể thực sự tốt với một nhưng không hoàn toàn không thể sử dụng cái kia.


1
Lời khuyên rất tốt. Tôi đã chỉnh sửa câu trả lời của bạn như một tài liệu tham khảo cho tôi và những người khác. +1
Daniel Grillo

23

Nhiều cuộc chiến thánh đã được chiến đấu về điều này. Một nhược điểm đặc biệt của Verilog là hành vi không xác định của nó. http://www.sigasi.com/content/verilogs-major-flaw


Vâng, điều đó có vẻ tệ, nhưng tôi không chắc: đây là một lỗ hổng trong ngôn ngữ hoặc trong bộ tổng hợp cụ thể này?
stevenvh

4
Đó là một vấn đề ngôn ngữ. Tổng hợp khác nhau chọn hành vi riêng của họ một cách không thể đoán trước. Chạy cùng một mã trên trình giả lập Mentor hoặc giả lập Cadence và bạn có thể nhận được các kết quả khác nhau.
Philippe

20

Cả hai đều có mặt hại và mặt lợi. VHDL mang tính học thuật, dài dòng và phức tạp hơn. Bạn phải viết nhiều mã hơn, nhưng sự nghiêm ngặt có nghĩa là nó có khả năng hoạt động tốt hơn. Verilog đơn giản hơn cho thiết kế kỹ thuật số điển hình, nhưng giúp dễ dàng tạo ra các lỗi khó khăn. VHDL là phổ biến hơn tại các trường đại học. Verilog phổ biến hơn trong các công ty bán dẫn lớn.

Thông thường sự lựa chọn của cái này hay cái khác được điều khiển bởi các công cụ bạn đang sử dụng. Một số công cụ phổ biến làm tốt hơn với VHDL. Một số công cụ ASIC phổ biến làm tốt hơn với Verilog. Vì vậy, cái nào tốt hơn phụ thuộc vào những gì bạn muốn làm với nó.

Giả sử bạn muốn xây dựng các dự án nhỏ bằng cách sử dụng các Altera FPGA phổ biến trong các trường EE. Các công cụ miễn phí hỗ trợ cả HDL. Nhưng bạn có thể thấy cộng đồng người dùng chủ yếu sử dụng VHDL. Sẽ có nhiều mã ví dụ, các mô-đun có thể tái sử dụng, v.v. nếu bạn chọn ngôn ngữ đó.

Ngược lại, nếu bạn có ý định làm việc trong một công ty lớn làm công việc thiết kế chip nghiêm túc, hầu như tất cả đều sử dụng Verilog trong những ngày này. Các công cụ tổng hợp, mô phỏng và xác minh nhiệm vụ nặng nề được tối ưu hóa cho Verilog. Và gần đây, SystemVerilog - tiện ích mở rộng cho Verilog để hỗ trợ xác minh và thiết kế hệ thống cấp cao.

Thêm thảo luận ở đây và các liên kết hữu ích ở đây:

http://www.eetimes.com/electronics-bloss/programizable-logic-designline-blog/4032239/Verilog-versus-VHDL-which-is-best-

Đối với người mới bắt đầu / người có sở thích, lời khuyên tốt nhất là quyết định bạn muốn chơi loại chip nào và xem ví dụ nào nhà cung cấp cung cấp. Dùng nó. Khi bạn là một nhà thiết kế kỹ thuật số có kinh nghiệm, việc học ngôn ngữ khác sẽ chỉ mất vài ngày.


4
Cảm ơn. Câu cuối cùng rất quan trọng. Có công cụ nào chuyển đổi cái này thành cái khác không?
stevenvh

Có một số lịch sử mà chúng tôi không tham gia, nhưng nếu bạn nhìn vào mô hình, khi nó đưa verilog vào, nó sẽ chuyển đổi thành vhdl sau đó mô phỏng nó. Nó không làm điều đó theo cách khác, vì vậy, ít nhất là phiên bản cho vhdl bạn có thể thấy một số chuyển đổi với công cụ đó. có những công cụ khác hiện có chuyển đổi cụ thể theo cách này hay cách khác và chúng có phiên bản demo.
old_timer

3
Một số công cụ thương mại (tổng hợp, phân tích tĩnh) sẽ đọc bằng một ngôn ngữ và đầu ra bằng ngôn ngữ khác. Kết quả giống như sử dụng trình biên dịch để biến Ada thành ngôn ngữ hợp ngữ và sau đó là trình dịch ngược để trích xuất C. Bạn sẽ không thích kết quả đó.
Andy McC

17

Câu trả lời ngắn : sử dụng SystemVerilog, nhưng cũng học VHDL . Tránh Verilog-2001 nếu bạn có thể.

Câu trả lời rất dài : hiện tại, tôi giả sử Ver Ver có nghĩa là Verilog-2001 có lẽ là điều mà hầu hết các câu trả lời khác giả định. Gợi ý tốt nhất có lẽ là học cả hai, nhưng không sử dụng (thêm về điều này ở cuối câu trả lời). Những khác biệt chính có thể được nối lại như sau:

  • Verilog-2001 ngắn gọn , trong khi VHDL thì dài dòng (rất, rất, rất)
  • Verilog-2001 hỗ trợ các cấu trúc mức rất thấp không được VHDL hỗ trợ (nhưng bạn sẽ không phải sử dụng chúng cho thiết kế mức chuyển đổi đăng ký (RTL) điển hình
  • VHDL được gõ mạnh hơn , điều này thường giúp phát hiện sớm lỗi dễ dàng hơn nhiều
  • VHDL biểu cảm hơn nhiều so với Verilog
  • Verilog-2001 có cú pháp giống C hơn , trong khi VHDL giống Ada hơn
  • Verilog-2001 có thể có một số khái niệm khó hiểu cho người mới bắt đầu (ví dụ wirevs reg)

Điều đó nói rằng, các khái niệm quan trọng nhất được chia sẻ bởi hai ngôn ngữ, mặc dù có tên khác nhau (ví dụ alwaysvs process) và trong mọi trường hợp, khó khăn trong việc học HDL có liên quan nhiều hơn đến các khái niệm phía sau (chẳng hạn như đồng thời của tất cả các quy trình, CTNH quy ước, vv) hơn so với ngôn ngữ chính nó. Xem xét sự khác biệt, nếu sự lựa chọn là giữa Verilog 2001 và VHDL, cá nhân tôi sẽ giải quyết bất kỳ người mới bắt đầu với VHDL.

Tuy nhiên, như tôi đã nói, đề nghị của tôi thực sự là sử dụng cả VHDL và Verilog-2001 nếu bạn không có quyền lựa chọn. Trái với những gì nhiều người cho rằng, SystemVerilog không phải là ngôn ngữ cấp cao hơn chỉ hữu ích cho thiết kế hoặc xác minh cấp hệ thống và ít chia sẻ với các ngôn ngữ có thể được đưa vào một công cụ tổng hợp cấp cao như SystemC.

Thay vào đó, SystemVerilog là một bản cập nhật đầy đủ các ngôn ngữ Verilog (dựa trên Verilog-2005, thấy http://en.wikipedia.org/wiki/SystemVerilog ) mà có một tập hợp con đầy đủ synthesizable phù hợp với conciseness của Verilog với expressivity cao hơn cả Verilog-2001 và VHDL, theo ý kiến ​​của tôi là tốt nhất của cả hai thế giới.

Ví dụ về các cấu trúc / biểu thức rất có ý nghĩa có sẵn trong SystemVerilog không có sẵn trong Verilog-2001, VHDL hoặc cả hai bao gồm:

  • always_ff, always_latch, always_combKhối giúp các nhà thiết kế phân biệt ngay giữa khối thực hiện các loại khác nhau của logic, và - cho always_combalways_latch- (! Một nguồn lỗi vô hạn trong VHDL và Verilog, đặc biệt là cho người mới bắt đầu) suy ra tự động các tín hiệu mà nên đi vào danh sách nhạy cảm
  • logiccác loại thay thế sự nhầm lẫn wireregcác loại Verilog-2001
  • các loại đóng gói cho phép dễ dàng xây dựng các xe buýt đa chiều (ví dụ logic [N-1:0][M-1:0][P-1:0]), trong khi Verilog-2001 chỉ hỗ trợ các xe buýt hai chiều và VHDL buộc nhà thiết kế phải xác định các loại mới để xây dựng các cấu trúc tương tự
  • Các cấu trúc cấp cao như struct(tương tự VHDL record) và thậm chí cấp cao hơn interfacecó thể được sử dụng rất hiệu quả để mô hình hóa các cấu trúc thông thường (chẳng hạn như các cổng của xe buýt)

Tôi đã thử nghiệm tất cả sự khác biệt này "trên da của tôi" trong khi làm việc trên một hệ thống đa lõi khá phức tạp cho mục đích nghiên cứu. Hiện tại nó được hỗ trợ bởi nhiều công cụ và tôi biết chắc chắn (từ việc sử dụng chúng gần như mỗi ngày) rằng nó được hỗ trợ bởi các công cụ Synopsys (cả cho các luồng tổng hợp ASIC và FPGA), Xilinx Vivado (để tổng hợp FPGA) và các công cụ mô phỏng như như MentorGraphics Modelim, Cadence NCsim và Synopsys VCS.

Để hoàn toàn đầy đủ, có hai loại ngôn ngữ quan trọng khác trong hộp công cụ của nhà thiết kế phần cứng (mặc dù chất lượng của các công cụ này có thể thay đổi rất nhiều):

  • Các ngôn ngữ tạo HDL như MyHDL (dựa trên Python) và Rocket (dựa trên Scala). Khái niệm ở đây là: bạn mô tả thiết kế của mình bằng ngôn ngữ cấp cao hơn nhưng vẫn sử dụng các khái niệm rất HDL (ví dụ: khối đồng thời, thời gian rõ ràng) và sau đó bạn tạo HDL thông thường (thường là Verilog-2001). Thành thực tôi không thấy những điều này siêu hữu ích vì bước trừu tượng từ HDL là nhỏ và SystemVerilog cung cấp nhiều khái niệm cấp cao hơn, với lợi thế là nó được đưa trực tiếp vào luồng tổng hợp không có bước trung gian.
  • Các công cụ tổng hợp cấp cao , như Vivado HLS, LegUp, Calypto Catapult và nhiều công cụ khác. Chúng lấy một mô tả cấp độ rất cao, thường là trong C, C ++ hoặc SystemC và thường không được nêu ra, và tạo ra một triển khai nỗ lực tốt nhất trong Verilog (thường không thể đọc được). Chúng khá giỏi trong việc tạo ra một số đối tượng (ví dụ: máy gia tốc CTNH cho các chức năng như tích chập, FFT, v.v.) nhưng thường không có mục đích chung. Ví dụ, không thể thiết kế lõi bộ xử lý trong hầu hết các công cụ HLS - công cụ duy nhất tôi biết là BlueSpec, đây thực sự là sự kết hợp giữa thế hệ HLS và HDL.

Đây là cách tôi học được khá nhiều. Học VHDL đầu tiên và mã hóa nó trong 3 năm. Sau đó, đã dành 3 tháng để mã hóa phiên bản mã hóa và (rất nhanh chóng) quyết định SystemVerilog là con đường để đi. Bây giờ tôi viết mã hầu như chỉ là SV, nhưng phụ thuộc rất nhiều vào sự hiểu biết và kỹ thuật mã hóa mà tôi đã học được khi sử dụng VHDL.
stanri

12

Sự nghiệp của tôi trong 13 năm qua là 80% ASIC và 20% FPGA.

VHDL đã được sử dụng trong 3,5 năm đầu tiên và phần còn lại là Verilog. Tôi không thấy việc chuyển sang Verilog khó khăn và vì lý do địa điểm (Thung lũng Silicon) và lý do tốc độ tôi chỉ viết mã trong Verilog ngày hôm nay.

Ngoài ra, tôi thực hiện rất nhiều giao diện Async, chốt và thiết kế bán tùy chỉnh cấp độ cổng cho hiệu suất, vì vậy VHDL hiện đang sử dụng rất ít trong cuộc sống của tôi. Thay vào đó, tôi thấy SystemVerilog và SystemC hữu ích hơn nhiều để chọn và sử dụng cho các dự án kỹ thuật lớn.

Ở một giai đoạn, các công cụ như Verilator (miễn phí! & Nhanh) đã tiết kiệm cho tôi rất nhiều quỹ cần thiết cho các mô phỏng quan trọng. Bạn chưa có tùy chọn này (chưa) cho VHDL. Và bạn có thể không bao giờ cần nó nếu bạn luôn bơi trong một hồ bơi giàu có hoặc bạn không làm> 1M thiết kế cổng.

Không bao giờ, VHDL tốt hơn cho người mới bắt đầu trước khi họ phát triển các nguyên tắc thiết kế CTNH vững chắc. Thông tin liên lạc của tôi với những người EDA ở đây cho thấy họ đã thực hiện ít phát triển VHDL trong 10 năm qua và có một ổ đĩa lớn đằng sau HLS ngày hôm nay. Vì vậy, sẽ không có nhiều nhà phát triển công cụ VHDL xung quanh ...


FreeHDL cho mô phỏng VHDL? Qucs như frontend.
Martin

8

Tôi đã đi đến VHDL, chủ yếu là vì tôi biết C rất rõ và thấy rằng việc cố gắng viết verilog có xu hướng khiến tôi viết như thể tôi đang nhắm mục tiêu một CPU không mô tả phần cứng.

Rất khó chịu khi viết một trang mã và nhận ra những gì bạn đã viết thực sự là một chương trình tuần tự không phải là một thiết kế phần cứng, phải là nó sẽ tổng hợp, nhưng kết quả thật xấu xí và chậm chạp.

VHDL đủ khác biệt để tôi thấy dễ dàng hơn nhiều khi nghĩ về thiết kế logic và không kiểm soát dòng chảy.

Vào cuối ngày, ngôn ngữ hiếm khi khó, kỹ năng là trong thiết kế hệ thống chứ không phải gõ.

Trân trọng, Dân.


5

Năm ngoái, trường đại học mà tôi đã học đã thúc đẩy hai khóa học mở cho người mới bắt đầu. Cả hai đều có cùng một nội dung nhưng một sử dụng VHDL và Verilog khác.

Tất nhiên, tôi đã hỏi cả hai giáo sư về sự khác biệt của VHDL và Verilog. Cả hai không thể chọn tốt nhất.

Vì vậy, tôi đã phải làm cả hai khóa học để xem cái nào có thể tốt hơn với tôi. Ấn tượng đầu tiên của tôi là VHDL giống Pascal hơnVerilog giống C hơn .

Sau này tôi đã quyết định chỉ làm VHDL vì tại thời điểm đó, tôi đang làm việc với Delphi.

Nhưng tôi không bao giờ làm việc với FPGA sau khóa học. Vì vậy, đây là điều tốt nhất tôi có thể giúp bạn.


5

Tôi sử dụng VHDL gần như hoàn toàn. Kinh nghiệm của tôi là VHDL phổ biến hơn ở châu Âu, Verilog ở Mỹ, nhưng VHDL cũng đang có những tiến bộ ổn định ở Mỹ. Việc gõ mạnh VHDL không làm phiền tôi vì tôi sử dụng nó như một ngôn ngữ thiết kế phần cứng lỗi thời như được sử dụng trong logic lập trình nhỏ, như AHDL của PALASM hoặc Altera.

Vấn đề lớn đối với hầu hết mọi người sử dụng VHDL là các loại mạnh. Họ muốn thực hiện các bài tập giữa std_logic_vector (mà tôi nghĩ là tập hợp các dây trong mục tiêu) và "int", (mà tôi nghĩ là một số được lưu trữ trong máy tính đang biên dịch thiết kế). Chuyển đổi loại khó chịu nhất mà tôi thường gặp phải là giữa bit_vector (mà tôi nghĩ là mô tả về bộ sưu tập dây trong máy tính biên dịch thiết kế) và std_logic_vector. Trong thực tế, điều đã kéo tôi đến stackexchange ngay bây giờ là tìm kiếm một chuyển đổi từ char (một biến ký tự được lưu trữ trong máy tính biên dịch) sang int.

Trước đây, cuộc xung đột nổi tiếng nhất giữa VHDL và Verilog là cuộc thi thiết kế do tạp chí ASIC & EDA sắp xếp. Google "Kết quả bất ngờ từ một cuộc thi thiết kế phần cứng: Verilog won & VHDL bị mất? - Bạn là người phán xét!", Ví dụ: http://www.ee.ed.ac.uk/~gerard/Teach/Verilog/manual /Example/lrgeEx2/cooley.html

Cuộc thi là để thực hiện một thanh ghi 9 bit khá phức tạp. Nó có tính năng tăng / giảm cũng như một vài thứ khác. Kết quả là 8 trong số 9 nhà thiết kế Verilog có mã chạy sau 90 phút. Không ai trong số 5 người VHDL có bất cứ điều gì làm việc.

Tôi không sử dụng VHDL như bất kỳ ai khác. Cách tôi sử dụng nó, các loại không theo cách của tôi rất thường xuyên. Tôi đã thực hiện dự án trên giống như cách tôi làm mọi thứ khác, hoàn toàn trong std_logic và std_logic_vector, sử dụng (trở lại trong ngày) thư viện không dấu của IEEE. Thay vào đó, tôi tưởng tượng rằng các nhà thiết kế VHDL đã làm việc với int và bị lạc trong chuyển đổi loại.

Có hai nơi bạn có thể bị lạc trong chuyển đổi loại: (a) thiết kế của bạn và (b) băng ghế thử nghiệm của bạn. Đối với tôi, thật dễ dàng hơn để viết băng ghế thử nghiệm (gần như) hoàn toàn bằng std_logic để băng ghế thử nghiệm có thể được tổng hợp (gần như). Bởi "gần như" Tôi có nghĩa là tôi sẽ xác định đồng hồ với một nhiệm vụ bị trì hoãn không thể tổng hợp được. Nhưng khác với điều đó (và ý kiến), bạn không thể phân biệt băng ghế thử nghiệm của tôi với logic tổng hợp.

Dù sao, trước khi bạn quyết định học ngôn ngữ đầu tiên (hầu hết mọi người đều có sở thích nhưng hầu như mọi người đều sử dụng cả hai), tôi sẽ khuyên bạn nên tìm kiếm cuộc thi đó và đọc bình luận về nó.

Một trong những vấn đề tôi quan sát được với VHDL là vì đây là một ngôn ngữ rất dài dòng, dường như có một xu hướng (trong suy nghĩ của các nhà thiết kế) để tin rằng nó không cần bình luận. Tất nhiên là không đúng, bạn nên viết bình luận trước khi viết mã.


1
Tôi nghĩ rằng đây là một tuyên bố thú vị rằng việc gõ mạnh VHDL là vấn đề lớn nhất. Đối với tôi, gõ mạnh là một tính năng trung tâm cho phép tôi nâng cao mức độ trừu tượng. Trong thiết kế phần cứng, bạn có quyền lựa chọn giữa việc mô tả một cấu trúc thực hiện một hành vi hoặc mô tả một hành vi thực hiện một cấu trúc. Lịch sử đã chỉ ra rằng sự trừu tượng là chìa khóa để thiết kế hệ thống lớn thành công và các hệ thống kỹ thuật số cũng không ngoại lệ. Tôi nghĩ rằng bạn bỏ lỡ rất nhiều bằng cách giới hạn một tập hợp con rất hẹp của các tính năng ngôn ngữ.
trondd

2
Đúng, nhưng tôi không chuyên về "thiết kế hệ thống lớn", tôi chuyên về những thứ nhỏ cần cực kỳ hiệu quả. Có một số lý do mà hiệu quả đôi khi trở thành tối quan trọng trong thiết kế điện tử. Đôi khi một hệ thống lớn được làm từ rất nhiều các hệ thống nhỏ và loại thiết kế này mang đến cho đến nay hiệu quả cao hơn.
Carl Brannen

5

Tôi sẽ cân nhắc hai xu của mình: Bản thân tôi là một người dùng VHDL nặng, nhưng Verilog chắc chắn có thể hoàn thành công việc tốt như vậy. Bạn luôn có thể bọc cái này với cái khác (mặc dù có thời gian và chi phí đánh máy).

Những gì tôi đã tìm thấy là VHDL thô thiếu rất nhiều chức năng tiện dụng. (HOẶC hoặc AND: ing toàn bộ std_logic_vector xuất hiện trong tâm trí). Do đó, việc xây dựng cho mình một hộp công cụ gồm các chức năng tổng hợp, gỡ lỗi sẽ giúp tăng năng suất khi sử dụng VHDL.

Có lẽ ai đó có thể tham khảo một thư viện nguồn mở tốt cung cấp tất cả các chức năng "tốt để có" này?


2
Tôi khá chắc chắn rằng việc giảm AND / OR được bao gồm trong VHDL 2008 cùng với một số cập nhật hữu ích khác.
ks0ze

4

Các câu trả lời trước bao gồm khá nhiều sự tương phản giữa hai ngôn ngữ và bài viết này cũng đề cập đến các điểm khá tốt: http://www.bitweenie.com/listings/verilog-vs-vhdl/

Tôi cũng muốn làm cho một vài điểm chưa được đề cập.

Tôi khuyên bạn nên học VHDL trước vì một vài lý do. Việc gõ mạnh giúp một số lỗi dễ dàng của người mới bắt đầu bị trình biên dịch bắt gặp. Tôi cũng đã nghe nói VHDL khó nhận hơn sau khi sử dụng Verilog trước.

Thành thật mà nói, bạn không thể sai với một trong hai ngôn ngữ; và nếu bạn làm việc trong ngành này rất lâu, cuối cùng bạn cũng sẽ học cả hai ngôn ngữ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.