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

  • kid1412_net
    replied
    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 ạ.

    Leave a comment:


  • Rommel.de
    replied
    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.

    Leave a comment:


  • proeggs
    replied
    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 ạ.

    Leave a comment:


  • tuyenkhuc
    replied
    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

    Leave a comment:


  • ruacon76
    replied
    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

    Leave a comment:


  • hoangphuc_hn
    replied
    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!

    Leave a comment:


  • xuan.anh
    replied
    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 ạ!

    Leave a comment:


  • cheetin
    replied
    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

    Leave a comment:


  • zicky0908
    replied
    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

    Leave a comment:


  • mt2000
    replied
    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é.

    Leave a comment:


  • mt2000
    replied
    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.

    Leave a comment:


  • ToanXT
    replied
    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.

    Leave a comment:


  • vtiger
    replied
    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

    Leave a comment:


  • zicky0908
    replied
    không biết cái này có phải bạn gửi link cho mình ko. dù gì cũng cảm ơn bạn đã share
    cho mình hỏi là 2 cái link ở trên tác dụng từng cái là gì vậy

    Leave a comment:


  • xuan.anh
    replied
    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:
    Error: /home/xuananh/Desktop/test0/counter.v:13: The statements in this 'always' block are outside the scope of the synthesis policy. Only an 'if' statement is allowed at the top level in this always block. (ELAB-302)
    *** Presto compilation terminated with 1 errors. ***
    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

    module counter(clk1,rst,state,up0,time_set,
    outh,outm,outs);
    //-------------------------------
    input clk1,rst;
    input time_set,up0;
    input [1:0] state;
    output reg [5:0] outh,outm,outs ;
    //reg clk1;
    //--------------------------------------
    parameter zero = 6'd0;

    //-------------------------mach dem
    always@(posedge clk1,negedge rst,posedge up0)
    begin
    //---------------------------
    if(!rst)
    begin
    outh<=zero;
    outm<=zero;
    outs<=zero;
    end
    //-------------------
    else
    case(state)
    2'b00: //chay binh thuong
    begin
    if(outs==6'd59)
    begin
    outs<=6'd0;
    if(outm==6'd59)
    begin
    outm<=6'd0;
    if(outh==6'd23) outh<=6'd0;
    else outh<=outh+6'd1;
    end
    else outm<=outm+6'd1;
    end
    else outs<=outs+6'd1;
    end

    2'b01: //chinh gio
    begin
    if(up0==1)
    begin
    if(outh==6'd23) outh<=zero;
    else outh<=outh+1;
    end
    end
    2'b10: //chinh phut
    begin
    if(up0==1)
    begin
    if(outm==6'd59) outm<=zero;
    else outm<=outm+1;
    end
    end
    2'b11: //chinh giay
    begin
    if(up0==1)
    begin
    if(outs==6'd59) outs<=zero;
    else outs<=outs+1;
    end
    end
    endcase
    //----------------------------------------
    end
    endmodule

    Leave a 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