用VHDL程式設計 非同步清零的D觸發器

時間 2021-10-15 00:22:10

1樓:壬宵雨

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity dff_asy is

port (

clock : in std_logic ;--clock

reset : in std_logic ;--reset

dff_in : in std_logic ;--data in

dff_out : out std_logic --data out

);end dff_asy;

architecture rtl of dff_asy is

signal reg_dff_out : std_logic ; -- internal signals

begin

process (clock,reset) begin

if (reset = '1') then -- asynchronous reset

reg_dff_out <= '0';

elsif (clock'event and clock = '1') then

reg_dff_out <= dff_in ;

end if;

end process;

dff_out <= reg_dff_out ;

end rtl;

下面是同步清零的例子:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity dff_syn is

port (

clock : in std_logic ;--clock

reset : in std_logic ;--reset

dff_in : in std_logic ;--data in

dff_out : out std_logic --data out

);end dff_syn;

architecture rtl of dff_syn is

signal reg_dff_out : std_logic ; -- internal signals

begin

process (clock) begin

if (clock'event and clock = '1') then

if (reset) then

reg_dff_out <= '0' ;

else

reg_dff_out <= dff_in ;

end if ;

end if;

end process;

dff_out <= reg_dff_out ;

end rtl;

2樓:風月融

給你個連線看看

3樓:

好容易掙的分啊,直接裝一個軟體ise/quartus,模板裡都有。

用vhdl語言設計一個具有非同步復位功能的8位d觸發器

4樓:

library ieee;

use ieee.std_logic_1164.all;

entity dff8 is

port (clk,clr:in std_logic;

d:in std_logic_vector(7 downto 0);

q:out std_logic_vector(7 downto 0));

end dff8;

architecture bhv of dff8 is

signal q1:std_logic_vector(7 downto 0) :="00000000";

begin

process(clk,clr,q1)

begin

if clr = '1' then

q1<= "00000000";

elsif clk'event and clk='1' then

q1<=d;

end if ;

q<=q1;

end process ;

end bhv;

用vhdl語言分別設計帶同步復位的d觸發器和用vhdl語言分別設計帶同步置位/復位的d觸發器。 10

5樓:空中落英

vhdl語言編寫的帶同步置位/復位的d觸發器:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity trigger_d is

port(clk,d,sreset,sset:in std_logic; --同步復位端sreset,同步置位端sset

q,qf:out std_logic);

end entity;

architecture art of trigger_d isbegin

process(clk,d,sreset,sset)begin

if clk'event and clk='1' thenif sreset='1' then q<='0';qf<='1'; --同步復位端sreset,高電平有效,復位

elsif sset='1' then q<='1';qf<='0'; --同步置位端sset,高電平有效,置位

else q<=d;qf<=not(d);

end if;

end if;

end process;

end art;

6樓:玄鐵重劍

帶同步復位的d觸發器:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity trigger_d is

port(clk,d,sreset:in std_logic; --同步復位端sreset

q,qf:out std_logic);

end entity;

architecture art of trigger_d is

begin

process(clk,d,sreset)

begin

if clk'event and clk='1' then

if sreset='1' then q<='0';qf<='1';

else q<=d;qf<=not(d);

end if;

end if;

end process;

end architecture art;

下一個是帶同步置位/復位的d觸發器:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity trigger_d is

port(clk,d,sreset,sset:in std_logic; --同步復位端sreset,同步置位端sset

q,qf:out std_logic);

end entity;

architecture art of trigger_d is

begin

process(clk,d,sreset,sset)

begin

if clk'event and clk='1' then

if sreset='1' then q<='0';qf<='1'; --同步復位端sreset,高電平有效,復位

elsif sset='1' then q<='1';qf<='0'; --同步置位端sset,高電平有效,置位

else q<=d;qf<=not(d);

end if;

end if;

end process;

end architecture art;

使用vhdl語言設計d觸發器

寫出d觸發器的三種vhdl程式

7樓:匿名使用者

我還沒試過用vhdl畫好d觸發器什麼的電路圖,看看軟體自行生成的程式呢。呵呵

採用 verilog hdl語言設計一個非同步清零,非同步置位d觸發器(需要分頻器,50hz分頻) 20

8樓:

module d(rst1,rst0,clk,in,out);

input rst1,rst0,clk,in;

output out;

reg out;

always@(posedge clk or negedge rst1 or negedge rst0)

begin

if(~rst1)  out<=1;           //注意下降du沿配套

zhi的條件寫

dao法

else if(~rst0) out<=0;    //注意下降沿配套的條件寫法

else out <= in;            //直接完成d觸發專器的特性方程就可以了

屬//begin

//if(in)  out<=in;

//else out<=out;

//end

endendmodule

用VHDL實現分頻,VHDL編寫分頻器

模n計數器的實現 一般設計中用到計數器時,我們可以呼叫lpm庫中的計數器模組,也可以採用vhdl語言自己設計一個模n計數器。本設計採用vhdl語言設計一個最大模值為16的計數器。輸入埠為 使能訊號en,復位訊號clr和時鐘訊號clk 輸出埠為 qa qb qc qd。其vhdl語言描述略。帶使能控制...

網路程式設計裡的同步和非同步有啥區別的

網路程式設計中,同步的意思是說,進行收發資料,等到資料真正傳送出去或者接受到,才返回 而非同步的意思是,可以把資料傳送到緩衝區立即返回,而傳送成功的訊息是通過事件通知的。非同步可以騰出更多的cpu來處理其他事情,所以非同步的方式比較靈活。執行緒同步是指,多個執行緒協同完成一件工作,一個執行緒需要等待...

用python程式設計求1 ,用python程式設計求1 1 2 1 3 1 4 1 5 累加和,資料項小於0 1時停止

樹不開叉 def summa summ 0 for i in range 1,100 fl 1.0 i if fl 0.1 summ fl else print the sum is summreturn sum summa 注意縮排 def iteritem limit x 1.while 1 v...