LIBRARY ieee;
USE ieeestd_logic_1164all;
ENTITY one IS
PORT (DIN,CLK : IN STD_LOGIC;
OOUT : OUT STD_LOGIC);
END one;
ARCHITECTURE behav OF one IS
SIGNAL Q:STD_LOGIC_VECTOR (2 DOWNTO 0);
BEGIN
PROCESS(CLK)
BEGIN
if rising_edge(CLK) then
Q(0) <= DIN;
Q(1) <= Q(0);
Q(2) <= Q(1);
end if;
END PROCESS;
OOUT <= Q(2) NAND (Q(1) XOR Q(0));
END behav;
根据真值表的描述结合VHDL编程思想很好实现你想要的程序;
程序并不难,关键是你用心的程度;
我猜你也许也是一名我的同行……
自己的努力才是过硬的本领!!!!
LIBRARY IEEE;
USE IEEESTD_LOGIC_1164ALL;
USE IEEESTD_LOGIC_UNSIGNEDALL;
ENTITY RS_clk IS
PORT( S,R,res :IN std_logic;
Q,NOT_Q:out std_logic);
END RS_clk;
ARCHITECTURE behav OF RS_clk IS
signal sel1,sel2: std_logic;
BEGIN
process(res,sel1,sel2)
begin
if res='0' then sel1<='0';
sel2<='1';
elsif (S='1' and R='0') then sel1<='1';
sel2<='0';
elsif (S='0' and R='1') then sel1<='0';
sel2<='1';
elsif (S='0' and R='0') then sel1<=sel1;
sel2<=sel2;
end if;
Q<=sel1;
NOT_Q<=sel2;
end process;
END behav;
只能告诉你原理,先用一做计数器用你学号作为默认值,开关控制计数器增加;这个很简单,主要是显示,显示要用动态显示,数码管的位选要在四个数码管上快速的循环转移,这样能看出来四个数码管是都亮的效果,段选就比较简单了,通过一个译码动作并且判断位选的状态译码出学号的每一位的数字。这些在网上看一个动态显示数码管的代码就会了。祝你成功!
时钟信号 clk触发 ,count=0,sum=0
每个clk event 变量 count=count+1,如果count小于等于100,则
sum=count+sum; 有段日子没用了,我说下思想吧
以上就是关于根据原理图写出相应VHDL程序全部的内容,包括:根据原理图写出相应VHDL程序、如何用VHDL语言编程基本RS触发器……、急:用VHDL程序写一个显示学号后四位的数码管显示计数器!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)