2009-03-16 33 views

Trả lời

10

Tôi e rằng mình cũng không biết gì về Verilog, mặc dù tôi lưu ý rằng có Verilog Distribution trên CPAN và nó chứa rất nhiều mô-đun có thể liên quan đến công việc của bạn. Thực hiện tìm kiếm trên search.cpan.org cũng có thể cung cấp một số lợi ích.

Trong mọi trường hợp, bạn sẽ cần tìm hiểu cách đi bộ trước khi có thể chạy. Thật tuyệt vời khi có mục tiêu khi học một ngôn ngữ mới, nhưng các mô-đun sẽ không giúp bạn trừ khi bạn hiểu cú pháp và ngữ nghĩa của Perl.

Nếu bạn đang tìm kiếm một cuốn sách hay để học hỏi, sau đó đã được đề cập Học tập Perl (bởi Stackoverflow Regular brian d foy) là tuyệt vời; lấy phiên bản mới nhất mà bạn có thể tìm thấy. Nếu bạn muốn bắt đầu học ngay bây giờ, thì tôi khuyên bạn nên tải xuống Perl Training Australia 's Programming Perl course manual. Cả hai tài nguyên đều chứa nhiều ví dụ chuyên sâu, liên kết đến thông tin thêm và các bài tập bạn có thể cố gắng củng cố kiến ​​thức của mình.

Ngoài ra còn có danh sách recommended online tutorials trên Perl 5 wiki.

Tiết lộ: Tôi là đồng tác giả của sách hướng dẫn khóa học của Perl Training Úc, và tôi ngưỡng mộ brian d foy là một trong những anh hùng của cộng đồng Perl. Tôi cũng là người đóng góp thường xuyên cho wiki Perl 5.

All the best,

Paul

+2

liệu munging với Perl bởi Dave Cross cũng là một cuốn sách tốt cho những người đang sử dụng chính của Perl được chỉ kéo thứ ra khỏi văn bản. –

6

Tôi không biết gì về Verilog, nhưng nếu bạn đã quen thuộc với ngôn ngữ lập trình khác, thì tôi khuyên bạn nên Học Perl.

Bạn cũng có thể xem this page để biết sau.

2

Tôi không chắc chắn về phân tích cú pháp đầu ra, (bạn phải cụ thể nhất về hình thức của nó) nhưng có vẻ như là good guide to existing Verilog-based modules đã được cập nhật gần đây.

1

Verilog cổng cấp file netlist chỉ là tập tin văn bản, thường outputted từ một số phần mềm như Synopsys Thiết kế Compiler, vì vậy chúng rất thích hợp để được phân tích bằng Perl.

Là các tệp văn bản đơn giản, thực sự không có gì đặc biệt về chúng liên quan đến Perl. Nghiên cứu bất kỳ hướng dẫn Perl nào giới thiệu cho bạn các khái niệm cơ bản về cú pháp Perl và các biểu thức chính quy và những gì bạn sẽ học ở đó sẽ dễ dàng thích ứng với các tác vụ liên quan đến Verilog của bạn. Xem ví dụ: http://perldoc.perl.org/perlintro.html - để có phần giới thiệu chung. http://perldoc.perl.org/perlretut.html - để có hướng dẫn biểu thức chính quy tốt.

Tuy nhiên, ngay cả một chương trình đơn giản cũng có thể có nhiều lỗi ẩn. Ví dụ, cho phép nói rằng bạn muốn in tất cả các tên mô-đun từ thứ bậc Verilog netlist của bạn:

use strict; 
use warnings; 

my $infile = $ARGV[0] or die "$0 Usage:\n\t$0 <input verilog file>\n\n"; 
open(my $in_fh , '<' , $infile) or die "$0 Error: Couldn't open $infile for reading: $!\n"; 

while(<$in_fh>) { 

    if (m/^module\s+(\S+)/) { 
     print "$1\n"; 
    } 

} 

close($in_fh) or die "$0 Error: Couldn't close $infile after reading: $!\n"; 

Thậm chí dụ ngắn này là đầy đủ các lỗi tiềm năng: những gì nếu tên mô-đun không phải là trên cùng một dòng là " mô-đun "từ khóa? điều gì sẽ xảy ra nếu không có khoảng trống giữa phần mở đầu ("của module và tên module?"điều gì sẽ xảy ra nếu có khoảng trống (hoặc khoảng cách) giữa đầu dòng và từ khóa "mô-đun"?

Bạn cần phải biết những thách thức này. Nếu tất cả những gì bạn cần là một giải pháp đơn giản cho một nhiệm vụ liên quan đến Verilog, một kịch bản Perl đơn giản như giải pháp trên là một giải pháp tốt, cung cấp tài liệu đúng để cảnh báo người dùng tương lai về những thiếu sót đã biết của nó.

Nếu bạn cần một cái gì đó phức tạp hơn, liên quan đến phân tích cú pháp mã Verilog phức tạp hơn, tôi có thể thử xem có bất kỳ công cụ nào của bạn (trình biên dịch, linter, trình kiểm tra tương đương chính thức, trình mô phỏng, v.v.) không dữ liệu bạn cần. Tất cả các công cụ này bao gồm các trình phân tích cú pháp Verilog trưởng thành và làm việc, được tối ưu hóa cho tốc độ/bộ nhớ và thường xuyên cung cấp giao diện dựa trên Tcl để truy cập dữ liệu.

Một số người ở trên tôi đã đề xuất Verilog-Perl. Tôi đã thử nó và thấy nó cực kỳ chậm. Nếu bạn đang xử lý netlists trên 100MB, tôi sẽ không sử dụng giải pháp này nhưng số dặm của bạn có thể thay đổi.

1

Tôi tin rằng bạn đang tìm kiếm Verilog Perl. Đối với một lớp trả tiền trên Perl cho Verilog/VHDL xem xét this from Doulos. Tôi đứng thứ hai về cuộc bầu chọn cho khóa học Perl Training của Australia Perl Training để học Perl nói chung.

2

Perl Intro trên perldoc là cách đầu tiên tôi học được. Nó là một oveview thực sự nhanh chóng và dễ dàng của ngôn ngữ. Tất cả những người mới bắt đầu đã biết một ngôn ngữ lập trình nên bắt đầu ở đây. Bạn có thể đọc nó trong khoảng nửa giờ và sẵn sàng bắt đầu viết mã.

Các vấn đề liên quan