Перейти к содержанию
    

квестасим 64 + системверилог

до этого юзал моделсим 63 попробовал квесту 64 и при вызове окна свойств файла квеста64

выдаёт такое вот в логе

# reading modelsim.ini
# Loading project cpri_test
#  Trace back: invalid command name "compile_svlog_dialog"
#     while executing
# "compile_svlog_dialog $nb"
#     (procedure "Project::openCompilerSettingDialog" line 45)
#     invoked from within
# "Project::openCompilerSettingDialog $comp_sel"
#     (procedure "Project::properties" line 12)
#     invoked from within
# "Project::properties"
#     (menu invoke) 
#    2: ::tkerror {invalid command name "compile_svlog_dialog"} 
#    1: ::bgerror {invalid command name "compile_svlog_dialog"}

такое происходит исключительно с системвериложными файлами, с вхдл всё ок.

в моделсиме 63 полет нормальный.

вопрос как быть? и кто виноват? :)

 

вопрос номер 2

имеются исходники на вхдл и модуль обертка на верилоге. обертка имеет параметр передает его как параметр для вхдл. при синтезе (в квартусе) это конечно проходит. при моделировании вижу что параметр имеет значение в вхдл моделях X.

вопросы всё теже - кто виноват и что делать?(данный эффект есть в моделсим63 и в квесте64)

 

заранее спасибо :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вопрос как быть? и кто виноват? :)

 

1. ни разу подобное не пользовал, все как то ручками, ручками по колхозному vlog -$opt -sv +incdir+$incdir + $rtldir/filename.sv

 

2. Надо попробывать, отпишу о результатах позже

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. ни разу подобное не пользовал, все как то ручками, ручками по колхозному vlog -$opt -sv +incdir+$incdir + $rtldir/filename.sv

 

2. Надо попробывать, отпишу о результатах позже

 

1) ну это понятное дело, что так можно. У вас тот же эффект возникает если не ручками?

2) спсб

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне иногда помогает удаление

"C:\Documents and Settings\<user>\Application Data\hte\"

Точнее нужно удалять нужную версию hte.ini

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) ну это понятное дело, что так можно. У вас тот же эффект возникает если не ручками?

2) спсб

 

1. эффект абсолютно тот же.

 

2. Вспомнил молодость

 

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity uut is
  generic (
    pA : integer            ;
    pB : unsigned(3 downto 0)
  );
end entity;

architecture beh of uut is

begin

  main : process begin
    report "pA = " & integer'image(pA) severity WARNING;
    report "pB = " & integer'image(TO_INTEGER(pB)) severity WARNING;
    assert (false) report "stop" severity FAILURE;
    wait;
  end process;

end architecture;

module wrapper
  #(
    parameter int         pA = 0 ,
    parameter logic [3:0] pB = 0
  );

  uut #(pA, pB) uut ();

endmodule

module tb;

  wrapper #(10, 14) wrapper ();

  initial begin : main
    #10;
    $stop;
  end
endmodule

 

результат работы

 

# ** Warning: pA = 10

# Time: 0 ns Iteration: 0 Instance: /tb/wrapper/uut

# ** Warning: pB = 14

# Time: 0 ns Iteration: 0 Instance: /tb/wrapper/uut

# ** Failure: stop

# Time: 0 ns Iteration: 0 Process: /tb/wrapper/uut/main File: uut.vhd

 

версия 6.4 Revision: 2008.06

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вопрос номер 2

можно поглядеть шапку entity ВХДЛного модуля, установку модуля в Верилог модуле и декларацию соответствующих вериложных переменных и параметров.

а то гадать как-то на кфейной гуще не хо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне иногда помогает удаление

"C:\Documents and Settings\<user>\Application Data\hte\"

Точнее нужно удалять нужную версию hte.ini

 

это не помогает и hte.ini в "C:\Documents and Settings\<user>.... отсутствует

 

1. эффект абсолютно тот же.

 

2. Вспомнил молодость

спасибо с этим ясно, у меня generic std_logic и с этим проблемы см. ниже

 

можно поглядеть шапку entity ВХДЛного модуля, установку модуля в Верилог модуле и декларацию соответствующих вериложных переменных и параметров.

а то гадать как-то на кфейной гуще не хо

можно конечно, только результат у меня тот же получается( Х в параметрах) если изменить код des00 вот так

LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
USE IEEE.std_logic_unsigned.ALL;
USE IEEE.numeric_std.ALL;


entity uut is
  generic (
    pA : integer         ;
    pB : unsigned(3 downto 0);
    sumulation_on:std_logic
  );
end entity;

architecture beh of uut is

begin

  main : process begin
    report "pA = " & integer'image(pA) severity WARNING;
    report "pB = " & integer'image(TO_INTEGER(pB)) severity WARNING;
    report "sumulation_on = " & integer'image(CONV_INTEGER("10" & sumulation_on)) severity WARNING;
    --report "xx = " & integer'image(CONV_INTEGER("11" & "00")) severity WARNING;
    assert (false) report "stop" severity FAILURE;
    wait;
  end process;

end architecture;

module wrapper
  #(
    parameter int         pA = 0 ,
    parameter logic [3:0] pB = 0,
    parameter logic        sumulation_on =1'b0
  );

  uut #(pA, pB,sumulation_on) uut ();

endmodule

module tb;

  wrapper #(10, 14,1'b1) wrapper ();

  initial begin : main
    #10;
    $stop;
  end
endmodule

лог

# Loading work.uut(beh)
# ** Warning: There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, the result will be 'X'(es).
#    Time: 0 ns  Iteration: 0  Instance: /tb/wrapper/uut
# ** Warning: CONV_INTEGER: There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, and it has been converted to 0.
#    Time: 0 ns  Iteration: 0  Instance: /tb/wrapper/uut
run
# ** Warning: pA = 10
#    Time: 0 ns  Iteration: 0  Instance: /tb/wrapper/uut
# ** Warning: pB = 14
#    Time: 0 ns  Iteration: 0  Instance: /tb/wrapper/uut
# ** Warning: sumulation_on = 0
#    Time: 0 ns  Iteration: 0  Instance: /tb/wrapper/uut
# ** Failure: stop
#    Time: 0 ns  Iteration: 0  Instance: /tb/wrapper/uut

 

квеста 64 билд тот же

напомните как std_logic в integer конвертировать :wub: вхдл давно не брал в руки

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ндя, надо писать баг репорт. есть у них какой то косяк с передачей параметров между типами logic/std_logic.

 

Варианта решения по месту вижу 2 :

 

  library ieee;
  use ieee.std_logic_1164.all;
  use ieee.numeric_std.all;

  entity uut is
    generic (
      pA     : integer                     ;
      pB     : unsigned(3 downto 0)        ;
      sim_on : std_logic_vector(0 downto 0)
    );
  end entity;

  architecture beh of uut is

  begin

    main : process
    begin
      report "pA =     " & integer'image(pA) severity WARNING;
      report "pB =     " & integer'image(TO_INTEGER(pB)) severity WARNING;
      report "sim_on = " & integer'image(TO_INTEGER(unsigned(sim_on))) severity WARNING;
      assert (false) report "stop" severity FAILURE;
      wait;
    end process;

  end architecture;

 

  library ieee;
  use ieee.std_logic_1164.all;
  use ieee.numeric_std.all;

  entity uut is
    generic (
      pA     : integer                     ;
      pB     : unsigned(3 downto 0)        ;
      sim_on : boolean
    );
  end entity;

  architecture beh of uut is

  begin

    main : process
    begin
      report "pA =     " & integer'image(pA) severity WARNING;
      report "pB =     " & integer'image(TO_INTEGER(pB)) severity WARNING;
      report "sim_on = " & boolean'image(sim_on) severity WARNING;
      assert (false) report "stop" severity FAILURE;
      wait;
    end process;

  end architecture;

 

оба варианта корректно работают

 

module wrapper
  #(
    parameter int         pA      = 0 ,
    parameter logic [3:0] pB      = 0 ,
    parameter logic       sim_on  = 0
  );

  uut #(pA, pB, sim_on) uut ();

endmodule

module tb;

  wrapper #(10, 14, 1) wrapper ();

  initial begin : main
    #10;
    $stop;
  end
endmodule

 

# ** Warning: sim_on = 1

# Time: 0 ns Iteration: 0 Instance: /tb/wrapper/uut

 

# ** Warning: sim_on = true

# Time: 0 ns Iteration: 0 Instance: /tb/wrapper/uut

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ндя, надо писать баг репорт. есть у них какой то косяк с передачей параметров между типами logic/std_logic.

 

Варианта решения по месту вижу 2 :

 

..........

спасибо :a14:

косяк этот есть и в 6.3 версии

решение проблемы понятно, где косяк сидит тоже ясно

 

вообщем всем спасибо, все свободны (с) :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...