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

Postoroniy_V

Свой
  • Постов

    813
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о Postoroniy_V

  • Звание
    МедвеД Инженер I
    Знающий
  • День рождения 18.04.1976

Контакты

  • Сайт
    Array
  • ICQ
    Array

Retained

  • Звание
    Array

Посетители профиля

3 229 просмотров профиля
  1. ну много чего такого появляется в последнее время - за всем не уследишь, да и не надо например "новый" язык стамеска по аглицки 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 "всё как вы хотите" процесс итераций и прочее
  2. китайских? оно в индии пишется и оттуда же поддерживается и кстати, к китайским программистам/железячникам не стоит так шапкозакидательно относится.
  3. про версию годичной давности могу сказать что это просто ужасть. последняя версия хороша. И да использовал и пользуют в коммерц проектах. и самое удивительно что как бы всё ок. (хотя я недавно писал о якобы косяке в маппере, но то оказался мой косяк ) з.ы. вивадо только для 7 семейства, никаких виртухаев 5 или 6
  4. для Virtex6 с ISE нужен быстрый проц, много памяти, как тут писали. а чтобы инженер не сидел без дела нужно по другому организовать процесс, скажем синтез/маппер запускать на ночь и утром проверять если же есть возможность не использовать Virtex6 и переползти в 7 семейство то лучше использовать вивадо. вивадо на том же железе/проекте даёт сокращение с 4 часов до 2-х(зинк045)
  5. Computer Architecture A Quantitative Approach осторожно трафик -> http://eecs.oregonstate.edu/research/vlsi/...ve_approach.pdf http://electronix.ru/forum/index.php?showtopic=88548
  6. вот что было у ТС большую часть сигналов и настроек сделал через parameter, и модуль меняется. А сейчас появилось желание избавиться от части функционала, прям от нескольких входов - выходов, и блока их обработки. Оставить выход в воздухе - варнинг что выход не подключен, плюс часть функционала не оптимизируется и есть ресурсы. спсб за разьяснения про initial, оно мне как бе не надо это пусть ТС мучается :rolleyes: в первом исходнике что я дал нет никаких варнингов и синтезируется как надо. про VHDL не было речи, так что давайте без "а вот на VHDL..."
  7. wire[2:0] DistCode; нужно почитать про packed и unpacked array
  8. я не считаю этот как бе симулятом за симулятор проверял в симплифае всё делает как надо вот попробуйте так 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 это если синтез понимает initial, то да так тоже можно
  9. Этот безусловный always должен всем понравится потому что нужен для того чтобы назначить reg значение ибо assign test_out=0 для reg не верно ну а смысл того always в том что я хочу выкинуть выход test_out и всю логику подключенную к нему независимо от сброса и смысла в сбросе не вижу для это выхода. и да ваша правда симплифай не выкидывает в топе НО переделывает(переписывает) массив входов/выходов в "плоский" и вот тут как раз и подстава( это верно для systemverilog и vhdl, в верилоге (2001)нельзя иметь массив входов/выходов)
  10. препроцессор тут самое оно и если в исе с этим всё плохо я бы использовал генерате для удаления не нужного функционала 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...
  11. :bb-offtopic: Гарри, есть большая разница в прохождении собеседования и реального использования с++ те товарищи умеют хорошо готовить на с++ и в принципе твой пост можно переделать вот так Истины ради, а не холивара для. Все, кто ругает C/С++/Java/Verilog/VHDL, просто готовить его не умеют. :) Это проверено и доказано практикой многократно. нужно завязывать этот страшный холивар. один ч0рт адепты при своём мнении останутся и тогда контструктивом могут быть рекомендации новичкам по пунктам, на что обратить внимание и т.д. и т.п. вышел из темы всем хорошего дня!
  12. на С нет, не жалуются чего не скажешь про С++ вот пример, хотя наверное не ахти какой. Попробуйте порыть какой нить опенсорс написаной с кучей темплейтов? я пробовал на досуге, досуг не получился ну и сравните это мучение с pure C. да и в том же С можно (он ж позволяет вольности) написать некое чудо с редко воспроизводимым багом (casting не сделан например) тоесть глаз замылен и варнинги не читаются, ну и программа падает редко - "все счастливы". Но ведь никто не отменял линт когда мозг отключен или глаз замылен. И кое-где линт не только не отменён, но и является обязательным перед релизом. Не сделаный(забытый) кастинг и есть глупая/детская ошибка. так вот подобие линта есть уже в самом синтаксисе вхдл. возможности (ну или так "возможности" ) синтаксиса вхдл конечно не спасают от функциональных "заложенных" просчётов. а вот непонимание конструкций, синтасиса, не опытность использования вхдл(его долбаная strong type-ность) может вывести кого угодно из равновесия. и тут я согласен - придётся тратить время(в самом начале примерно 2-3 дня) на всякую фигню типа "как этот integer перевести в std_logic_vector" и наоборот. вот тут и наступает некий переломный момент. ну или не наступает , потому что работадателю ваши хотелки до фонаря. "Вам платят за написание на вхдл/верилог/java, потому что это внутренний стандарт компании!" или так "Вам платят за результат, потому что это куда важнее!" попробуйте последний случай на себе тут Вы будете один на один с проблемой. айгаранти! в моём случае, используя системверилог, все баги/шишки/косяки/прочяя - всё моё, удовольствие порой мало приятное. Но вы всё же попробуйте! Опыт гарантирован Короче к чему я всё это. а к тому что, тут есть некий психологический и стратегический момент в выборе языка. вот SV популярен и востребован потому что сейчас очень много времени уделяется верификации. Это стратегия. А вот если кому-то важна надёжность дело ни в вхдл, ни в верилоге. дело в человеках и их мозгах, их опыте, в том как налажен процесс верификации продукта. Это типа психология. :cranky: сколько человеков столько и мнений, каждому свой баг. з.ы. знакомые упомянали что им было проще проходить собеседование об/про java и они категорически отказывались от с++ на собеседовании
  13. это врядли 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 косяк проявлялся только в квесте симплифай, ква да и вивадо такое понимают
×
×
  • Создать...