发布网友 发布时间:2022-04-24 04:25
共2个回答
热心网友 时间:2022-04-24 15:59
我写的代码,可以计时60秒。下面有我的仿真波形。至于报告嘛,我看还是你自己 写吧,毕竟学习这个东西,不能完全靠别人的啊!
library IEEE;
use IEEE.std_logic_11.all;
use IEEE.std_logic_unsigned.all;
entity MB is
port (
start: in STD_LOGIC;
stop: in STD_LOGIC;
cp: in STD_LOGIC;
disph: out STD_LOGIC_VECTOR (6 downto 0);
displ: out STD_LOGIC_VECTOR (6 downto 0)
);
end MB;
architecture MB_arch of MB is
signal qh:std_logic_vector(2 downto 0);
signal ql:std_logic_vector(3 downto 0);
begin
p1:process(start,cp)
begin
if stop='0' then
if start='1' then
if cp'event and cp='1' then
if ql="1001" then ql<="0000";
if qh="110" then
qh<="000";
else
qh<=qh+'1';
end if;
else
ql<=ql+'1';
end if;
end if ;
end if;
end if;
end process p1;
p2: process(qh,ql)
begin
case qh is
when"000"=> disph<="0111111";
when"001"=> disph<="0000110";
when"010"=> disph<="1011011";
when"011"=> disph<="1001111";
when"100"=> disph<="1100110";
when"101"=>disph<="1101101";
when"110"=> disph<="1111101";
when others=>NULL;
end case;
case ql is
when"0000"=> displ<="0111111";
when"0001"=> displ<="0000110";
when"0010"=> displ<="1011011";
when"0011"=> displ<="1001111";
when"0100"=> displ<="1100110";
when"0101"=>displ<="1101101";
when"0110"=> displ<="1111101";
when"0111"=> displ<="0000111";
when"1000"=> displ<="1111111";
when"1001"=> displ<="1101111";
when others=>NULL;
end case;
end process p2;
end MB_arch;
热心网友 时间:2022-04-24 17:17
先学习下vhdl可以做一些需要的器件 其他好多可以用数电的集成电路 我也做过那个设计 加油吧 一个周够用的 可以给你思路 先按需求分出频率 d触发器开关 计数器 显示译码器 就差不多了 我觉得这个没有必要用到vhdl编程