Thông báo

Collapse
No announcement yet.

Các công cụ hay dùng trong thiết kế vi điện tử

Collapse
This is a sticky topic.
X
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • nếu vậy bạn đang hỏi phần s/w gì
    1/ installer - dùng install synopsys s/w
    2/ custom explore - là s/w mới và nhiều function hơn custom design

    Comment


    • 13 always@(posedge clk1,negedge rst,posedge up0) // bạn ko được khai báo theo sườn up0. Mình nghĩ bỏ đi là syn dc.

      Comment


      • Hi robocon2011,

        Mình là thành viên mới của diễn đàn.
        Mình đang tìm VCS simulator để học tập.
        Rất cảm ơn bạn đã chia sẻ VCS và DC trên MF.
        Tuy nhiên, khi down về mình ko thể nối bằng winrar được (chạy winrar trên XP)
        Lỗi như sau :
        Synopsys_DC.rar.001 : CRC failed in Synopsys_DC\DesignCompiler 2008.09\syn_vB-2008.09_linux.tar : the file is corrupted
        Synopsys_DC.rar.001 : Unexpected end of archive
        Tương tự đối với file VCS.rar.001

        Mình thử down lại 2 file này nhưng kết quả cũng như vậy.
        Bạn có thể kiểm tra dùm được ko ?
        Có phải mình cần dùng "tar" của Linux để nối file hay ko ?
        Cảm ơn nhiều.

        Comment


        • Hi robocon2011,

          Minh đã dùng hjsplit va da nối được các file Synopsys_DC và VCS thành công.
          Bạn hãy bỏ qua câu hỏi của mình nhé.

          Comment


          • hic nhưng bên mình bắt dùng custom design đó chứ nghe thầy bảo sau này mấy cty kiểu gì cũng có cái nài ai có bộ cài hoặc có ***** thì cho mình với mình chỉ cần 1 trong 2 thôi

            Comment


            • Nguyên văn bởi xuan.anh Xem bài viết
              Xin các tiền bối giúp đỡ:
              khi em tổng hợp code RTL bằng Design Compiler Synopsys thì bị một lỗi thế này:


              Theo em hiểu là nó bắt dùng lệnh if ở top level trong khối always, và khi em xóa posedge up0 trong danh sach tín hiệu nhạy đi thì hết lỗi, nhưng mạch hoạt động không như ý muốn, nghĩa là khi ấn up thì số trên đồng hồ không nhảy.
              Các bác cho em giải pháp đc không ạ, code của em ở dưới, nó chỉ là một khối trong toàn bộ đề tài, và chỉ lỗi ở khối này thôi, những cái khác đều tốt
              Chào bạn,
              1. Các signal up0 activate theo sườn clock ở trong sensitivities list thì bạn phải cho ở điều ở level cao nhất không được làm điều kiện lồng bên các level con.
              2. mình thấy bạn có signal time_set nhưng ko dùng.
              3. biến state thì mình nghĩ bạn nên để internal signal rồi cho chân input để di chuyển đến các state này,
              nghĩa là thay vì mình dùng 1 biến state làm input thì mình sẽ dùng 3 tín hiệu input nó giống như 3 cái buttons
              để bạn thay đổi giờ, phút giây tương ứng (input set_h, set_m, set_s
              Dưới đây là code bạn có thể tham khảo và chỉnh cho phù hợp với project của bạn

              Code:
              module counter (/*AUTOARG*/
                 // Outputs
                 mm_o, ss_o, hh_o,
                 // Inputs
                 clk, rst_n, set_h, set_m, set_s
                 ) ;
                 // Parameter
                  parameter
                   INIT  = 3'b000,
                   START = 3'b001,
                   SET_H = 3'b011,
                   SET_M = 3'b111,
                   SET_S = 3'b110;
                 parameter
                   S_WIDTH = 3,
                   CNT_WIDTH = 6;   
                 
                 // Inputs
                 input clk, rst_n;   
                 input set_h, set_m, set_s;
                 
                 // Outputs
                 output [CNT_WIDTH-1:0]  mm_o, ss_o;
                 output [4:0] 	   hh_o;
                 
                 // Regs and Signals
                 reg [CNT_WIDTH-1:0] 	m_o, s_o;
                 reg [4:0] 		h_o;
                 
                 reg [S_WIDTH-1:0] 	state, next_state;
                 
                   
              
                 always @(posedge clk, negedge rst_n)
                 begin
                    if(rst_n == 1'b0)
              	state <= INIT;
                    else
              	state <= next_state;
                 end
              
                 always @(posedge clk)
                 begin
                    case(state)
              	INIT:
              	  begin
              	     next_state = START;	     
              	  end
              	START:
              	  begin
              	     if(set_h == 1'b1)
              	       next_state = SET_H;
              	     else if(set_m == 1'b1)
              	       next_state = SET_M;
              	     else if(set_s == 1'b1)
              	       next_state = SET_S;
              	     else
              	       next_state = START;
              	  end // case: START
              	SET_H:
              	  begin
              	     if(set_h == 1'b1)
              	       next_state = SET_H;
              	     else if(set_m == 1'b1)
              	       next_state = SET_M;
              	     else if(set_s == 1'b1)
              	       next_state = SET_S;
              	     else
              	       next_state = START;
              	  end
              	SET_M:
              	  begin
              	     if(set_h == 1'b1)
              	       next_state = SET_H;
              	     else if(set_m == 1'b1)
              	       next_state = SET_M;
              	     else if(set_s == 1'b1)
              	       next_state = SET_S;
              	     else
              	       next_state = START;
              	  end
              	SET_S:
              	  begin
              	     if(set_h == 1'b1)
              	       next_state = SET_H;
              	     else if(set_m == 1'b1)
              	       next_state = SET_M;
              	     else if(set_s == 1'b1)
              	       next_state = SET_S;
              	     else
              	       next_state = START;
              	  end
              	default:
              	  next_state = INIT;
                    endcase // case (state)
                 end // always @ (*)
              
                 always @(posedge clk, negedge rst_n)
                 begin
                    if(rst_n == 1'b0)
                    begin
              	 h_o = 0;
              	 m_o = 0;
              	 s_o = 0;
                    end
                    else 
                    begin
              	 case(state)
              	   INIT:
              	     begin
              		h_o = 0;
              		m_o = 0;
              		s_o = 0;
              	     end	
              	   START:
              	     begin
              		s_o = s_o + 1;     
              		if(s_o == 6'd59)
              		begin
              		   s_o = 0;
              		   m_o = m_o + 1;
              		   if(m_o == 6'd59)
              		   begin
              		      m_o = 0;
              		      h_o = h_o + 1;
              		      if(h_o == 5'd23)
              			h_o = 0;
              		   end
              		end // if (s_o == 6'd59)	     
              	     end // case: START
              	   SET_H:
              	     begin
              		if(h_o == 5'd23)
              		  h_o = 0;
              		else
              		  h_o = h_o + 1;
              	     end
              	   SET_M:
              	     begin
              		if(m_o == 6'd59)
              		  m_o = 0;
              		else
              		  m_o = m_o + 1;
              	     end
              	   SET_S:
              	     begin
              		if(s_o == 6'd59)
              		  s_o = 0;
              		else
              		  s_o = s_o + 1;
              	     end
              	   default:
              	     begin 
              		h_o = h_o;
              		m_o = m_o;
              		s_o = s_o;
              	     end
              	 endcase // case (state)
                    end // else: !if(rst_n == 1'b0)      
                 end // always @ (posedge clk, negedge rst_n)
              
                 assign hh_o = h_o;
                 assign mm_o = m_o;
                 assign ss_o = s_o;   
                 
              endmodule // counter

              Comment


              • Nguyên văn bởi cheetin Xem bài viết
                Chào bạn,
                1. Các signal up0 activate theo sườn clock ở trong sensitivities list thì bạn phải cho ở điều ở level cao nhất không được làm điều kiện lồng bên các level con.
                2. mình thấy bạn có signal time_set nhưng ko dùng.
                3. biến state thì mình nghĩ bạn nên để internal signal rồi cho chân input để di chuyển đến các state này,
                nghĩa là thay vì mình dùng 1 biến state làm input thì mình sẽ dùng 3 tín hiệu input nó giống như 3 cái buttons
                để bạn thay đổi giờ, phút giây tương ứng (input set_h, set_m, set_s
                Dưới đây là code bạn có thể tham khảo và chỉnh cho phù hợp với project của bạn

                Code:
                module counter (/*AUTOARG*/
                   // Outputs
                   mm_o, ss_o, hh_o,
                   // Inputs
                   clk, rst_n, set_h, set_m, set_s
                   ) ;
                   // Parameter
                    parameter
                     INIT  = 3'b000,
                     START = 3'b001,
                     SET_H = 3'b011,
                     SET_M = 3'b111,
                     SET_S = 3'b110;
                   parameter
                     S_WIDTH = 3,
                     CNT_WIDTH = 6;   
                   
                   // Inputs
                   input clk, rst_n;   
                   input set_h, set_m, set_s;
                   
                   // Outputs
                   output [CNT_WIDTH-1:0]  mm_o, ss_o;
                   output [4:0] 	   hh_o;
                   
                   // Regs and Signals
                   reg [CNT_WIDTH-1:0] 	m_o, s_o;
                   reg [4:0] 		h_o;
                   
                   reg [S_WIDTH-1:0] 	state, next_state;
                   
                     
                
                   always @(posedge clk, negedge rst_n)
                   begin
                      if(rst_n == 1'b0)
                	state <= INIT;
                      else
                	state <= next_state;
                   end
                
                   always @(posedge clk)
                   begin
                      case(state)
                	INIT:
                	  begin
                	     next_state = START;	     
                	  end
                	START:
                	  begin
                	     if(set_h == 1'b1)
                	       next_state = SET_H;
                	     else if(set_m == 1'b1)
                	       next_state = SET_M;
                	     else if(set_s == 1'b1)
                	       next_state = SET_S;
                	     else
                	       next_state = START;
                	  end // case: START
                	SET_H:
                	  begin
                	     if(set_h == 1'b1)
                	       next_state = SET_H;
                	     else if(set_m == 1'b1)
                	       next_state = SET_M;
                	     else if(set_s == 1'b1)
                	       next_state = SET_S;
                	     else
                	       next_state = START;
                	  end
                	SET_M:
                	  begin
                	     if(set_h == 1'b1)
                	       next_state = SET_H;
                	     else if(set_m == 1'b1)
                	       next_state = SET_M;
                	     else if(set_s == 1'b1)
                	       next_state = SET_S;
                	     else
                	       next_state = START;
                	  end
                	SET_S:
                	  begin
                	     if(set_h == 1'b1)
                	       next_state = SET_H;
                	     else if(set_m == 1'b1)
                	       next_state = SET_M;
                	     else if(set_s == 1'b1)
                	       next_state = SET_S;
                	     else
                	       next_state = START;
                	  end
                	default:
                	  next_state = INIT;
                      endcase // case (state)
                   end // always @ (*)
                
                   always @(posedge clk, negedge rst_n)
                   begin
                      if(rst_n == 1'b0)
                      begin
                	 h_o = 0;
                	 m_o = 0;
                	 s_o = 0;
                      end
                      else 
                      begin
                	 case(state)
                	   INIT:
                	     begin
                		h_o = 0;
                		m_o = 0;
                		s_o = 0;
                	     end	
                	   START:
                	     begin
                		s_o = s_o + 1;     
                		if(s_o == 6'd59)
                		begin
                		   s_o = 0;
                		   m_o = m_o + 1;
                		   if(m_o == 6'd59)
                		   begin
                		      m_o = 0;
                		      h_o = h_o + 1;
                		      if(h_o == 5'd23)
                			h_o = 0;
                		   end
                		end // if (s_o == 6'd59)	     
                	     end // case: START
                	   SET_H:
                	     begin
                		if(h_o == 5'd23)
                		  h_o = 0;
                		else
                		  h_o = h_o + 1;
                	     end
                	   SET_M:
                	     begin
                		if(m_o == 6'd59)
                		  m_o = 0;
                		else
                		  m_o = m_o + 1;
                	     end
                	   SET_S:
                	     begin
                		if(s_o == 6'd59)
                		  s_o = 0;
                		else
                		  s_o = s_o + 1;
                	     end
                	   default:
                	     begin 
                		h_o = h_o;
                		m_o = m_o;
                		s_o = s_o;
                	     end
                	 endcase // case (state)
                      end // else: !if(rst_n == 1'b0)      
                   end // always @ (posedge clk, negedge rst_n)
                
                   assign hh_o = h_o;
                   assign mm_o = m_o;
                   assign ss_o = s_o;   
                   
                endmodule // counter
                Cám ơn bác đã trả lời, nhưng đề bài của em chỉ cho phép một nút bấm, trong đó một nút để chọn chế độ, còn một nút để điểu chỉnh, bác có giải pháp nào giúp em không ạ!

                Comment


                • Bác Rommel.de ơi, nếu có thể thì bác up lại các phần mềm sau bằng mediafire được không ạ? Các link cũ đã die hết rồi:
                  1. Hspice Win+Linux32+64
                  2. Cosmos scope Linux 32+64
                  3. Custom wave view Win+Linux32+64
                  Xin cảm ơn bác nhiều!

                  Comment


                  • Các bác có thể share giúp em tool assura 4. của Cadence ko. Em Layout mà đang bị kẹt ở phần DRC. Em cám ơn nhìu
                    Sẵn tiện nếu ai có các PDK 90/130nm cho em xin luôn ạ. Đang xài PDK cài sẵn nên muốn tìm hiểu thêm dzí lại cũng muốn chuẩn thiết kế xuống 90nm mà chưa có thư viện.
                    Cám ơn mọi người

                    Comment


                    • Nguyên văn bởi laptrinhc++ Xem bài viết
                      Bác Cheetin có thì có thể Up lên cho anh em được ko? tìm mạng hoài mà k thấy đúng chính xác như trên Amazon.com

                      Bác vào xem phải quyển này không nhé Digital VLSI chip design with Cadence and Synopsys CAD tools

                      Comment


                      • Nguyên văn bởi Rommel.de Xem bài viết
                        Chào bạn Hungthientu,

                        Đồ chơi ở đây:

                        Simple File Sharing and Storage.
                        Simple File Sharing and Storage.
                        Simple File Sharing and Storage.
                        Simple File Sharing and Storage.

                        Tớ up lên là bản mới nhất nhưng không có license. Bạn thử dùng license của mấy bản cũ xem có OK không? Tớ cũng mới down về chưa kiểm tra.
                        Những link về phần mềm của synopsys do anh Rommel.de up lên die hết rùi sao ak. Em thử hoài mà không thấy cái nào được hết. Anh chị nào có up cho em xin hoặc chỉ em nguồn download để em cắm mạng cũng được. Em cảm ơn nhiều ạ.

                        Comment


                        • Nguyên văn bởi proeggs Xem bài viết
                          Những link về phần mềm của synopsys do anh Rommel.de up lên die hết rùi sao ak. Em thử hoài mà không thấy cái nào được hết. Anh chị nào có up cho em xin hoặc chỉ em nguồn download để em cắm mạng cũng được. Em cảm ơn nhiều ạ.
                          Chào bạn Proeggs,

                          Bạn muốn phần mềm nào. Synopsys đã có thể bẻ khóa được đến những bản mới nhất (2013). Mấy bản cũ tớ đưa lên bẻ khóa được chỉ đến bản 2010. Khi nào rỗi tớ sẽ đưa lên, hướng dẫn mọi người bẻ khóa luôn.

                          Comment


                          • Nguyên văn bởi Rommel.de Xem bài viết
                            DesignWare Building Blocks và DesignWare Developer đã được tích hợp sẵn trong Design compiler rồi. Bạn cài đặt Design compiler xong sẽ thấy bên trong có một thư mục "LIBRARY" đó chính là DesignWare được tích hợp sẵn, chỉ cần có license là dùng được liền.

                            Còn đây là DesignWare System level Library, và DesignWare VIP SmartModel Library

                            Simple File Sharing and Storage.
                            Simple File Sharing and Storage.
                            Simple File Sharing and Storage.
                            Simple File Sharing and Storage.
                            Simple File Sharing and Storage.
                            Simple File Sharing and Storage.
                            Simple File Sharing and Storage.
                            Chào anh rommel.de, anh cho em hỏi anh còn giữ bản cài đặt của bộ này ko ạ. Link mediafire không download đc ạ.

                            Comment


                            • hiện tại em mới down questasim 10.0b em dùng cygwin để coding . sau khi kiểm tra testcase em muốn xem dạng sóng thì trong cygwin em nhập: vsim -view vsim.wlf. Nhưng nó đứng đó lun, em thử chạy questasim thì bị lỗi " unable to checkout a viewer license necessary for use of the questasim graphical user interface",

                              nó ghi bị lỗi license, em sử dụng mentorkg.exe để tạo license. bác nào rành giúp em vs

                              Comment


                              • Minh cai rat nhieu lan roi ma chua duoc. Den lenh "chmod -R 777 /usr/" sau khi logout va login lai thi bi loi Fedora luon. Khong thao tac gi voi he thong duoc nua boi vi password da bi vo hieu hoa.
                                Thu thay doi MAC thi khong duoc.

                                Ban nao co huong dan cai dat chi tiet khong cho minh xin voi.
                                Cam on nhieu.
                                [xin loi vi vua cai lai Fedora chua co Tieng Viet]

                                Comment

                                Về tác giả

                                Collapse

                                yesme@ Tìm hiểu thêm về yesme@

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

                                Collapse

                                Đang tải...
                                X