Jump to content

    

Postoroniy_V

Свой
  • Content Count

    813
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Postoroniy_V

  • Rank
    МедвеД Инженер I
  • Birthday 04/18/1976

Контакты

  • Сайт
    http://
  • ICQ
    0

Recent Profile Visitors

2881 profile views
  1. Цитата(Leka @ May 12 2015, 16:23) Кто бы сомневался. Пирамиды вон голыми руками возвели. всё врут календари!(С) "Горе от ума"
  2. Цитата(Мур @ May 9 2015, 20:46) http://www.pshdl.org/ https://www.youtube.com/watch?v=wr3hEy_Sif0 Прошу делиться мнением, впечатлениями... Спасибо! ну много чего такого появляется в последнее время - за всем не уследишь, да и не надо например "новый" язык стамеска по аглицки chisel -> https://chisel.eecs.berkeley.edu/ вот процессор на нём же https://github.com/ucb-bar/riscv-sodor з.ы трудно за всем угнаться(MyHDL, OpenCL, стамески всякие) а верилог,вхдл уже тут и работают з.з.ы вот сюды гляньте https://launchpad.net/tce и http://tce.cs.tut.fi/ там в этом TCE "всё как вы хотите" процесс итераций и прочее
  3. http://caes.ewi.utwente.nl/index.php/resea...erial/sabrewing
  4. Цитата(o_khavin @ Feb 28 2014, 19:27) Как мне говорили старшие товарищи, проблема в генах китайских программистов. Видимо, это у нас проект такой... сложный. китайских? оно в индии пишется и оттуда же поддерживается и кстати, к китайским программистам/железячникам не стоит так шапкозакидательно относится.
  5. Цитата(o_khavin @ Feb 28 2014, 18:26) Вы его использовали? У нас в проекте это Вивадо исключительно с применением ненормативной лексики упоминают. про версию годичной давности могу сказать что это просто ужасть. последняя версия хороша. И да использовал и пользуют в коммерц проектах. и самое удивительно что как бы всё ок. (хотя я недавно писал о якобы косяке в маппере, но то оказался мой косяк ) з.ы. вивадо только для 7 семейства, никаких виртухаев 5 или 6
  6. Цитата(syoma @ Feb 22 2014, 21:30) Народ подскажите пожалуйста. Нужен комп для разводки ПЛИСов в ISE/EDK. Операция для Virtex-6 на на данный момент занимает около 4-х часов машинного времени. Так как я понимаю ISE не поддерживает мультипроцессорность - нужна машина с максимальной тактовой частотой. Так? Можете подсказать по производителям и моделям процессоров и материнок? Планируем также брать SSD в качестве винчестера. Есть смысл? Оперативка? Как мы определили больше 32гиг уже нет смысла? Что еще критично? В принципе бюджет ограничен рамками разумного, но думаю, что и 2000$ будет не жалко - а то инженер без дела сидит. для Virtex6 с ISE нужен быстрый проц, много памяти, как тут писали. а чтобы инженер не сидел без дела нужно по другому организовать процесс, скажем синтез/маппер запускать на ночь и утром проверять если же есть возможность не использовать Virtex6 и переползти в 7 семейство то лучше использовать вивадо. вивадо на том же железе/проекте даёт сокращение с 4 часов до 2-х(зинк045)
  7. Цитата(Paviaa @ Feb 21 2014, 21:19) Изучаю verilog, делаю свой процессор. Чувствую что застрял. Какие есть архитектуры процессоров и что по ним можно прочитать? Computer Architecture A Quantitative Approach осторожно трафик -> http://eecs.oregonstate.edu/research/vlsi/...ve_approach.pdf http://electronix.ru/forum/index.php?showtopic=88548
  8. Цитата(SM @ Feb 18 2014, 19:16) Синтезу не нужно ничего понимать в initial-ах. Синтез поголовно все регистры (порты, и т.п.), которым ничего и нигде не присвоено, просто выкинет, а если они где-то используются (а в данном примере они не должны использоваться, так как об этом вся ветка, что делать с неиспользуемым портом), то заводит их на GND. А initial только для симулятора, чтобы не было отличия от синтеза. вот что было у ТС большую часть сигналов и настроек сделал через parameter, и модуль меняется. А сейчас появилось желание избавиться от части функционала, прям от нескольких входов - выходов, и блока их обработки. Оставить выход в воздухе - варнинг что выход не подключен, плюс часть функционала не оптимизируется и есть ресурсы. спсб за разьяснения про initial, оно мне как бе не надо это пусть ТС мучается Цитата(Timmy @ Feb 18 2014, 19:14) В этом случае при синтезе возможен варнинг о неиспользованном и неприсвоенном значении test_out_r. Вот на VHDL можно просто использовать continuous assigment на test_out, а как 100% правильно и переносимо сделать это на verilog, пока не понятно. Хотя нет, понятно: надо test_out_r декларировать только внутри generate, когда test_out используется, и в отдельном generate писать assign test_out = 1'b0;, когда test_out не используется. в первом исходнике что я дал нет никаких варнингов и синтезируется как надо. про VHDL не было речи, так что давайте без "а вот на VHDL..."
  9. Цитата(sidy @ Feb 18 2014, 18:33) Возник еще один вопрос, не могу разобраться в чем дело: Имеется код: ..... При компиляции выдается сообщение: Error (10044): Verilog HDL error at project.v(37): expression cannot reference entire array "DistCode" wire[2:0] DistCode; нужно почитать про packed и unpacked array
  10. Цитата(Timmy @ Feb 18 2014, 17:43) Проверил в Active HDL: с собачкой always блок вообще не выполняется, значение не присваивается, без собачки даёт предупреждение на бесконечный цикл, и действительно молотит бесконечный цикл с нулевой дельтой. я не считаю этот как бе симулятом за симулятор проверял в симплифае всё делает как надо вот попробуйте так Кодmodule test #(parameter     TEST_ON0=0,     TEST_ON1=0 ) (     input clk, reset,     input valid_in,     input[31:0]data_in,     output reg[31:0] data_out,     output reg data_val,     output [31:0]test_out );     reg[31:0]test_out_r;          always@(posedge clk or posedge reset)     if(reset)     begin        data_out<=0;        data_val<=0;     end     else     begin         data_out<=(valid_in)?data_in:data_out;         data_val<=valid_in;     end          generate     if(TEST_ON0==1 && TEST_ON1==0)begin:TEST_ON0_GEN         reg[31:0] testt;         always@(posedge clk or posedge reset)         if(reset)         begin            testt<=0;            test_out_r<=0;         end         else         begin             testt<=(valid_in)?testt+1:testt;             test_out_r<=(valid_in)?testt:test_out_r;         end     end     endgenerate          generate     if(TEST_ON1==1 && TEST_ON0==0)begin:TEST_ON1_GEN         reg[63:0] testt;         always@(posedge clk or posedge reset)         if(reset)         begin            testt<=64'd0;            test_out_r<=0;         end         else         begin             testt<=(valid_in && data_in==2)?testt+1:testt;             test_out_r<=(valid_in)?testt[63:32]:test_out_r;         end     end     endgenerate         assign test_out=(TEST_ON0==TEST_ON1)?0:test_out_r; endmodule Цитата(SM @ Feb 18 2014, 17:46) А зачем там always блок? Там initial нужен. А синтез сам все выкинет и без блока вообще. это если синтез понимает initial, то да так тоже можно
  11. Цитата(Timmy @ Feb 18 2014, 13:44) Этот безусловный always может кому-нибудь не понравится, раз всё равно есть reset, можно писать always @(posedge reset)test_out<=0; Интересно, можно ли здесь использовать initial, его вроде некоторые синтезаторы не понимают? Синплифай никогда не выкидывает топовые порты при синтезе в edif. В отличие от латтисовского мэпа. Этот безусловный always должен всем понравится потому что нужен для того чтобы назначить reg значение ибо assign test_out=0 для reg не верно ну а смысл того always в том что я хочу выкинуть выход test_out и всю логику подключенную к нему независимо от сброса и смысла в сбросе не вижу для это выхода. и да ваша правда симплифай не выкидывает в топе НО переделывает(переписывает) массив входов/выходов в "плоский" и вот тут как раз и подстава( это верно для systemverilog и vhdl, в верилоге (2001)нельзя иметь массив входов/выходов)
  12. Цитата(Golikov A. @ Feb 17 2014, 17:44) Всем привет Есть модуль, который выполняет какой то функционал. В каких-то проектах он имеет доп выходы, в каких-то нет. Не хочется делать 2 модуля, чтобы если произойдут правки, поправилось сразу во всех проектах. большую часть сигналов и настроек сделал через parameter, и модуль меняется. А сейчас появилось желание избавиться от части функционала, прям от нескольких входов - выходов, и блока их обработки. Оставить выход в воздухе - варнинг что выход не подключен, плюс часть функционала не оптимизируется и есть ресурсы. Так вот как по уму делают такое в verilog? Я по старой доброй програмерской традиции использовал `ifdef, `else, `endif и буду дописывать `define (кстати у verilog есть область видимости `define, он может быть во внешнем модуле?). Но вот теперь вспоминая что обычно в ПЛИС все надо делать ни как очевидно, и особенно ни как делают програмеры, решил поинтересоваться, а есть ли другой, более правильный вариант? Какие преимущества - недостатки? Или я все сделал правильно и я молодец ? препроцессор тут самое оно и если в исе с этим всё плохо я бы использовал генерате для удаления не нужного функционала Кодmodule test #(parameter     TEST_ON0=1,     TEST_ON1=0 ) (     input clk, reset,     input test_on0,     input test_on1,     input valid_in,     input[31:0]data_in,     output reg[31:0]data_out,     output reg data_val,     output reg[31:0]test_out );     always@(posedge clk or posedge reset)     if(reset)     begin        data_out<=0;        data_val<=0;     end     else     begin         data_out<=(valid_in)?data_in:data_out;         data_val<=valid_in;     end          generate     if(TEST_ON0==1)begin:TEST_ON0_GEN         reg[31:0] testt;         always@(posedge clk or posedge reset)         if(reset)         begin            testt<=0;            test_out<=0;         end         else         begin             testt<=(valid_in)?testt+1:testt;             test_out<=(valid_in)?testt:test_out;         end     end     endgenerate          generate     if(TEST_ON1==1)begin:TEST_ON1_GEN         reg[63:0] testt;         always@(posedge clk or posedge reset)         if(reset)         begin            testt<=64'd0;            test_out<=0;         end         else         begin             testt<=(valid_in && data_in==2)?testt+1:testt;             test_out<=(valid_in)?testt[63:32]:test_out;         end     end     endgenerate         generate     if(TEST_ON1==TEST_ON1)begin:NOTEST_GEN         always@(*)             test_out=0;     end     endgenerate endmodule по другому никак. итого варианты 1)ifdef 2)generate 3)пробовать синтезировать в симплифай в исе импортировать edif. Тут может быть подстава, симплифай выкинет неиспользованые входа выхода и в инстансе уже при синтезе xst будет ругань. нужно будет ешё и аттрибуты прописать keep...
  13. Цитата(dxp @ Feb 12 2014, 17:07) Истины ради, а не холивара для. Все, кто ругает С++, просто готовить его не умеют. Это проверено и доказано практикой многократно. Гарри, есть большая разница в прохождении собеседования и реального использования с++ те товарищи умеют хорошо готовить на с++ и в принципе твой пост можно переделать вот так Истины ради, а не холивара для. Все, кто ругает C/С++/Java/Verilog/VHDL, просто готовить его не умеют. Это проверено и доказано практикой многократно. нужно завязывать этот страшный холивар. один ч0рт адепты при своём мнении останутся и тогда контструктивом могут быть рекомендации новичкам по пунктам, на что обратить внимание и т.д. и т.п. вышел из темы всем хорошего дня!
  14. Цитата(Jackov @ Feb 12 2014, 00:10) , и это отдельное большое достоинство. Ибо второе важнейшее качество кода - читаемость и понимаемость ночью, при выключающихся мозгах. Ну не знаю... На С/С++ ведь ни кто не жалуется в этом плане. на С нет, не жалуются чего не скажешь про С++ вот пример, хотя наверное не ахти какой. Попробуйте порыть какой нить опенсорс написаной с кучей темплейтов? я пробовал на досуге, досуг не получился ну и сравните это мучение с pure C. да и в том же С можно (он ж позволяет вольности) написать некое чудо с редко воспроизводимым багом (casting не сделан например) тоесть глаз замылен и варнинги не читаются, ну и программа падает редко - "все счастливы". Но ведь никто не отменял линт когда мозг отключен или глаз замылен. И кое-где линт не только не отменён, но и является обязательным перед релизом. Не сделаный(забытый) кастинг и есть глупая/детская ошибка. так вот подобие линта есть уже в самом синтаксисе вхдл. возможности (ну или так "возможности" ) синтаксиса вхдл конечно не спасают от функциональных "заложенных" просчётов. а вот непонимание конструкций, синтасиса, не опытность использования вхдл(его долбаная strong type-ность) может вывести кого угодно из равновесия. и тут я согласен - придётся тратить время(в самом начале примерно 2-3 дня) на всякую фигню типа "как этот integer перевести в std_logic_vector" и наоборот. вот тут и наступает некий переломный момент. ну или не наступает , потому что работадателю ваши хотелки до фонаря. "Вам платят за написание на вхдл/верилог/java, потому что это внутренний стандарт компании!" или так "Вам платят за результат, потому что это куда важнее!" попробуйте последний случай на себе тут Вы будете один на один с проблемой. айгаранти! в моём случае, используя системверилог, все баги/шишки/косяки/прочяя - всё моё, удовольствие порой мало приятное. Но вы всё же попробуйте! Опыт гарантирован Короче к чему я всё это. а к тому что, тут есть некий психологический и стратегический момент в выборе языка. вот SV популярен и востребован потому что сейчас очень много времени уделяется верификации. Это стратегия. А вот если кому-то важна надёжность дело ни в вхдл, ни в верилоге. дело в человеках и их мозгах, их опыте, в том как налажен процесс верификации продукта. Это типа психология. сколько человеков столько и мнений, каждому свой баг. з.ы. знакомые упомянали что им было проще проходить собеседование об/про java и они категорически отказывались от с++ на собеседовании
  15. Цитата(SM @ Feb 11 2014, 14:42) А что это за синтаксис такой, '0 ? Стандарт определяет только три вида чисел: КодInteger numbers can be used as operands in expressions. An integer number can be expressed as An unsized, unbased integer (e.g., 12) An unsized, based integer (e.g., ’d12, ’sd12) A sized, based integer (e.g., 16’d12, 16’sd12) и по стандарту после ' обязательно надо указать base: The second form specifies a size constant, which shall be composed of up to three tokens—an optional size constant, a single quote followed by a base format character, and the digits representing the value of the number ..... The second token, a base_format, shall consist of a case-insensitive letter specifying the base for the number, optionally preceded by the single character s (or S) to indicate a signed quantity, preceded by the single quote character (’). Так что, эту странную конструкцию вообще обматерить должны были.... это врядли SystemVerilog enhances assignments of a literal value in two ways. First, a simpler syntax is added, that allows specifying the fill value without having to specify a radix of binary, octal or hexadecimal. Secondly, the fill value can also be a logic 1. The syntax is to specify the value with which to fill each bit, preceded by an apostrophe ( ' ), which is sometimes referred to as a ”tick”. Thus: • '0 fills all bits on the left-hand side with 0 • '1 fills all bits on the left-hand side with 1 • 'z or 'Z fills all bits on the left-hand side with z косяк проявлялся только в квесте симплифай, ква да и вивадо такое понимают