intialization في VHDL

A

amburose

Guest
لدي مشكلة وأنا عندما intialize قيمة الكيان في الجزء...
التوليف والمحاكاة على حق... ولكن في الوقت الحقيقي وصلت إلى نتيجة مختلفة عن المحاكاة...

مكتبة IEEE ؛
استخدام IEEE.STD_LOGIC_1164.ALL ؛
استخدام IEEE.STD_LOGIC_ARITH.ALL ؛
استخدام IEEE.STD_LOGIC_UNSIGNED.ALL ؛هو كيان آخر
الميناء (أ) : في std_logic_vector (31 downto 0) : = س "FE3A3AB2" ؛
ك : في std_logic_vector (31 downto 0) : = س "00112233" ؛
clk : في std_logic ؛
rst : في std_logic ؛
س : في std_logic_vector (1 downto 0) ؛
د : std_logic_vector من أصل (7 downto 0)) ؛
نهاية الماضي ؛

البنية السلوكية الماضي هو
ج إشارة ، D1 : std_logic_vector (31 downto 0) : = س "00000000" ؛
اشارة : integer النطاق 0 إلى 255) : = 0 ؛
إشارة én : std_logic ؛
يبدأ

عملية (أ ، ك ، ج ، D1 ، clk ، rst)
يبدأ
إذا كان (rst = '0')
، ثم

د <= س "00" ؛
én <= '0' ؛
elsif (clk = '1' وclk'event) ثم
D1 <= لا (أ xnor ك) ؛
ج (31) <= D1 (31) ؛
loop1 : لط downto 0 في 30 حلقة

ج (ط) <= ج ( 1) xor D1 (ط) ؛

في نهاية الحلقة loop1 ؛

هو الحال ف
عند "00" => د <= ج (31 downto 24) ؛
عند "01" => د <= ج (23 downto 16) ؛
عند "10" => د <= ج (15 downto 8) ؛
عند "11" => د <= ج (7 downto 0) ؛
عند الآخرين => د <= س "00" ؛
نهاية القضية ؛
إذا كانت الغاية ؛في نهاية هذه العملية ؛نهاية السلوكية ؛
في نفس الطريقة التي وضعت داخل الهيكل قيمة.. حصلت على نتيجة مثالية

أي...

D1 <= لا (س "FE3A3AB2" xnor س "00112233") ؛ بدلا من D1 <= لا (أ xnor ك) ؛الدردشة باستخدام xilinx المشروع 6.3i الملاح...
هل هو مشكلة البرمجيات أو........ ماذا.....
plz العاجلة....

الشكر مرة أخرى نسمع من u....

 
أنا أكره أن أقول ذلك لكنه يمكن أن يكون أداة.يمكنك إذا كنت تحتاج لتنزيل أحدث نسخة من işe ثم المحاولة مرة أخرى.الشفرة يبدو بخير وليس من المستغرب أن النتائج الفعلية تختلف عن المحاكاة الخاص بك.

الإصدارات الأحدث من أداة işe عادة ثابتة من القيود في وقت سابق ان الافراج عن ذلك في محاولة لاعطاء إخبارنا كيفية عمل الأشياء.

هاء

 
انظر مع الأداة الأولى....

بعد ذلك ربما في محاولة لوضعها في كل القيم العددية في عام ثم يكلف بها الى وk... أو الثوابت وتحديد قيمها إلى ك... ويمكنك أن تفعل ذلك لأنها لم تتغير طوال البرنامج

 
أي تحذيرات......
الرمز هنا... لكني حصلت على نفس المشكلة....

مكتبة IEEE ؛
استخدام IEEE.STD_LOGIC_1164.ALL ؛
استخدام IEEE.STD_LOGIC_ARITH.ALL ؛
استخدام IEEE.STD_LOGIC_UNSIGNED.ALL ؛هو كيان آخر
الميناء (أ) : في std_logic_vector (31 downto 0) ؛
ك : في std_logic_vector (31 downto 0) ؛
clk : في std_logic ؛
rst : في std_logic ؛
س : في std_logic_vector (1 downto 0) ؛
د : std_logic_vector من أصل (7 downto 0)) ؛
نهاية الماضي ؛

البنية السلوكية الماضي هو
ج إشارة ، D1 : std_logic_vector (31 downto 0) : = س "00000000" ؛

يبدأ

عملية (أ ، ك ، ج ، D1 ، clk ، rst)
يبدأ
إذا كان (rst = '0')
، ثم
د <= س "00" ؛

elsif (clk = '1' وclk'event) ثم
D1 <= لا (أ ك xnor) -- وليس (س "FE3A3AB2" xnor س "00112233") ؛
ج (31) <= D1 (31) ؛
loop1 : لط downto 0 في 30 حلقة

ج (ط) <= ج ( 1) xor D1 (ط) ؛

في نهاية الحلقة loop1 ؛

هو الحال ف
عند "00" => د <= ج (31 downto 24) ؛
عند "01" => د <= ج (23 downto 16) ؛
عند "10" => د <= ج (15 downto 8) ؛
عند "11" => د <= ج (7 downto 0) ؛
عند الآخرين => د <= س "00" ؛
نهاية القضية ؛
إذا كانت الغاية ؛في نهاية هذه العملية ؛نهاية السلوكية ؛ولكن الآن استكمال الشبكة غير متاحة 6.3i......
هل من مشكلة...

 
الميناء (أ) : في std_logic_vector (31 downto 0) : = س "FE3A3AB2" ؛
ك : في std_logic_vector (31 downto 0) : = س "00112233" ؛في "الحقيقي" العالم لا توجد وسيلة لinitilize مثل هذه المدخلات ، تحتاج إلى تطبيق إشارات حقيقية ،signal c,d1:std_logic_vector(31 downto 0):=x"00000000"; لن تعمل لديك لإعادة استخدام initilize إشارة إلى تلك القيم.لذلك يعتقد انه كوليسترول شفرة أداة بسيطة ليست مشكلة

 
اقتباس :

ج إشارة ، D1 : std_logic_vector (31 downto 0) : = س "00000000" ؛

لن تعمل لديك لإعادة استخدام إشارة إلى تلك القيم initilize
 
كما يدعم ما يعتقد انه كوليسترول Xilinx الاستهلال السجلات في FPGAs وCPLDs.

كنت في حاجة أبدا في بلدي غير المتزامن إعادة Xilinx FPGA المشاريع.

 
إشارة الميناء واحالة طرحت خلال عملية التجميع.هذه الميزة الوحيدة الموجهة لأغراض النمذجة والمحاكاة.وهذا هو السبب في الحصول على نتائج مختلفة.

الشيء الوحيد الذي تستطيع أن تعطي قيمة ثابتة خلال تعريف ثابت.

 
اقتباس :

إشارة الميناء واحالة طرحت خلال عملية التجميع.
 
كقاعدة عامة : الاستهلال الإشارات (كما الموانئ أنها إشارات) لا synthesizable.لا xilinx @ ولا ltera ، actel ، ql ،...دعم ذلك.
ولكن بالنسبة لبعض fpgas يمكنك استخدام بعض الصفات (مثل الحرف الأول لxilinx fpgas) تهيئة الرام أو طرفية المستعملين المحليين.

ولكن تذكر دائما fpga المزج التهيئة تجاهل الاشارات (مع محاولة xst ، synplify يوناردو... وستحصل على نفس النتيجة).ولكن بقدر ما أعرف إذا كنت ترغب في تقديم أسيك يمكنك استخدام إشارة الاستهلال (لا تعمل مع asics).

 
amir81 كتب :

كقاعدة عامة : الاستهلال الإشارات (كما الموانئ أنها إشارات) لا synthesizable.
لا xilinx @ ولا ltera ، actel ، ql ،...
دعم ذلك.
 
انظر على سبيل المثال من تشو (على) مع rtus كتيب VHDL مدونة سجل مع إعادة السلطة العليا وحتى مستوى.
الرمز :

إشارة ف : STD_LOGIC : = '1' ؛ -- ف لها القيمة الافتراضية '1'

عملية (clk ، إعادة)

ستبدأ

اذا (إعادة = '1') ثم

ف <= '0' ؛

ELSIF (rising_edge (clk)) ثم

ف <= د ؛

النهاية ، اذا كان ؛

انتهاء العملية ؛
 
بدء التسجيل في ما يعتقد انه كوليسترول Xilinx işe يرد في فصول XST دليل المستخدم "VHDL الدعم اللغوي" و "دعم اللغة فيريلوج" :
http://toolbox.xilinx.com/docsan/xilinx92/books/docs/xst/xst.pdf

 

Welcome to EDABoard.com

Sponsor

Back
Top