कैसे करता है 'उपकरण' synplify sysnopsys synthesize DW02_mac?

Q

quan228228

Guest
मेरी 8051 में, वहाँ एक synopsys DW02_mac खंड है.अनुकार सही है.परन्तु
जब मैं fpga चलाने के लिए, यह पाते हैं कि मैक काम नहीं कर सकता.

मैक funciotn एक ख * C है;

उदाहरण के लिए,
एक 16'h0001 =, ख = 16'hffff, ग 32'h0000_0000 =;

fpga परिणाम 32'h0000_00001 है;
अनुकार परिणाम 32'hffff_ffff है;

Fpga संश्लेषण या कोड के साथ संबंधित दोष है?या वहाँ DW02_mac के लिए इसी उदारीकरण है?

कृपया मेरी मदद करो.बहुत बहुत धन्यवाद.
निम्नलिखित DW02_mac.v है;

मॉड्यूल DW02_mac
(ए, बी, सी, टीसी, मैक);

= 8 A_width पैरामीटर;
= 8 B_width पैरामीटर;

/ / आदेश में बंदरगाह सूची घोषणा
A_width इनपुट [-1: 0] एक;
B_width इनपुट [-1: 0] बी;
B_width इनपुट [A_width -1: 0] सी;
इनपुट तृकां;
B_width निर्गम [A_width -1: 0] मैक; reg [A_width B_width-1: 0] मैक;

B_width समारोह [A_width -1: 0] signed_mult;
A_width इनपुट [-1: 0] एक;
B_width इनपुट [-1: 0] बी;
A_width reg [-1: 0] A1;
B_width reg [-1: 0] B1;
B_width reg [A_width -1: 0] C1;
प्रारंभ करना
/ / Synopsys synthesis_off
अगर ((एक [1] === 1'bx A_width | | बी [1] === 1'bx)) B_width शुरू
signed_mult = (A_width B_width (1'bx));
और अंत
/ / Synopsys synthesis_on
प्रारंभ करना
अगर A_width (एक [1] === 1'b1)
A1 = A-;
अन्यथा
A1 एक =;
अगर B_width (बी [1] === 1'b1)
B1 = बी;
अन्यथा
बी बी 1 =;
C1 = B1 * A1;
अगर A_width (एक [1]! == बी [B_width-1])
= C1-signed_mult;
अन्यथा
= C1 signed_mult;
अंत
अंत
endfunction

हमेशा शुरू
अगर (टीसी === 1'b1) आरंभ / / हस्ताक्षर किए गुणा
मैक <= signed_mult (ए, बी) C;
और अंत में शुरू
मैक <= एक * B C;
अंत / / यदि
तृकां @ (या एक या बी या सी);
अंत प्रक्रिया / /

endmoduleजोड़ा गया 1 घंटे 44 मिनट के बाद:
मुझे आश्चर्य है कि अगर समारोह sythesisable है.दाऊद

 
मुझे शक है कि Synopsys उपयोगकर्ता के अन्य synthesizers में अपने designware मॉड्यूल synthesize करने देते हैं.

Verilog मॉड्यूल तुम मिल रहे हैं सबसे अनुकरण के लिए ही उद्देश्य की संभावना है.

HTH

 
ये, मैं भी इस संदेह है.यू पता नहीं है, 'बयान' समारोह या synthesisable नहीं है.यदि नहीं, तो कैसे FPGA में DW ब्लॉक नक्शा है?

धन्यवाद!दाऊद

 
/ / Synopsys synthesis_off
अगर ((एक [1] === 1'bx A_width | | बी [1] === 1'bx)) B_width शुरू
signed_mult = (A_width B_width (1'bx));
और अंत
/ / Synopsys synthesis_on
implys यह अनुकरण के लिए एक कोड है
क्यों नहीं अपने ही कोड के साथ इस DW की जगह?

 

Welcome to EDABoard.com

Sponsor

Back
Top