Điều gì sẽ khiến tôi chọn Verilog hoặc VHDL thay vì thiết kế sơ đồ trên CPLD hoặc FPGA?


13

Tôi hoàn toàn không có nền tảng về logic lập trình, tôi sử dụng hầu hết các bộ vi điều khiển trong các dự án của mình nhưng gần đây tôi cần làm việc với video và vi điều khiển quá chậm so với những gì tôi cần vì vậy tôi bắt đầu chơi với CPLD.

Tôi đã có thể nhận được kết quả tốt với CPLD chỉ bằng cách sử dụng thiết kế sơ đồ nhưng khi tìm kiếm thông tin về CPLD tôi đã bắt gặp nhiều ví dụ sử dụng VHDL và Verilog. Tôi tò mò về những gì có thể khiến tôi muốn xác định thiết bị của mình bằng một trong những ngôn ngữ này. Họ có thể làm gì mà thiết kế sơ đồ không thể? Có phải chúng được sử dụng chủ yếu cho các chức năng?

Cho đến bây giờ tôi chỉ sử dụng CPLD, các thiết kế của FPGA có lợi hơn CPLD khi sử dụng các ngôn ngữ này không?


1
Bạn có thể sẽ tìm thấy các công cụ tổng hợp do nhà cung cấp cung cấp cho cả Verilog và VHDL cho các phần chính. Do đó sự lựa chọn hoàn toàn là ý kiến. Tôi khuyến khích bạn nhìn vào cả hai và quyết định xem bạn thích cái nào hơn. Xilinx cung cấp các ví dụ tốt trong cả hai ngôn ngữ, tôi nghi ngờ các nhà cung cấp khác cũng vậy.
David

3
Bạn chắc chắn nên bước ra khỏi chụp sơ đồ cho thiết kế logic. Nó cảm thấy dễ dàng hơn khi bắt đầu, nhưng đó là ảo tưởng. 0,02 đô la của tôi về các ngôn ngữ: VHDL là một sự gớm ghiếc, hãy sử dụng Verilog.
Markt

@markt, tại sao bạn nghĩ VHDL là xấu?
stanri

2
Người ta cũng có thể nói Verilog là một sự gớm ghiếc, hãy sử dụng VHDL. VHDL không mong đợi bạn nói chính xác những gì bạn muốn, trong khi Ver đoán sắp xếp. Nhưng đó chỉ là 0,02 bảng của tôi.
Brian Drumond

1
@markt, tôi đã bắt đầu với VHDL vì vậy tại một thời điểm tôi đánh giá cao sự mạnh mẽ của nó. Nó buộc tôi phải suy nghĩ về những gì tôi muốn và tạo thói quen tốt khi tôi bắt đầu. Bây giờ tôi đi quá xa vào trại SystemVerilog để quan tâm quá nhiều, dù sao đi nữa.
stanri

Câu trả lời:


14

Thiết kế sơ đồ chỉ hữu ích khi bạn chỉ liên kết một vài mô-đun ngoài giá (bộ đếm, bộ cộng, bộ nhớ, v.v.). Nhưng việc thực hiện một thuật toán thực tế (giả sử, thuật toán băm mật mã) gần như không thể thực hiện được nếu không có HDL (như VHDL hoặc Verilog), vì không có cách nào để mô tả một hệ thống ở cấp độ hành vi với các ký hiệu sơ đồ.

Hầu hết các dự án được thực hiện trong HDL theo kiểu hành vi bởi vì chúng quá phức tạp để được tổng hợp bằng tay và được vẽ bằng cách sử dụng sơ đồ logic.

CPLD thường được sử dụng cho logic keo và ít được sử dụng để xử lý, và nói chung logic rất dễ thực hiện theo sơ đồ, vì vậy tôi nghĩ rằng bạn đúng khi bạn đề xuất rằng các thiết kế dựa trên công nghệ đồ họa được hưởng lợi nhiều hơn từ việc sử dụng HDL.


Bạn có thể làm những điều rất phức tạp trong một hệ thống sơ đồ tượng trưng. Tôi sẽ đi xa hơn để nói rằng bất cứ điều gì có thể được thực hiện trong HDL đều có thể được thực hiện trong một hệ thống dựa trên sơ đồ, mặc dù phải trả giá cho khả năng bảo trì. Miễn là bộ công cụ có thể định nghĩa các khối biểu tượng hoạt động như một biểu tượng duy nhất, bạn có thể làm được khá nhiều thứ.
Sói Connor

1
Một ví dụ điển hình ở đây là labview. Đó là một giao diện lập trình mang tính biểu tượng nơi mọi người đã thiết kế các hệ thống phức tạp ồ ạt tự động hóa toàn bộ các nhà máy. Kết quả cuối cùng là không thể hiểu được, nhưng điều đó là có thể (lưu ý: Tôi không nói liệu đó có phải là một ý tưởng tốt hay không , chỉ là khả năng cơ bản).
Sói Connor

"Hầu hết các dự án được thực hiện theo HDL theo kiểu hành vi ..." là không thể hỗ trợ và trên thực tế KHÔNG phải là cách thiết kế hoạt động.
giữ chỗ

@ConnorWolf Phải không đồng ý về mã Labview là không thể nhầm lẫn-- không phải tôi là một fan hâm mộ lớn. Có một số thực hành tốt nhất thực sự có ích. Đối với tôi, thường là sự từ bỏ với bất kỳ hy vọng nào về khả năng tương thích tiến hoặc lùi gây ra vấn đề bảo trì, trái ngược với bất cứ điều gì vốn có của ngôn ngữ G;)
Scott Seidman

4

Một vài khía cạnh thực tế bên cạnh câu trả lời xuất sắc của Jay:

  • Lỗi. Các công cụ sơ đồ có xu hướng buggier * hơn phần còn lại của bộ công cụ. Điều này có thể là do sự ưu tiên của Verilog / VHDL so với sơ đồ trong ngành và do đó, việc nhập sơ đồ được các nhà phát triển phần mềm chú ý ít hơn.
  • Tốc độ. Sơ đồ cần được chuyển đổi đầu tiên thành HDL trước khi chuyển nó sang công cụ tổng hợp. Điều này có thể có tác động tiêu cực đến thời gian xây dựng. HDL được tạo ra cũng có thể không dễ đọc nếu trong trường hợp bạn cần kiểm tra nó vì một số lý do.
  • Tính di động. Tùy thuộc vào số lượng nguyên thủy cụ thể của nhà cung cấp được sử dụng Verilog và VHDL có thể di chuyển nhiều hay ít giữa các thiết bị. Sơ đồ chuyển cổng bạn phải vẽ lại mọi thứ hoặc dựa vào khả năng nhập / xuất được cung cấp (nếu có).

* Lỗi yêu thích của tôi trong Xilinx ISE là không thể chọn dây dọc.


2

Có nhiều ưu điểm của HDL (Ngôn ngữ mô tả phần cứng) làm tiêu chuẩn Thiết kế.

Mô tả chức năng có thể ở cấp độ cao hơn, các thiết kế dựa trên HDL có thể được tổng hợp thành mô tả cấp độ cổng của công nghệ đã chọn, Thiết kế HDL dễ hiểu hơn so với danh sách mạng cấp độ cổng hoặc mô tả sơ đồ và HDL giảm lỗi vì kiểm tra loại mạnh.

Các ngôn ngữ mô tả phần cứng VHDL và Verilog được thiết kế để mô hình hóa phần cứng với mục đích mô hình hóa ở mức độ trừu tượng cao hơn bao gồm các tính năng như, đồng thời, thời gian, phân cấp, tái sử dụng các thành phần, hành vi trạng thái, hành vi đồng bộ, hành vi không đồng bộ, đồng bộ hóa và song song vốn có .

Các vấn đề phát sinh trong quá trình tổng hợp, ánh xạ mô tả thiết kế đến một quy trình cụ thể và thực hiện cổng. Điều này yêu cầu bạn không thể sử dụng các tính năng cấp cao của HDL - bạn phải tạo ra "Verilog / VHDL tổng hợp"

Vì vậy, bạn có HDL để tổng hợp và HDL cho Mô phỏng và tập hợp con được tổng hợp là công cụ cụ thể.

Bạn không thể chuyển từ mô tả thiết kế Hành vi sang danh sách / bố cục mạng. Nhưng bạn có thể cấu trúc thiết kế của mình để có các thành phần hành vi cũng có khía cạnh tổng hợp có thể so sánh với nhau. Bạn bắt đầu với hành vi và sau đó khi nó hoạt động, bạn viết lại để tổng hợp (đó là một tập hợp con). Bạn đi từ tổng quát đến cụ thể và xây dựng các băng ghế thử nghiệm trên đường đi.


1

Một lợi thế nữa là HDL có được tất cả các lợi thế giống như các ngôn ngữ lập trình thông thường ở chỗ chúng có thể được sử dụng trong các hệ thống kiểm soát phiên bản tiêu chuẩn, diff-ed để kiểm tra các thay đổi, v.v.


0

Ngoài những gì đã được nói: đại diện văn bản đơn giản là dễ quản lý hơn nhiều, đặc biệt là trong các dự án lớn. Bạn có thể (mặc dù có những khó khăn lớn) chuyển đổi bất kỳ HDL có thể tổng hợp nào thành sơ đồ, nhưng hàng trăm dòng văn bản đơn giản dễ làm việc hơn hàng trăm yếu tố sơ đồ.

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.