用VHDL语言分别设计带同步复位的D触发器和用VHDL语言分别设计带同步置位/复位的D触发器。

发我给你 [email protected]

带同步复位的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;
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-05-21
VARIABLE CQI : STD_LOGIC_VECTOR(15 DOWNTO 0);
BEGIN
IF RST = '1' THEN CQI := (OTHERS => '0'); --异步清零
ELSIF CLK'EVENT AND CLK ='1' THEN --时钟上升沿触发
IF D = "000" THEN --模式-----10进制
IF CQI < 6 THEN CQI := CQI + 1;
ELSE CQI := (OTHERS => '0') ; END IF;

CLK为时钟输入,RST为异步清零端,D[2..0]为模式控制端,可实现几种不同模式的计数方式,本计数器可供选择的计数模式分别为:七进制,十进制,十二进制,二十四进制等......
我们以前做过这个题目了

VHDL程序和报告齐全@……本回答被网友采纳
第2个回答  2010-12-10
VARIABLE CQI : STD_LOGIC_VECTOR(15 DOWNTO 0);
BEGIN
IF RST = '1' THEN CQI := (OTHERS => '0'); --异步清零
ELSIF CLK'EVENT AND CLK ='1' THEN --时钟上升沿触发
IF D = "000" THEN --模式-----10进制
IF CQI < 6 THEN CQI := CQI + 1;
ELSE CQI := (OTHERS => '0') ; END IF

CLK为时钟输入,RST为异步清零端,D[2..0]为模式控制端,可实现几种不同模式的计数方式,本计数器可供选择的计数模式分别为:七进制,十进制,十二进制,二十四进制等......

VHDL程序和报告齐全@……
第3个回答  2013-12-31
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 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 art;