Jump to content

    

Проверка плис при отсутствии clk

Добрый день!

Я начинаю делать первые шаги в ПЛИС. Сделал плату на spartan-6 xc6slx9 с программированием по jtag. 

К сожалению пока не доехал до меня кварцевый генератор, поэтому попробовал включить плату без него. Тест на дым прошла))

Подключенный к плате программатор видит плис как неизвестный чип.

Вопрос заключается в том, что должен ли программатор видеть плис без подключенного к ней кварцевого генератора при подключении по jtag?

Share this post


Link to post
Share on other sites
6 minutes ago, v_crys said:

Вопрос заключается в том, что должен ли программатор видеть плис без подключенного к ней кварцевого генератора при подключении по jtag?

должен. проверьте схемотехнику, питание, уменьшите частоту жтаг. 

Share this post


Link to post
Share on other sites
5 минут назад, v_crys сказал:

Подключенный к плате программатор видит плис как неизвестный чип.

Вопрос заключается в том, что должен ли программатор видеть плис без подключенного к ней кварцевого генератора при подключении по jtag?

Должен видеть. 

проверьте качество импульсов в  jtag. Если надо, то понижайте частоту...

Проверьте наличие файла bsdl. 

Share this post


Link to post
Share on other sites
18 минут назад, v_crys сказал:

Вопрос заключается в том, что должен ли программатор видеть плис без подключенного к ней кварцевого генератора при подключении по jtag?

Выложите схему включения.

Назовите программатор.

Назовите среду из которой пытаетесь увидеть плис.

Share this post


Link to post
Share on other sites

рекомендация - купите платку с такой ПЛИС, по-моему раньше были какие-то breakout/stick платки для спартанов6 по смешным ценам - дешевле чем сама ПЛИС

и проверьте на ней свой инструментарий (тот же жтаг), что он работает. если есть осциллограф - то можно будет сравнить.

Share this post


Link to post
Share on other sites

Всем большое спасибо, завелась!

1 час назад, Lmx2315 сказал:

Выложите схему включения.

Назовите программатор.

Назовите среду из которой пытаетесь увидеть плис.

В приложении схема платы, может кому пригодится... (используете на свой страх и риск)

Программатор: китайский Xilinx DLC9LP

Среда разработки: ise (запущенная под виртуалкой с линуксом из win10)

 

Допустил две ошибки:

1) не добавил bsdl файл (теперь буду знать)

2) типичный непропай одной из ног jtag у плис, обнаружил когда осциллографом начал проверять

 

Есть ли какая нибудь возможность использовать jtag для тактирования самой плис, чтобы можно было примитивный блинкер зашить?

vx100_sch.PDF

1 час назад, yes сказал:

рекомендация - купите платку с такой ПЛИС, по-моему раньше были какие-то breakout/stick платки для спартанов6 по смешным ценам - дешевле чем сама ПЛИС

и проверьте на ней свой инструментарий (тот же жтаг), что он работает. если есть осциллограф - то можно будет сравнить.

Я думал над этим, но так как в симуляторе я уже насиделся, то хотелось попробовать самому сделать, спасибо

Share this post


Link to post
Share on other sites
9 минут назад, v_crys сказал:

Есть ли какая нибудь возможность использовать jtag для тактирования самой плис, чтобы можно было примитивный блинкер зашить?

От jtag - нет...

Но можно снаружи припаять любой другой...

Share this post


Link to post
Share on other sites

Приветствую!

6 minutes ago, iosifk said:

Есть ли какая нибудь возможность использовать jtag для тактирования самой плис, чтобы можно было примитивный блинкер зашить?

Можно  слепить генератор на внутренней логики  типа  петли из задержек и инвертора. Типа:   

module gen #(parameter LEN=5) (
  output bit clk_o
);

(* dont_touch="true" *)
wire [LEN-1:0]  stg;

generate
  for (genvar gi=0; gi<LEN; ++gi) begin
    LUT1 #(.INIT(2'b10)) i_lut (
      .O (stg[gi]                          ), // 1-bit output: LUT
      .I0((gi==0) ? ~stg[LEN-1] : stg[gi-1])  // 1-bit input: LUT
    );
  end
endgenerate

always @(posedge stg[LEN-1]) begin
  clk_o <= ~clk_o;
end

endmodule

Удачи! Rob.

Share this post


Link to post
Share on other sites
Только что, RobFPGA сказал:

Приветствую!

Можно  слепить генератор на внутренней логики  типа  петли из задержек и инвертора. Типа:   


module gen #(parameter LEN=5) (
  output bit clk_o
);

(* dont_touch="true" *)
wire [LEN-1:0]  stg;

generate
  for (genvar gi=0; gi<LEN; ++gi) begin
    LUT1 #(.INIT(2'b10)) i_lut (
      .O (stg[gi]                          ), // 1-bit output: LUT
      .I0((gi==0) ? ~stg[LEN-1] : stg[gi-1])  // 1-bit input: LUT
    );
  end
endgenerate

always @(posedge stg[LEN-1]) begin
  clk_o <= ~clk_o;
end

endmodule

Удачи! Rob.

О, спасибо большое, обязательно попробую!

Share this post


Link to post
Share on other sites

Приветствую!

5 minutes ago, v_crys said:

О, спасибо большое, обязательно попробую!

Ну и насколько я помню  в Spartan6  вроде есть похожий  встроенный клок ~50 MHz для конфигурации.    Почитайте внимательно Spartan-6 Configuration User guide and data sheet как к нему подключится, чтобы свое не ваять. 

Удачи! Rob.  

Share this post


Link to post
Share on other sites
1 hour ago, v_crys said:

Есть ли какая нибудь возможность использовать jtag для тактирования самой плис, чтобы можно было примитивный блинкер зашить?

У MAX10 на борту есть автогенератор встроенный в PLL. Думаю у Спартана тоже такое должно быть. Искать конкретно в документах для PLL или DCM

Share this post


Link to post
Share on other sites
1 hour ago, RobFPGA said:

Приветствую!

Ну и насколько я помню  в Spartan6  вроде есть похожий  встроенный клок ~50 MHz для конфигурации.    Почитайте внимательно Spartan-6 Configuration User guide and data sheet как к нему подключится, чтобы свое не ваять. 

Удачи! Rob.  

В лампочке ise, для spartan6 есть аппаратный примитив  startup и него можно дернуть как раз тот самый клок, но он очень не качественный.

Share this post


Link to post
Share on other sites
1 hour ago, RobFPGA said:

Ну и насколько я помню  в Spartan6  вроде есть похожий  встроенный клок ~50 MHz для конфигурации.    Почитайте внимательно Spartan-6 Configuration User guide and data sheet как к нему подключится, чтобы свое не ваять.

STARTUP_SPARTAN6 primitive; выход CFGMCLK. UG380, стр. 69

Share this post


Link to post
Share on other sites
14 hours ago, RobFPGA said:

Можно  слепить генератор на внутренней логики  типа  петли из задержек и инвертора

А нормально синтезирует? Хотел так(не точно таким кодом) петлю сделать несколько лет назад, стинтезатор(ise) отказался заявив что асинхронные петли ему не нравятся. Пришлось хард макрос делать. Атрибут не трогать вижу, но там синтезатор сигнал не выкидывал, а просто вылетал с ошибкой

Edited by Strob

Share this post


Link to post
Share on other sites

Приветствую!

3 hours ago, Strob said:

А нормально синтезирует? Хотел так(не точно таким кодом) петлю сделать несколько лет назад, стинтезатор(ise) отказался заявив что асинхронные петли ему не нравятся. Пришлось хард макрос делать. Атрибут не трогать вижу, но там синтезатор сигнал не выкидывал, а просто вылетал с ошибкой

За ISE сейчас точно не скажу, -давно уже в нем ничего не делал. Но помню что похожее  решение работало. А Vivado синтезирует такое без проблем. Думаю что для  синтезатора важно что тут используется инстацирование примитивов LUT (как black_box),  а не непосредственно синтез  логики.  Поэтому как бы и нет логической петли.  А вот на имплементации  Vivado уже ворчит  варнингом DRC и  предложением пометит в констрейнах эту цепь как ALLOW_COMBINATORIAL_LOOPS TRUE. Так что надо пробовать. 

Удачи. Rob.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now