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

M@kar

Свой
  • Постов

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

  • Посещение

Весь контент M@kar


  1. drcExtractRules( layerDefs( "df2" metal1 = layer( "metal1") ....... m1_pin = pinText("metal1") ) Так пробовали?
  2. Правильно понимаете, это среда рабочего стола. Можете начать с Fedora, как вам написали выше. Но это дело индивидуальное, везде свои +/- и свои грабли.
  3. Есть такая проблема. Либо не видит шрифты, либо не хватает библиотеки. Смотрите log-файл в папке ./vnc-cds в домашнем каталоге.
  4. Если схемы не сложные, то можно работать непостредственно со spice netlist-ами. Я не пробовал, но есть подозрение, что его можно импортировать и сгенерировать schematic view.
  5. Доброго всем времени суток. Подскажите поставщиков Cadence IC в России.
  6. Доброго времени суток. При выращивании структуры с помощью sprocess сталкиваюсь со следующей ошибкой после генерации SnMesh: invalid face. Что-то нигде не могу найти что это значит, менял несколько раз шаг сетки, заданной с помощью refinebox - не помогло. Не сталкивались с этим? Заранее благодарен.
  7. Попробуйте поставить этот пакет http://rpm.pbone.net/index.php3/stat/3/sro...x11-fonts-75dpi и создать символьные ссылки на установившиеся шрифты, но они, вроде, уже установлены у вас.
  8. Здесь у вас осуществляется циклический сдвиг вправо (циклический сдвиговый регистр). Значение нулевого разряда переписывается в 15-ый разряд, а остальные сдвигаются вправо. Здесь пример есть, как это выглядит: http://ru.wikipedia.org/wiki/%D0%91%D0%B8%...%B2%D0%B8%D0%B3
  9. parameter data = 16'b1111_0000_0000_1111; А так не пробовали задавать? Если делать по-вашему, то он, видимо, будет матрицей 16 на 16.
  10. Тогда так можно сделать: always @(posedge clk or negedge clk) begin Но в реальных устройствах так лучше не делать.
  11. Вам нужно сделать синхронизацию по фронту, тогда все будет работать: always @(posedge clk) begin module m1(clk, d0, d1, d2, d3, out, counter); input wire clk; input wire d0, d1, d2, d3; output reg out = 0; output reg [3:0] counter = 0; always @(posedge clk) begin counter <= counter + 1; end endmodule
  12. Обращал внимание автора на это, он говорит так и надо. Спасибо вам за пример, а то я так и не сообразил.
  13. Попробуйте так: module CPLDS1( input start, clk, input [2:0] data, output out); reg d_out = 0; reg [6:0] vector = 0; reg [7:0] temp = 0; reg [2:0] sign = 0; reg [2:0] i = 0; assign out = d_out; always @(posedge clk or posedge start) begin if (start) begin if (sign == 0) begin for (i = 0; i < data; i = i + 1) begin temp [i] = 1; end vector <= temp [6:0]; temp <= 0; d_out <= 1; sign <= sign + 1; end else begin sign <= sign + 1; d_out <= vector [sign - 1]; end end else d_out <= 0; // if(start) begin end always @(negedge clk) d_out <= 0; endmodule Две строчки поменял: reg [7:0] temp = 0; и vector <= temp [6:0];
  14. Тут пытались найти http://electronix.ru/forum/index.php?showt...=41453&st=0 на русском лишь руководство по Allegro PCB Layout
  15. Тогда так: always @(negedge enable) begin if (cntr==9'd264) cpu_mess <= sr; end always @ (posedge cpu_clk_in) begin if (enable) begin sr[263:1] <= sr[262:0]; sr[0] <= cpu_data_in; cntr <= cntr +1; end else cntr <= 0; end Хотя не, так он else cntr <= 0; не обнулит никогда. Тогда у меня только вариант с латчем уживаться: always @ (posedge cpu_clk_in or negedge enable) begin if (enable) begin sr[263:1] <= sr[262:0]; sr[0] <= cpu_data_in; cntr <= cntr +1; end else begin // if (!enable) begin if (cntr==9'd264) cpu_mess <= sr; cntr <= 0; end end Его можно попробовать так убрать: module cpu_in ( input enable, input cpu_data_in, cpu_clk_in, output reg [263:0] cpu_mess, output wire [8:0] bytenums ); reg [263:0] sr = 0; reg [263:0] temp = 0; reg [8:0] cntr; assign bytenums = cntr; always @ (posedge cpu_clk_in or negedge enable) begin if (enable) begin sr[263:1] <= sr[262:0]; sr[0] <= cpu_data_in; cntr <= cntr +1; end else begin // if (!enable) begin if (cntr==9'd264) begin cpu_mess <= sr; temp <= sr; cntr <= 0; end else begin cntr <= 0; cpu_mess <= temp; end end endmodule Хотя так жаловаться на temp будет :rolleyes:
  16. Похоже на правду. Главное, что у вас все заработало уже :cheers: Так наверно тоже ругаться будет на latch? always @(negedge enable) begin if (cntr==9'd264) cpu_mess <= sr; cntr <= 0; end always @ (posedge cpu_clk_in) begin if (enable) begin sr[263:1] <= sr[262:0]; sr[0] <= cpu_data_in; cntr <= cntr +1; end end
  17. Вот статью посмотрите, может поможет. Первый вариант предпочтительней, второй мне не представляется возможным. si5906du.pdf
  18. Попробуйте вот так: module cpu_in ( input enable, input cpu_data_in, cpu_clk_in, output reg [263:0] cpu_mess, output wire [8:0] bytenums ); reg [263:0] sr = 0; reg [8:0] cntr; assign bytenums = cntr; always @(enable) begin always @ (posedge cpu_clk_in) begin sr[263:1] <= sr[262:0]; sr[0] <= cpu_data_in; cntr <= cntr +1; end end always @(negedge enable) begin if (cntr==9'd264) cpu_mess <= sr; cntr <= 0; end endmodule Не знаю, скомпилируется ли. Нет под рукой компилятора.
  19. Тогда у вас все должно работать, как вы и предлагали: always @ (posedge cpu_clk_in or negedge enable) begin if (enable == 1'b0) begin cntr <= 0; if (cntr==9'd264) cpu_mess <= sr; end else begin sr[263:1] <= sr[262:0]; sr[0] <= cpu_data_in; cntr <= cntr +1; end end Только, если нужно именно 264, то надо маленько условие исправить, как мне кажется: if (cntr==9'd263) Так она у вас с закоментированной строкой тоже ругается? Сделайте тогда его синхронным: always @ (posedge cpu_clk_in) begin
  20. Так оно и так будет сохраняться, без cpu_mess <= cpu_mess, это же по сути регистр памяти. Смотрите что у вас получается: изначально у вас cpu_mess находится в безразличном состоянии. Затем, если enable == 1'b1, то по клоку вы выполняете: ... sr[263:1] <= sr[262:0]; sr[0] <= cpu_data_in; cntr <= cntr +1; .... Заметьте cpu_mess вы не трогаете. Вот уже потом, если придет задний фронт enable (enable == 1'b0), тогда вы на выход cpu_mess выставляете значение cpu_mess <= sr и то при выполнении условия. Я так понимаю, что вам нужно получать значение cpu_mess, только тогда, когда enable == 1'b0? Либо с каждым клоком. У вас, видимо, просто всегда либо условие if (cntr==9'd264) не выполняется (enable == 1'b0 когда вы еще не досчитали до 264, либо уже пересчитали), либо cpu_data_in не поступает. Забудьте про cpu_mess <= cpu_mess, если вас пугает безразличное состояние то начальные значения задайте :rolleyes: Мне кажется, что вы вот что хотите реализовать: always @ (posedge cpu_clk_in or negedge enable) begin if (enable == 1'b0) begin cntr <= 0; end else begin sr[263:1] <= sr[262:0]; sr[0] <= cpu_data_in; if (cntr==9'd264) begin cpu_mess <= sr; cntr <= 0; end else cntr <= cntr +1; end end
×
×
  • Создать...