ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.






جهت تبلیغ در وب سایت ECA کلیک کنید.

کاربران برچسب زده شده

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 11
  1. #1
    2007/10/14
    تهران
    1,335
    38

    دادن فایل text به عنوان سیگنال ورودی در ModelSim

    سلام. میخوام یک فایل text که مقادیر عددی fixed-point داخلش ذخیره شدن رو به عنوان ورودی به یکی از سیگنالهای ورودی شبیه سازی ModelSim بدم ولی نمیدونم چطوری این کار انجام میشه. ظاهراً یک راه کدنویسی VHDL و استفاده از TEXTIO و راه دیگه استفاده از مقادیر STD_INPUT و STD_OUTPUT در تب VHDL در پنجره ...Start Simulation هست ولی کار با هیچ کدوم رو بلد نیستم و متأسفانه عجله هم دارم. امیدوارم توی این روز سیزدهی یه نفر جواب بده.
    لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
    لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
    با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
    اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
    يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"
  2. #2
    2009/12/26
    1,730
    264

    پاسخ : دادن فايل text به عنوان سيگنال ورودي در ModelSim

    سلام تو اين لينک ظاهرا اين کار رو کرده:
    برنامه رو ببينيد

    http://www.alteraforum.com/forum/showthread.php?t=37547

    کد:
    -- read input stimulus 
    process(reset,clk)
    file file_in : text open read_mode is "filename.txt";
    variable line_in : line;
    variable input_tmp : integer := 0;
    
    begin
    if(reset = '1')then
    data_in <= (others => '0');
    elsif(rising_edge(clk))then
    if not endfile(file_in)then
    readline(file_in,line_in);
    read(line_in,input_tmp);
    data_in <= std_logic_vector(to_signed(input_tmp,16));
    end if;
    end if;
    end process;
  3. #3
    2007/10/14
    تهران
    1,335
    38

    پاسخ : دادن فايل text به عنوان سيگنال ورودي در ModelSim

    خیلی ممنون. این روش رو توی کتاب پیدا کردم ولی هنوز وقت نکردم امتحان کنم، اون روش دیگه چی؟ کسی میدونه این STD_INPUT و STD_OUTPUT توی ModelSim چطوریه؟
    لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
    لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
    با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
    اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
    يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"
  4. #4
    2007/10/14
    تهران
    1,335
    38

    پاسخ : دادن فایل text به عنوان سیگنال ورودی در ModelSim

    من از این کد که استفاده می کنم ModelSim یک Warning میده و میگه Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0، فکر می کنم مشکل از فرمت فایل متنی ورودیه که نمیدونم چطوری باید باشه. به همون فرمت اعشاری علامت دار / به صورت fixed-point و دسیمال / fixed-point و هگز یا باینری؟
    لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
    لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
    با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
    اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
    يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"
  5. #5
    2007/10/14
    تهران
    1,335
    38

    پاسخ : دادن فایل text به عنوان سیگنال ورودی در ModelSim

    دوستان یعنی کسی ModelSim کار نکرده جواب بده؟
    اون مشکل حل شد و الان فایل متنی که اعداد صحیح نامنفی هستن میتونه بخونه ولی فقط آخرین مقدار رو نشون میده یعنی از ثانیه 0 تا 1000 نانوثانیه که میره فقط یک مقدار نشون میده در حالی که 200 تا مقدار رو میخونه پس بقیه چی شده؟
    یه سوال دیگه: کلاک داخلی توی VHDL چطوری میشه تعریف کرد؟
    لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
    لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
    با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
    اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
    يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"
  6. #6
    2010/04/09
    اسلامشهر
    1,494
    31

    پاسخ : دادن فایل text به عنوان سیگنال ورودی در ModelSim

    با سلام
    اون مشکل حل شد
    منظور شما این مشکله :
    میخوام یک فایل text که مقادیر عددی fixed-point داخلش ذخیره شدن رو به عنوان ورودی به یکی از سیگنالهای ورودی شبیه سازی ModelSim بدم ولی نمیدونم چطوری این کار انجام میشه.
    ممنون میشم بفرمایید چطور حل شد، احتمالا در آینده نچندان دور بدرد بنده هم بخوره.

    یه سوال دیگه: کلاک داخلی توی VHDL چطوری میشه تعریف کرد؟
    منظورتون توی تست بنچ هست؟
    اگه درست فهمیده باشم منظورتون رو به این شکل میشه :

    clock_generator:process

    variable clock:std_logic:='0';

    begin
    clock:= not clock;
    clk<=clock;
    wait for 100 ns;
    end process clock_generator;
  7. #7
    2009/08/11
    682
    70

    پاسخ : دادن فایل text به عنوان سیگنال ورودی در ModelSim

    نقل قول نوشته اصلی توسط هـادی
    دوستان یعنی کسی ModelSim کار نکرده جواب بده؟
    سوالت ربطی به modelsim نداره! باید دستورات vhdl رو بلد باشی و از طرف دیگه باید سیمولاتور، اون دستورات رو پشتیبانی کنه که modelsim یکی از نرم افزارهایی که معمولا آخزین استانداردهای زبان ها رو پشتیبانی میکنه.
    هرچند modelsim هم دستوراتی اضافه بر دستورات خود زبان داره ، اما نمیشه از scriptهای modelsim تو توصیف مدار استفاده کرد و باید تو خط فرمان modelsim اجرا بشه.
    مثلا verilog دستور خوندن فایل برای پر کردن حافظه داره و از طرفی modelsim هم دستورات خاص خودش رو برای این کار داره که میشه تو خط فرمان اجرا کرد.
    در مورد سوال این تاپیک بنظرم دستورات زبان راحتر باشه. تو وریلاگ که راحت میشه این کارو کرد. دستورات modelsim هم تو هلپش کامل هست
    https://www.linkedin.com/in/mohammadhosseini69

    http://zakhar.blog.ir
  8. #8
    2007/10/14
    تهران
    1,335
    38

    پاسخ : دادن فایل text به عنوان سیگنال ورودی در ModelSim

    نقل قول نوشته اصلی توسط mojtaba_led
    با سلام منظور شما این مشکله : ممنون میشم بفرمایید چطور حل شد، احتمالا در آینده نچندان دور بدرد بنده هم بخوره.
    [/ltr]
    اشتباه من جای دیگه ای بود. کارم که روی این کد تموم شد میذارم.
    لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
    لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
    با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
    اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
    يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"
  9. #9
    2007/10/14
    تهران
    1,335
    38

    پاسخ : دادن فایل text به عنوان سیگنال ورودی در ModelSim

    سلام مجدد. بابت تأخیر نسبتاً زیاد شرمنده چند مدتیه خیلی درگیرم.
    برای دادن سیگنال ورودی برای شبیه سازی و یا ذخیره سیگنال خروجی در VHDL لازمه که از بسته textio کتابخانه std استفاده کرد.
    کد PHP:
    USE std.textil.ALL 

    فایل ورودی به صورت زیر پروسس و قبل از begin معرفی میشه:
    کد PHP:
    file input_file text is in "filter_input.txt"; 


    که فایل filter_input.txt در محل Working Directory قرار داره، در غیر این صورت باید آدرس نسبی یا کامل فایل رو نوشت.
    کلمه in در کد بالا مربوط به استاندارد VHDL-87 هست ولی میشه در VHDL-93 هم استفاده کرد در استاندارد VHDL-93 میشه این کلمه رو حذف کرد.
    فایل خروجی هم به صورت زیر:
    کد PHP:
    file output_file text is out "filter_output.txt"; 


    یک متغیر از نوع line هم برای خواندن خطوط فایل ورودی یا نوشتن یک خط در فایل خروجی لازمه:
    کد PHP:
    variable in_line,out_line line

    به ازای هر فایلی که قصد خواندن یا نوشتن از/در اون رو دارید باید یک متغیر تعریف بشه.

    متغیری که از فایل خوانده میشه یا در فایل نوشته میشه از نوع integer تعریف کنید:
    کد PHP:
    variable input_value,output_value integer


    بقیه برنامه هم به این شکل میتونه باشه:
    کد:
    		if clk'event and clk = '1' then
    			if not endfile(input_file) then
    				readline(input_file,in_line);
    				read(in_line,input_value);
    --				D_IN <= conv_std_logic_vector(input_value,16);
    				D_IN <= std_logic_vector(to_signed(input_value,16));
    				
    --				output_value := conv_integer(D_OUT);
    				output_value := to_integer(signed(D_OUT));
    				write(out_line,output_value);
    				writeline(output_file,out_line);
    				
    			end if;
    		end if;
    در خطوطی که کامنت شدن از توابع و انواع بسته std_logic_signed (و در صورتی که داده ها بدون علامت باشند از std_logic_unsigned)استفاده شده و خطوط بعدش از توابع و انواع بسته numeric_std کتابخانه ieee استفاده شده که انتخابش به خودتون بستگی داره ولی فقط باید از یکی از این بسته ها استفاده بشه.

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    هم یک مثال که در اون یک فیلتر FIR پایین گذر طراحی شده(با fdatool متلب) و برای تست یک سیگنال chirp داده شده و خروجی در فایل متنی filter_output.txt ذخیره میشه. یکی از مزایای استفاده از textio اینه که در صورت استفاده از شبیه ساز ISim که قادر به رسم شکل آنالوگ سیگنالها نیست، میشه فایل خروجی رو با متلب خوند و پلات کرد.
    لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
    لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
    با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
    اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
    يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"
  10. #10
    2010/11/12
    39
    2

    پاسخ : دادن فایل text به عنوان سیگنال ورودی در ModelSim

    من این برنامه vhdl رو طبق توضیحات بالا نوشتم ولی synthesize نمیشه :angry:
    تازه بعد از نوشتن میخوام test bench رو بویسم و بعد ببرمش توی شبیه ساز isim
    اگه میشه کمک کنید خیلی مهمه واسم
    ممنون
    library IEEE;
    use IEEE.STD_LOGIC_1164.ALL;
    use std_logic_textio.ALL
    use IEEE.NUMERIC_STD.ALL;
    use IEEE.std_logic_signed.all;

    entity fir is
    Port ( Din : buffer STD_LOGIC_VECTOR (15 downto 0);
    Dout : buffer STD_LOGIC_VECTOR (36 downto 0);
    clk : in STD_LOGIC;
    reset : in STD_LOGIC);
    end fir;

    architecture Behavioral of fir is

    variable input_value,output_value : integer;

    type signed_array_type is array (natural range <&gt of signed(15 downto 0);
    signal delayed_input : signed_array_type(0 to 40);
    constant coefs : signed_array_type(0 to 40) := (
    to_signed(-32,16),to_signed(519,16),to_signed(131,16),to_sign ed(-412,16),to_signed(-330,16),to_signed(473,16),to_signed(644,16),to_sig ned(-427,16),
    to_signed(-1055,16),to_signed(203,16),to_signed(1537,16),to_s igned(285,16),to_signed(-2045,16),to_signed(-1169,16),to_signed(2526,16),to_signed(2741,16),
    to_signed(-2923,16),to_signed(-6035,16),to_signed(3185,16),to_signed(20544,16),to _signed(29492,16),to_signed(20544,16),to_signed(31 85,16),to_signed(-6035,16),to_signed(-2923,16),
    to_signed(2741,16),to_signed(2526,16),to_signed(-1169,16),to_signed(-2045,16),to_signed(285,16),to_signed(1537,16),to_s igned(203,16),to_signed(-1055,16),
    to_signed(-427,16),to_signed(644,16),to_signed(473,16),to_sig ned(-330,16),to_signed(-412,16),to_signed(131,16),to_signed(519,16),to_sig ned(-32,16));

    -- FIR Filter Fixed-Point Coefficients:
    -- -32,519,131,-412,-330,473,644,-427,
    -- -1055,203,1537,285,-2045,-1169,2526,2741,
    -- -2923,-6035,3185,20544,29492,20544,3185,-6035,-2923,
    -- 2741,2526,-1169,-2045,285,1537,203,-1055,
    -- -427,644,473,-330,-412,131,519,-32
    begin

    delay_proc: process(clk,reset)
    file input_file : text is in "filter_input.txt";
    variable in_line : line;
    begin

    --------------------------------------------------
    if not endfile(input_file) then
    --************************************
    readline(input_file,in_line);
    read(in_line,input_value);
    --************************************
    DIN <= std_logic_vector(to_signed(input_value,16));

    -----------------------------------------------

    if reset = '1' then
    for i in 0 to 40 loop
    delayed_input(i) <= to_signed(0,16);
    end loop;
    elsif clk'event and clk = '1' then
    delayed_input(1 to 40) <= delayed_input(0 to 39);
    delayed_input(0) <= signed(Din);
    end if;

    end if;
    end process;
    --**************************************

    mul_proc: process(clk)

    file output_file : text is out "filter_output.txt";
    variable out_line : line;
    variable tmp_mul : signed(30 downto 0);
    variable result : signed(36 downto 0);
    begin

    if not endfile(input_file) then
    result := to_signed(0,37);
    if clk'event and clk = '1' then
    for i in 0 to 40 loop
    tmp_mul := coefs(i) * delayed_input(i);
    result := result + resize(tmp_mul,37);
    end loop;
    Dout <= std_logic_vector(result);

    output_value := to_integer(signed(Dout));
    --*********************************
    write(out_line,output_value);
    writeline(output_file,out_line);
    --************************************
    end if;
    end if;
    end process;
    end Behavioral;
صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 11

موضوعات مشابه

  1. پاسخ: 27
    آخرين نوشته: 2015/06/16, 22:56
  2. خواندن فایل text در کدویژن
    توسط tasnime در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2015/06/03, 09:55
  3. پاسخ: 2
    آخرين نوشته: 2013/12/14, 14:33
  4. نوشتن در یک فایل Text بدون از دست دادن اطلاعات قبلی(AVR-DOS)
    توسط حمیدرضا رضایی در انجمن میکروکنترلرهای AVR
    پاسخ: 4
    آخرين نوشته: 2011/08/10, 23:28
  5. چگونگی استخراج سیگنال خروجی میکروفن به عنوان سیگنال پیام
    توسط alireza2s2003 در انجمن مدارهای آنالوگ و مدارهای مجتمع
    پاسخ: 7
    آخرين نوشته: 2011/02/22, 18:51

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •