Jump to content

    

библиотеки VHDL

Recommended Posts

vladeg
Cмотрите на сигнал we для данной памяти - чудес не бывает ;)

 

PS описания памяти надо делать согласно Language Template

тогда будет память на блочной памяти синтезироваться, а не будет distributed ...

Хотя может Вы специально используете distributed память...

 

Делал по этому примеру:

http://vhdlguru.blogspot.com/2011/01/block...-on-xilinx.html

 

Там написано, что в distributed запись синхронная, а читать можно асинхронно.

Специально использую distributed, да.

Вписал "attribute ram_style of ram : signal is "distributed";"

Потому что мне мало надо.

 

serjj спасибо за ссылки, буду читать.

 

Nepoch Verilog буду учить, да. Потому что все равно надо.

 

_Anatoliy, aat_81 спасибо за советы, я буду пробовать...

 

Я включил numeric_std чтобы векторы складывать.

А если STD_LOGIC_ARITH/STD_LOGIC_UNSIGNED убираю, то тогда вылезают ошибки там где счетчики "+1" "делают".

В общем надо переделывать. Надо учится..

 

 

 

Начал в общем менять "std_logic_vector" на "unsigned" чтобы "+1" работало, и поползли новые ошибки, из субмодулей и отовсюду, что мол теперь сигналы несовместимы.

В общем, в этом проекте, не буду переделывать сейчас уже наверно. Когда что-то новое буду делать, то может тогда с NUMERIC_STD подружусь.

 

А то что "STD_LOGIC_ARITH/STD_LOGIC_UNSIGNED" какие то "левые", я даже и не думал раньше.

У xilinx-a, в папке "ISE_DS\ISE\vhdl\hdlMacro" все на них собрано.

 

Может мне просто надо научится векторы складывать без "ieee.numeric_std.all" ?

Share this post


Link to post
Share on other sites

Golikov

ну VHDL всегда славился монструозными конструкциями преобразования типов.

то что вы объявили что-то как ансигнед, это же не значит что сигналы физически поменялись, просто стало понятно как для данного типа работает математика. Более того и математика даже работает для всех типов практически одинаков, вопрос применения знака.

 

Потому объявляйте вектором, а потом во всех мат действиях явно приводите операнды, складывайте и приводите тип обратно, как то так я делал когда писал на VHDL :), верилог меня избавил от этого зоопарка...

Share this post


Link to post
Share on other sites

serjj1333
А то что "STD_LOGIC_ARITH/STD_LOGIC_UNSIGNED" какие то "левые", я даже и не думал раньше.

У xilinx-a, в папке "ISE_DS\ISE\vhdl\hdlMacro" все на них собрано.

Они не левые, они просто не ieee'шные, их сделали synopsis для synopsis. А то что у xilinx на них много, что сделано, ну так там тоже люди работают, многие начинали давным давно на synopsis и не хотят переделывать что либо, ибо "работает-не трожь". Но если поискать, то можно найти, что xilinx рекомендует в новых дизайнах использовать именно numeric_std.

Share this post


Link to post
Share on other sites

Maverick_
Они не левые, они просто не ieee'шные, их сделали synopsis для synopsis. А то что у xilinx на них много, что сделано, ну так там тоже люди работают, многие начинали давным давно на synopsis и не хотят переделывать что либо, ибо "работает-не трожь". Но если поискать, то можно найти, что xilinx рекомендует в новых дизайнах использовать именно numeric_std.

+1

Share this post


Link to post
Share on other sites

Strob
Начал в общем менять "std_logic_vector" на "unsigned" чтобы "+1" работало, и поползли новые ошибки, из субмодулей и отовсюду, что мол теперь сигналы несовместимы.

В общем, в этом проекте, не буду переделывать сейчас уже наверно. Когда что-то новое буду делать, то может тогда с NUMERIC_STD подружусь.

 

Может мне просто надо научится векторы складывать без "ieee.numeric_std.all" ?

Используя numeric_std, очень приятно счетчики задать как integer range 0 to maxCnt. Только не забывать проверять условие на обнуление счетчика по максимальному числу)

Если интересно посмотрите тут всякие полезности

Edited by Barktail

Share this post


Link to post
Share on other sites

alexadmin
Используя numeric_std, очень приятно счетчики задать как integer range 0 to maxCnt. Только не забывать проверять условие на обнуление счетчика по максимальному числу)

 

Я может странную вещь скажу, но задавать счетчика как integer можно и вовсе не используя numeric_std.

Share this post


Link to post
Share on other sites

aat_81
Я включил numeric_std чтобы векторы складывать.

А если STD_LOGIC_ARITH/STD_LOGIC_UNSIGNED убираю, то тогда вылезают ошибки там где счетчики "+1" "делают".

В общем надо переделывать. Надо учится..

 

 

 

Начал в общем менять "std_logic_vector" на "unsigned" чтобы "+1" работало, и поползли новые ошибки, из субмодулей и отовсюду, что мол теперь сигналы несовместимы.

В общем, в этом проекте, не буду переделывать сейчас уже наверно. Когда что-то новое буду делать, то может тогда с NUMERIC_STD подружусь.

 

А то что "STD_LOGIC_ARITH/STD_LOGIC_UNSIGNED" какие то "левые", я даже и не думал раньше.

У xilinx-a, в папке "ISE_DS\ISE\vhdl\hdlMacro" все на них собрано.

 

Может мне просто надо научится векторы складывать без "ieee.numeric_std.all" ?

На самом деле не вижу ничего плохого в использовании библиотек STD_LOGIC_UNSIGNED или STD_LOGIC_SIGNED главное понимать для чего. Просто копирование библиотеки может привести к труднообнаружимой ошибке, но как Вы совершенно верно заметили в 90% случаев это работает.

 

 

Я может странную вещь скажу, но задавать счетчика как integer можно и вовсе не используя numeric_std.

Можно, но потом заниматься конвертированием не хочется

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.