Qui định về quản lý SPAM, vui lòng đọc kĩ trước khi post bài

Mọi thắc mắc về công tác sinh viên, học vụ (lịch thi, điểm thi, đăng ký môn, tổ chức lớp, thông tin liên lạc lớp trưởng/giảng viên v.v...) sinh viên sử dụng tài khoản là MSSV để trao đổi tại các box phù hợp trong Mục CỘNG ĐỒNG UIT

+ Trả lời bài viết
Trang 2/2 ĐầuĐầu 1 2
Hiện kết quả từ 11 tới 16 của 16

Chủ đề: [Thử tài thiết kế số] Thiết kế Counter

  1. #11
    Trần Đại Dương Avatar của 11520537
    Tham gia ngày
    Sep 2011
    Khoa
    Kỹ thuật máy tính
    Bài gửi
    1.748
    Post Thanks / Like
    Mentioned
    12 Post(s)
    Quote Nguyên văn bởi 12520797 Xem bài viết
    đủ đô rồi thầy tại hôm đó em bị lú nên viết lung tung


    e cũng đồng ý với a Dương
    Nhưng nhiều điều nhỏ kéo theo trong thiết kế sẽ xuất hiện: a Dương: so sánh với 0 sẽ tốt hơn rất nhiều so với việc so sánh 1 số khác không,..... và theo thuật tóan đưa ra thì vòng lặp sẽ sảy ra "n lần", và theo e thấy thì, việc set cho biến đếm 1 giá trị khác 0 (n lần) cũng sẽ gây ra việc tiêu tốn tài nguyên nhiều hơn so với việc reset biến đếm đó về 0 (n lần)...... vậy trong thiết kế, việc tối ưu (so sánh tài nguyên) sẽ dừng ở mức nào....... và thấy rằng việc thiết kế thì nhanh hơn việc tốt ưu thiết kế rất nhiều lần
    Câu hỏi của e đặt ra là khi thiết kế xxx: việc so sánh tài nguyên để tối ưu thiết kế là rất nhọc nhằn........... vậy khi đi làm, thằng thiết kế phải tự tối ưu, hay phải có thêm thằng (level cao hơn) đảm nhiệm cho việc kiểm tra và tối ưu thiết kế của thằng thiết kế xin hết
    Chào bạn,

    Cái này thì mình cũng không chắc lắm, nhưng theo mình biết trong thiết kế số thì 2 "ông tổ" là: (1) diện tích, và (2) tốc độ. Vấn đề bạn đặt ra là tài nguyên, cái này khá là tương đồng với diện tích (vấn đề diện tích còn phụ thuộc vào R&P (Route and Place) nữa). Đây việc của người viết spec, và người viết spec mới là là người thiết kế đúng nghĩa chứ không phải người gõ RTL code, những người viết spec sẽ dựa vào kiến thức và kinh nghiệm để đưa ra các cách thực hiện bài toán sao cho phù hợp. Mình xin lấy 1 ví dụ do chính mình trải qua, đó là chọn kích thước thanh ghi 32 bit hay là 6 bit (vì chỉ cần thanh ghi 6 bit là đã giải quyết được vấn đề trong khi kiến trúc thực hiện là 32 bit):
    - nếu chọn 32 bit thì việc thuận tiện cho người gõ RTL code, và dễ cho verification sau này.
    - nếu chọn 6 bit thì sẽ tiết kiệm được tài nguyên nhưng khó cho RTL code, và dễ cho verification sau này (ví dụ như gán/đọc giá trị 32 bit tới/từ thanh ghi thì phải viết code phức tạp hơn một tẹo, thực ra với trường hợp của mình thì cũng dễ thôi. Nhưng trong những bài toán lớn thì là cả 1 vấn đề).
    Vậy người thiết kế quyết định cái này, và trong trường hợp của mình, mình chọn kích thước 32 bit.
    Nhưng thật không ngờ, mình không nhớ cái tool mà mình đã sử dụng nữa, sau khi nó nó chạy một lúc, nó lại đưa cái thanh ghi đó về 6 bit với lý do 26 bit còn lại không thỏa mãn cái gì đó rồi mình lại sửa lại code để chọn lại kích thước 6 bit!
    Như vậy, các EDA cũng đóng góp trong việc tối ưu thiết kế.

    P/S: Quartus nó cũng có chức năng khá hay, sao chép project để chỉnh sửa sau đó so sánh tài nguyên, tốc độ, ... (bạn có thể đọc tài liệu hướng dẫn của nó để biết thêm).
    Lần sửa cuối bởi 11520537; 20-04-2015 lúc 01:34
    Tôi không hối tiếc những gì mình đã làm. Tôi chỉ hối tiếc những gì đã không làm khi có cơ hội!

  2. #12
    Trần Đạo
    Tham gia ngày
    Aug 2012
    Khoa
    Kỹ thuật máy tính
    Bài gửi
    31
    Post Thanks / Like
    Mentioned
    1 Post(s)
    Quote Nguyên văn bởi 11520537 Xem bài viết
    Chào bạn,

    Cái này thì mình cũng không chắc lắm, nhưng theo mình biết trong thiết kế số thì 2 "ông tổ" là: (1) diện tích, và (2) tốc độ. Vấn đề bạn đặt ra là tài nguyên, cái này khá là tương đồng với diện tích (vấn đề diện tích còn phụ thuộc vào R&P (Route and Place) nữa). Đây việc của người viết spec, và người viết spec mới là là người thiết kế đúng nghĩa chứ không phải người gõ RTL code, những người viết spec sẽ dựa vào kiến thức và kinh nghiệm để đưa ra các cách thực hiện bài toán sao cho phù hợp.

    P/S: Quartus nó cũng có chức năng khá hay, sao chép project để chỉnh sửa sau đó so sánh tài nguyên, tốc độ, ... (bạn có thể đọc tài liệu hướng dẫn của nó để biết thêm).
    vâng!!! em cũng biết là 1 thiết kế tốt thì vấn đề được nhìn nhận vào: diện tích (nhỏ gọn ntn?), tốc độ xử lí (nhanh ntn?)... có thể với trước kia là như thế. nhưng với thực tế ngày này thì em thấy, yếu tố về tiêu tốn năng lượng cũng đang và đáng được quan tâm: với mọi thứ đều là smart, di động hóa (với nguồn năng lượng hạn chế là pin).

    theo em thấy thì: xu hướng tiết kiệm năng lượng hóa cho thiết kế rất được quan tâm...Xin Hết!!! =D

    p/s: chỉ là em nói lên theo 1 suy nghĩ cá nhân về sư nhìn nhận vấn đề thôi, chứ thực sự thì khả năng của bản thân chưa đến đâu nên không muốn bới móc quá sâu cho việc tối ưu

  3. #13
    Nguyễn Hoàng Cường
    Tham gia ngày
    May 2011
    Khoa
    Kỹ thuật máy tính
    Bài gửi
    32
    Post Thanks / Like
    Mentioned
    1 Post(s)
    Quote Nguyên văn bởi 11520537 Xem bài viết
    Chào bạn,

    Cái này thì mình cũng không chắc lắm, nhưng theo mình biết trong thiết kế số thì 2 "ông tổ" là: (1) diện tích, và (2) tốc độ. Vấn đề bạn đặt ra là tài nguyên, cái này khá là tương đồng với diện tích (vấn đề diện tích còn phụ thuộc vào R&P (Route and Place) nữa). Đây việc của người viết spec, và người viết spec mới là là người thiết kế đúng nghĩa chứ không phải người gõ RTL code, những người viết spec sẽ dựa vào kiến thức và kinh nghiệm để đưa ra các cách thực hiện bài toán sao cho phù hợp. Mình xin lấy 1 ví dụ do chính mình trải qua, đó là chọn kích thước thanh ghi 32 bit hay là 6 bit (vì chỉ cần thanh ghi 6 bit là đã giải quyết được vấn đề trong khi kiến trúc thực hiện là 32 bit):
    - nếu chọn 32 bit thì việc thuận tiện cho người gõ RTL code, và dễ cho verification sau này.
    - nếu chọn 6 bit thì sẽ tiết kiệm được tài nguyên nhưng khó cho RTL code, và dễ cho verification sau này (ví dụ như gán/đọc giá trị 32 bit tới/từ thanh ghi thì phải viết code phức tạp hơn một tẹo, thực ra với trường hợp của mình thì cũng dễ thôi. Nhưng trong những bài toán lớn thì là cả 1 vấn đề).
    Vậy người thiết kế quyết định cái này, và trong trường hợp của mình, mình chọn kích thước 32 bit.
    Nhưng thật không ngờ, mình không nhớ cái tool mà mình đã sử dụng nữa, sau khi nó nó chạy một lúc, nó lại đưa cái thanh ghi đó về 6 bit với lý do 26 bit còn lại không thỏa mãn cái gì đó rồi mình lại sửa lại code để chọn lại kích thước 6 bit!
    Như vậy, các EDA cũng đóng góp trong việc tối ưu thiết kế.

    P/S: Quartus nó cũng có chức năng khá hay, sao chép project để chỉnh sửa sau đó so sánh tài nguyên, tốc độ, ... (bạn có thể đọc tài liệu hướng dẫn của nó để biết thêm).
    mấy bài toán nhỏ thì lo mà tối ưu, mấy cái lớn lớn thì để EDA tool nó tự xử đi, function cho đúng là đủ chết roài!
    Ko thể chống lại lũ ngu vì chúng quá đông!

  4. #14
    Trần Đại Dương Avatar của 11520537
    Tham gia ngày
    Sep 2011
    Khoa
    Kỹ thuật máy tính
    Bài gửi
    1.748
    Post Thanks / Like
    Mentioned
    12 Post(s)
    Chào anh Cường , @07520042

    Không biết anh đang đang làm ở công ty nào, anh có thể chia sẻ một số kinh nghiệm làm việc và cơ hội việc làm trong lĩnh vực thiết kế vi mạch được không?

    Trân trọng,
    Trần Đại Dương.
    Tôi không hối tiếc những gì mình đã làm. Tôi chỉ hối tiếc những gì đã không làm khi có cơ hội!

  5. #15
    Đặng Văn Xuân Hương Avatar của 14520356
    Tham gia ngày
    Aug 2014
    Khoa
    Kỹ thuật máy tính
    Bài gửi
    15
    Post Thanks / Like
    Mentioned
    0 Post(s)

    Red face Thắc mắc.

    Quote Nguyên văn bởi 12520797 Xem bài viết
    đọc đề và e hiểu output nó ra xung như thế này: Ðính Kèm 16426
    Trong đó: T=1s, Ton=1/27MHz, Toff =1-1/27MHz.
    vậy là: 1 chu kỳ đầu tiên của Clock 27Mhz : out=1. và 26999999 chu kỳ tiếp theo của clock 27HMz thì out=0.
    reset bất đồng bộ khi có cạnh lên của clock 27MHz (còn mức cao gì đó thì em không hình dung được nó bất đồng bộ như thế nào )
    khi đó:
    code verilog:

    module counter(in,out,reset);
    ---input in,reset;
    ---output out;
    ---reg out;
    ---reg [24:0]count=27000000;
    ---always @(posedge in or posedge reset)
    ---begin
    -------if(reset==1'b1)
    ------------out==0;
    -------else
    -------begin
    ----------------if(count==27000000)
    ----------------begin
    ---------------------out=1;
    ---------------------count=count-1;
    ----------------end
    ----------------else if(count>1)
    ----------------begin
    ----------------------out=0;
    ----------------------count=count-1;
    ----------------end
    ----------------else count=27000000;
    ---------end
    ---end
    endmodule
    Cho em hỏi chỗ này làm sao ra con số 25bit ạ.!!
    reg [24:0]count=27000000;

  6. #16
    Trần Đại Dương Avatar của 11520537
    Tham gia ngày
    Sep 2011
    Khoa
    Kỹ thuật máy tính
    Bài gửi
    1.748
    Post Thanks / Like
    Mentioned
    12 Post(s)
    Quote Nguyên văn bởi 14520356 Xem bài viết
    Cho em hỏi chỗ này làm sao ra con số 25bit ạ.!!
    reg [24:0]count=27000000;
    Về mặc định thì "27000000" được hiểu là cơ số 10, 27_000_000 = 0x19B_FCC0.
    Thế thì đã biết tại sao là 25 bits chưa?

    P/S: lần sau nhớ tag bọn anh vào để hệ thống thông báo tới acc của bọn anh thì bọn anh mới trả lời nhanh được.
    Tôi không hối tiếc những gì mình đã làm. Tôi chỉ hối tiếc những gì đã không làm khi có cơ hội!

+ Trả lời bài viết

Đánh dấu

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