Аўтаматычны сцяг для кампілятара дырэктывы на аснове сінтэзу/мадэлявання для Xilinx/ModelSim?

У мяне ёсць вялікі Verilog праект, які я сінтэзуюцца на Xilinx FPGA і імітуючы ў ModelSim. Ёсць некалькі модуляў, у якім я хацеў бы, каб імітаваць адну версію названага модуля і сінтэзаваць іншы. Напрыклад, у мяне ёсць параметризированный debouncer скіду, які адлічвае некалькі мілісекунд. Відавочна, што для мадэлявання гэта раздражняе так, перш чым я сімуляваць змяніць колькасць бразгату на нешта накшталт 10 тактаў. У цяперашні час у мяне ёсць сцяг ( `вызначыць сімуляцыю), якія я закаментаваць для сінтэзу. Тады ў маіх модулях я выкарыстоўваю дырэктывы кампілятара, як «IfDef скласці іншую версію deouncer у залежнасці ад сінтэзу/мадэлявання:

 `ifdef SIMULATION
   button_debouncer #(1,5, 24)
`else
   button_debouncer #(1,12000000,24)
`endif
   resetdebounce(/**/
        //Outputs
         .debounced     (reset),
        //Inputs
         .clk           (clk),
         .button        (~reset_button));

У той час як гэта працуе яна патрабуе, каб я каментую у/з `вызначыць Simulation кожны раз, калі я перайсці ад modlesim да ISE. Я часта забываюць, пустая трата часу, і г.д., і г.д.

Ёсць аўтаматычны спосаб, каб вызначыць, які інструмент выкарыстоўваецца? Напрыклад, я мог бы сказаць нешта накшталт IfDef XILINX або IfDef ModelSim замест майго `IFDEF SIMULATION ўзламаць? Вялікі дзякуй!

0
Абодва @CliffordVienna і dwikle рашэння працуюць добра. У залежнасці ад вашых ланцугоў інструмента адзін або абодва рашэнні выдатна працуюць.
дададзена аўтар Doov, крыніца

6 адказы

Згодна Кіраўніцтву карыстальніка Xilinx Isim (UG660, v14.3, стар 44), ISIM перадвызначаныя макра XILINX_ISIM (да значэння 1). Так проста выкарыстоўваць XILINX_ISIM замест мадэлявання.

3
дададзена
Выдатна! Вялікі дзякуй. Я дам, што стрэл, калі я вярнуўся ў офіс. Вельмі высокая ацэнка.
дададзена аўтар Doov, крыніца
Гэта добра працавала для мяне. Дзякуем Вам за дапамогу!
дададзена аўтар Doov, крыніца

Mentor Graphics імітатары (ModelSim і квэста) вызначаць MODEL_TECH препроцессора макрас.

Так што вы можаце зрабіць:

`ifdef MODEL_TECH
 //code for simulation with modelsim
`else
 //code for synthesis
`endif
3
дададзена
Крута. Дзякуй! Я дам, што стрэл, калі я вярнуўся ў офіс. Вельмі высокая ацэнка!
дададзена аўтар Doov, крыніца
Гэта выдатна працуе для мяне. Дзякуем Вам за дапамогу!
дададзена аўтар Doov, крыніца

Mentor Graphics імітатары (ModelSim і квэста) вызначаць MODEL_TECH препроцессора макрас.

Так што вы можаце зрабіць:

`ifdef MODEL_TECH
 //code for simulation with modelsim
`else
 //code for synthesis
`endif
3
дададзена
Крута. Дзякуй! Я дам, што стрэл, калі я вярнуўся ў офіс. Вельмі высокая ацэнка!
дададзена аўтар Doov, крыніца
Гэта выдатна працуе для мяне. Дзякуем Вам за дапамогу!
дададзена аўтар Doov, крыніца

Mentor Graphics імітатары (ModelSim і квэста) вызначаць MODEL_TECH препроцессора макрас.

Так што вы можаце зрабіць:

`ifdef MODEL_TECH
 //code for simulation with modelsim
`else
 //code for synthesis
`endif
3
дададзена
Крута. Дзякуй! Я дам, што стрэл, калі я вярнуўся ў офіс. Вельмі высокая ацэнка!
дададзена аўтар Doov, крыніца
Гэта выдатна працуе для мяне. Дзякуем Вам за дапамогу!
дададзена аўтар Doov, крыніца

Паспрабуйце праходжанне + вызначыць + Мадэляванне у відэаблог у якасці аргументу каманднага радка.

0
дададзена
Дзякуй за інфармацыю. Вы ведаеце, калі гэта прывядзе да пастаяннага або вызначыць, калі я павінен быў бы зрабіць, што кожны раз, калі я адкрываю ModelSim?
дададзена аўтар Doov, крыніца

Паспрабуйце праходжанне + вызначыць + Мадэляванне у відэаблог у якасці аргументу каманднага радка.

0
дададзена
Дзякуй за інфармацыю. Вы ведаеце, калі гэта прывядзе да пастаяннага або вызначыць, калі я павінен быў бы зрабіць, што кожны раз, калі я адкрываю ModelSim?
дададзена аўтар Doov, крыніца