Jump to content
    

Простая защелка (latch) на Verilog'е

Человек про асинхронный RS-латч спрашивал, понятно что чисто в общеобразовательных целях. Второй пост наиболее точно будет моделироваться, но необходимо добавить еще режим защиты от запрещенного набора входных сигналов {00} или {11} - в зависмости от типа латча, при котором возможен режим генерации. При подаче запрещенного набора на вход латча лучше всего выходы переводить в Х, чтобы разработчик видел свою ошибку.

 

А ПЛИС здесь вообще не при чем, асинхронных латчей сейчас ни в ПЛИС, ни в эсик не сделать. Разве только извратиться с использвоанием флопов с асинхронными Set и Reset, да где их найдешь?

Share this post


Link to post
Share on other sites

В большинстве случаев latch - нежелательный результат, поэтому важно знать как его описать. Это позволит не использовать конструкции, приводящие к имплементации латчей. Возможно в некоторых архитектурах и задачах они используются как равноправный элемент дизайна. В обычных ПЛИС их лучше исключить. Если же нужен "логический эквивалент", то ИМХО лучше так сделать (например):

logic a, b, c, y;

assign y = a && b;
always@(posedge clock)
     c <= y;
end

assign q = y || c;

И в итоге, тот же триггер

Share this post


Link to post
Share on other sites

И в итоге, тот же триггер

Если в ПЛИС есть только LUT и триггеры, то конечно всё будет реализовано на них. Есть разница в использовании. Сравните

always@(posedge clock) begin
    if (a && b)
          q <= 1'b1;
end

и

always@(*) begin
    if (a && b)
          q = 1'b1;
end

Для реализации этих конструкций синтезатор будет применять одни и теже ресурсы, но функционально это разные схемы (первая - триггер, вторая - латч). Также у них будет разная разводка и разные тайминги. Синтезатор не сможет сделать латч аппаратно, как Shivers сказал, но он попробует его реализовать на тех ресурсах, которые у него есть. Но такая реализация может привести к плохим таймингам.

 

А тот код, который я привёл ранее, реализует защёлку явно на логике и триггерах. Т.о. мы явно говорим синтезатору, что делать.

Edited by serjj

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.

×
×
  • Create New...