Thông báo

Collapse
No announcement yet.

Thảo luận về VHDL

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Thảo luận về VHDL

    Bác yesme@ suggest tài liệu và software học tập như đã làm với VHDL đi.
    Hôm rứa vào thư viện, em thấy có cuốn

    Application-Specific Integrated Circuit
    của Michael John Sebastian Smith
    Hardcover: 1026 pages
    Publisher: Addison-Wesley Professional

    đọc quá thấy hay quá, thật tình cờ là thấy mấy bài của bác post hao hao giống trong đó.
    bác thấy cuốn này thế nào, em đang dành tiền để mua, mà đồ quỷ này dầy quá, photo ra cũng hết cả chục đô rồi.

  • #2
    Bài giới thiệu về ASIC được tóm tắt từ cuốn sách ASIC của Michael John Sebastian Smith. Cuốn sách này viết khá cơ bản về ASIC: từ lịch sử phát triển đến các vấn đề kĩ thuật. Mình nghĩ nếu ai có ý định tìm hiểu về ASIC nên đi bắt đầu từ cuốn này.


    Comment


    • #3
      Em đang làm một ví dụ nhỏ về nibble-comparator , trong chương năm , sách của navabi

      Không rõ bị lỗi gì, sao biên dịch được mà không mô phỏng được (ModelSim5.6) .Có lẽ do việc gán giá trị vào tín hiệu đích có vấn đề. Bác nào biết thử coi giúp rồi giải thích nguyên nhân hộ em cái ( đặc biệt cái phần gán value vào chân cổng trong teshbech, em thấy nó có vấn đề). Thank
      Last edited by yesme@; 16-11-2005, 03:26.

      Comment


      • #4
        Nguyên văn bởi tieulinhvu20
        Em đang làm một ví dụ nhỏ về nibble-comparator , trong chương năm , sách của navabi

        Không rõ bị lỗi gì, sao biên dịch được mà không mô phỏng được (ModelSim5.6) .Có lẽ do việc gán giá trị vào tín hiệu đích có vấn đề. Bác nào biết thử coi giúp rồi giải thích nguyên nhân hộ em cái ( đặc biệt cái phần gán value vào chân cổng trong teshbech, em thấy nó có vấn đề). Thank

        Mình đã xem lại cái code của bạn rồi. Lỗi thứ nhất thuộc về sách bạn đã sửa - lỗi đó là lỗi về khai báo COMPONENT. Tuy nhiên, do bạn chưa quen nên đã mắc phải lỗi thứ hai. Lỗi này không thuộc về cú pháp nên trình dịch không thể phát hiện được.

        Lỗi này được giải thích như sau:
        Khi bạn tạo thư viện làm việc bằng lệnh vlib thì sẽ xuất hiện một thư viện "work" - nhớ là chữ work viết thường. Tuy nhiên, trong chương trình của bạn tại dòng gọi thư viện lại khai báo là "WORK" - chữ WORK viết hoa. Ví dụ trong chương trình testbench của bạn có dòng viết:

        FOR ALL: comp1 USE ENTITY WORK.bit_comparator(gate_level);

        Như vậy khi mô phỏng thì trình mô phỏng không thể liên kết đến thư viện components của bạn. Lỗi tương tự trong file nibble_comparator.vhd. Bạn chỉ cần sửa lại là ok. Hoặc download code mình đã sửa.

        Chúc vui !


        Comment


        • #5
          bác yesme@ cho em hỏi một chút

          em down về compile thì OK nhưng mô phỏng thì nó báo lỗi fatal gì đó giống như hình em gửi phía dưới (sau khi đã sửa lại WORK thành work)

          em có một số thắc mắc: trong phần testbench, việc gán liên tiếp các transaction vào driver tín hiệu như a và b, em có một câu hỏi là sau khi gán hết 10 giá trị vào a chẳng hạn, thì trong driver của a sẽ như thế nào, các transaction mới sẽ ghi đè cái cũ hay sẽ append? ví dụ:
          a <= "0000",
          "1111" AFTER 500NS
          ....
          "1111" AFTER 5500NS

          Đây là thời gian chờ kiểu Inertial
          Như vậy, nhận xét thứ nhất, sau thời gian trễ là delta, giá trị 0000 được gán vào a, sau đó một khoảng thời gian 500NS, giá trị 1111 sẽ được gán vào a, rõ ràng là hai giá trị này khác nhau (Vnew/= Vexisting) , nhận xét thứ hai,
          hiệu hai thời gian là (500-0)NS = 500NS nhở hơn hoặc bằng 500NS(reject value) => vậy kết luận là transaction cũ sẽ bị transaction mới ghi đè,tương tự cho các giá trị tiếp theo, rốt cuộc trong driver tín hiệu sau khi gán chỉ có transaction (1111, 5500NS) thôi sao?

          Không biết có phải bản ModelSim của em license không hợp lệ nên nó không cho mô phỏng không nhỉ?
          Attached Files

          Comment


          • #6
            Mình chạy lệnh VSIM và thấy ok rồi nên không check tiếp đoạn sau. Đúng là đoạn code trên vẫn còn một lỗi (chứ không phải Modelsim của bạn có lỗi) nên khi chạy lệnh "run 6000" thì báo lỗi.

            Lỗi đó là trên dòng 27 và 28 cùng giá trị về thời gian mà lại gán 2 kết quả khác nhau. Lỗi do người đánh máy đoạn code. Dòng 28 trên (xem hình post bởi anh_hao_hoa) phải sửa lại là:

            "1111" AFTER 6000 NS;

            Để phù hợp với thời gian gán cho b.

            Chúc vui
            Last edited by yesme@; 17-11-2005, 04:39.


            Comment


            • #7
              Hi, chết thật, vậy mà em không nhìn ra, sửa lại thì chạy mô phỏng OK rồi!
              À còn câu hỏi nữa, bác giải thích giùm em tại sao mấy cái transaction không overwrite mà lại append nhau vậy?

              Comment


              • #8
                Có ai thay đổi được quá khứ => làm thế nào để thay đổi được giá trị của tín hiệu đã qua.


                Comment


                • #9
                  Nguyên văn bởi yesme@
                  Có ai thay đổi được quá khứ => làm thế nào để thay đổi được giá trị của tín hiệu đã qua.
                  Bác nói cũng có lý, nhưng đây là ngôn ngữ mô tả phần cứng, việc gán giá trị cho biến a(như trong hình) là đồng thời, còn việc khi nào xảy ra quá độ trên tín hiệu a là còn tùy vào giá trị định thời sau từ khóa AFTER, theo cách hiểu của em, mình có thể gọi đó là một kế hoạch( transaction _ đại loại là như vậy)có dạng như (value, time), và những kế hoạch này sẽ được ghi vào driver của tín hiệu => nảy sinh vấn đề những kế hoạch đó được ghi nối tiếp vào nhau giống như hàng đợi và xảy ra quá độ một cách tuần tự hay sẽ xảy ra tình trạng ghi đè giống như em hỏi phía trên, em nghĩ sẽ xảy ra ghi đè(overwrite) như giải thích phía trên, trong khi xem những gì xảy ra trong mô phỏng thì thực sự lại là ghi móc nối, tín hiệu quá độ tuần tự.

                  Em chỉ thắc mắc mỗi chỗ này thôi, bác giải thích rõ hộ em nhé.

                  Comment

                  Về tác giả

                  Collapse

                  anh_hao_hoa Tìm hiểu thêm về anh_hao_hoa

                  Bài viết mới nhất

                  Collapse

                  Đang tải...
                  X