2015-05-05 8 views
-2
NAND

Вот мой код:Генерировать синхронизированный SR-защелки с четырьмя воротами

`timescale 1ns/1ns 
module sr_latch (input s,r,clk ,output q,q_bar,w,w_bar); 
    wire i,j; 
    assign w=q; 
    assign w_bar=q_bar; 
    nand#7(i , r , clk); 
    nand#7(j , s , clk); 
    nand#7(q_bar,q,i); 
    nand#7(q , q_bar , j); 
endmodule 

module tb_sr_latch(); 
    reg s,r,clk; 
    wire q,q_bar,w,w_bar; 
    sr_latch op(s , r , clk , q , q_bar ,w,w_bar); 
    initial begin 
     clk=1; s=0 ; r=1; 
     #50 r=0; 
     #50 s=1; 
     #50 r=1; 
    end 
endmodule 

Я не знаю, почему выход для s=1 и r=1 1. Если я использую другой испытательный стенд (например, добавление q=0 в начале), он делает много значений «X»!

ответ

0

Я не верю, что R = S = 1 является допустимым входным сигналом к ​​заслонке SR. В этом состоянии любой выход будет недействительным. Таблицы истинности для SR с защелкой: https://electronics.stackexchange.com/questions/163164/sr-flip-flop-nor-or-nand

Также смотрите: https://electronics.stackexchange.com/questions/62501/why-is-s-1-r-1-state-forbidden-in-rs-flip-flop?rq=1

+0

Я знаю, что это не действительный вход, но мой Verilog код не показывает, что! Я не знаю почему. – Farhood

+0

Причина, по которой это неверно, заключается в том, что вывод недействителен. Это не означает, что на выходе будет отображаться неизвестный (X), но вывод ** не может ** и не должен использоваться, поскольку результат непредсказуем. – wilcroft

Смежные вопросы