ايران ويج

نسخه‌ی کامل: CPLD های xilinx و شروع به کار با آنها و....
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3 4 5 6 7 8 9 10
نقل قول: اول که به ورودی ها صفر پیش فرض داده.

کد:
<clock>_period
اینو که داده من میام جای کلاک مینویسم x اصلا چرا یه دونه داده مگه نباید به ازای هر ورودی یکی میداد.خودم اضاف کنم؟
من نگرفتم
ببینم مگه فول اددر، ورودی کلاک لازم داره؟
اصلا کلاک لازم نیس که

این تیکه :
کد:
-- Clock process definitions
    <clock>_process :process
    begin
         <clock> <= '0';
         wait for <clock>_period/2;
         <clock> <= '1';
         wait for <clock>_period/2;
    end process;

رو کلا پاکش کن بره

بعد توی Stimulus process ، مقادیری که دوس داری با هم جمع شن(توسط فول اددر) رو پیاده کن

البته بستگی داره که چطور بخوای تست بنچ رو درست کنی

مطمئنا میشه با Clock process ای که بالا گفتم حذف اش کن، پیاده اش کرد


خیلی بد توضیح میدم، مگه نه؟ Biggrin

نقل قول: بعدشم نمونه گیری.
نفهمیدم
؟
نقل قول: میشه با این روش تست بنچ زد؟
Biggrin
نگرفتم Biggrin
نقل قول:
نقل قول: اول که به ورودی ها صفر پیش فرض داده.

کد:
<clock>_period
اینو که داده من میام جای کلاک مینویسم x اصلا چرا یه دونه داده مگه نباید به ازای هر ورودی یکی میداد.خودم اضاف کنم؟
من نگرفتم
ببینم مگه فول اددر، ورودی کلاک لازم داره؟
اصلا کلاک لازم نیس که

آخه صفحه قبل امدی یه تست بنچ نوشتی کهه بجای کلاک همون ورودیه


نقل قول: خیلی بد توضیح میدم، مگه نه؟ Biggrin

نه من بد میگیرم :-)

نقل قول:
نقل قول: بعدشم نمونه گیری.
نفهمیدم
؟

این تیکه میشه نمونه گیری دیگه
کد:
-- Instantiate the Unit Under Test (UUT)
   uut: fulladder2 PORT MAP (
          x => x,
          y => y,
          cin => cin,
          s => s,
          cout => cout
        );

نقل قول:
نقل قول: میشه با این روش تست بنچ زد؟
Biggrin
نگرفتم Biggrin

ببین چطور با دستور APPLEY_DATA مقدار داده.
نقل قول: آخه صفحه قبل امدی یه تست بنچ نوشتی کهه بجای کلاک همون ورودیه
دقیقا لینک پست رو بذار


همه چیز به کنار

با این ذهنیت به سوال پاسخ میدم که full adder نیاز به کلاک ورودی نداره

اگه فرض ام درست باشه:

برای شبیه سازی چیزایی که لازم دارم اینان:

* دو تا وکتور 8 بیتی که قراره با هم جمع بشن
* ورودی های cin و...


برای پیاده کردن این ورودی ها، میایم فایل تست بنچ رو مینویسیم

توی فایل تست بنچ معمولا 2 جور پروسس داریم

یکی اسمش Stimulus هه که دقیقا مثل تابع main توی کدهای زبان C هستش
هر چی بنویسی توش، با شروع شبیه سازی به ترتیب اعمال میشه
میام ورودی ها رو توی پروسه ی Stimulus مینوسیم

نوع دیگه ی process ، پروسه هایی هست که برای درست کردن کلاک دلخواه، حین شبیه سازی، همیشه، در حال اجرا هستن.(فارغ از Stimulus )
چون کلاک نیاز نداریم، اینا رو پاک میکنیم


نقل قول: ببین چطور با دستور APPLEY_DATA مقدار داده.
آهان
این روش رو تا حالا تجربه نکردم
از کتاب برداشتی؟ توضیح داره؟
سلام

من یه کد زدم برای تمام جمع کننده تک بیتی.
و بعد امدم یه پروِژه جدید زدم که می خوام 4 بیتی طراحی کنم و از اون تک بیتی هم استفاده کردم. برا همین يه component زدم تا از اون تک بیتیه استفاده کنم. چطور باید آدرس اون تک بیتی رو بدم؟

کد:
----------------------------------------------------------------------------------
-- Company:
-- Engineer:
--
-- Create Date:    10:45:57 07/19/2014
-- Design Name:
-- Module Name:    fulladder-4bit-beh - Behavioral
-- Project Name:
-- Target Devices:
-- Tool versions:
-- Description:
--
-- Dependencies:
--
-- Revision:
-- Revision 0.01 - File Created
-- Additional Comments:
--
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
--use IEEE.NUMERIC_STD.ALL;

-- Uncomment the following library declaration if instantiating
-- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

[color=#FF0000]entity fulladder-4bit-beh is[/color]
    Port ( a : in  STD_LOGIC_VECTOR (3 downto 0);
           b : in  STD_LOGIC_VECTOR (3 downto 0);
           cin : in  STD_LOGIC;
           sum : out  STD_LOGIC_VECTOR (3 downto 0);
           cout : in  STD_LOGIC;
           v : in  STD_LOGIC);
end fulladder-4bit-beh;

architecture Behavioral of fulladder-4bit-beh is

signal c: std_logic_vector (4 downto 0);
component FULLADDER
port(a, b, cin: in std_logic;
sum, cout: out std_logic);

end component;

for all:  FULLADDER use entity work. fulladder2 (Behavioral);

begin
FA0: FULLADDER
port map (a(0), b(0), Cin, sum(0), c(1));
FA1: FULLADDER
port map (a(1), b(1), C(1), sum(1), c(2));
FA2: FULLADDER
port map (a(2), b(2), C(2), sum(2), c(3));
FA3: FULLADDER
port map (a(3), b(3), C(3), sum(3), c(4));
V <= c(3) xor c(4);
Cout <= c(4);

end Behavioral;


اولین ارورش مربوط به خط قرمزس
یه چیزی من که برای اسم پروژه ها از - خط تیره استفاده می کنم مشکلی پیش میاد؟
قسمت آخرشو نفهمیدم
آدرس چی؟
منظور از آدرس چیه؟
اینو باید دقیقا چطور نوشت؟

کد:
for all:  FULLADDER use entity work. fulladder2 (Behavioral);
اینو باید کتاب نگاه کنم
این روش رو من بخاطر پیچیدگیش، من استفاده نمیکردم؟


نمیشه مثل تست بنچ نمونه گرفت؟
http://www.iranled.com/forum/thread-1954...#pid228998
این روش مثل همون نوشتن کتابخونه میمونه که یه کد میزنیم و بعد داخل کد های دیگه ازش استفاده میکنیم. (اگه معنی کتابخونه این باشه)

نحوه نوشتن دستورش همینه فقط نمیدون اون پروژه قبلی که روی هاردم هست رو چطور باید بسط بدیم داخل این کد.
نقل قول: این روش مثل همون نوشتن کتابخونه میمونه که یه کد میزنیم و بعد داخل کد های دیگه ازش استفاده میکنیم. (اگه معنی کتابخونه این باشه)

نحوه نوشتن دستورش همینه فقط نمیدون اون پروژه قبلی که روی هاردم هست رو چطور باید بسط بدیم داخل این کد.

خب چه فرقی میکنه
هر دو روش هدفشون یکیه دیگه؟


(باید اون فایلی که میخوای استفاده کنی رو به پروژه add کنی)
والا من با اون روش شما دیگه اصلا آشنایی ندارم. فکر کنم باید یه ترم هم برم تا نحوه کار با محیط برنامه رو بلد شم.

ادد کردم بازم ارور داد...

باید برم استاده.
نقل قول: والا من با اون روش شما دیگه اصلا آشنایی ندارم. فکر کنم باید یه ترم هم برم تا نحوه کار با محیط برنامه رو بلد شم.
ترم؟ Amaze

نقل قول: ادد کردم بازم ارور داد...
1 لحظه بگم

نقل قول: باید برم استاده.
؟
صفحه‌ها: 1 2 3 4 5 6 7 8 9 10