数电课设其实相对来说,是最简单的那个?
除了对vhdl一窍不通以外。
遇到了很靠谱的队友和组长!我们组除了做完电子钟和药瓶系统,还写了VGA。
我除了写了点没什么特别重要作用的小模块(24进制计数器
、设置状态时闪烁
)之外,主要写了三次分频器
,这个世界上可能是没有比我更了解分频器的人了吧(笑。我是没有感情的分频器女工。
N分频
temp : integer 0 to N;
--本质是数N次再进行二分频
p1: process(clk)
begin
if(clk'event and in1 = '1') then
if (temp = N-1) then
temp <= 0;
else
temp <= temp+1;
end if;
end if;
end process;
p2: process(clk, temp)
begin
if(clk'event and clk = '1') then
if(temp > N/2) then
q <= '0';
else
q <= '1';
end if;
end if;
end process;
别的一些分频操作在此基础上稍作修改就好了(比如VGA的26μs+6μs
)。
骚扰了jz爹好多次,让他帮我debug、想思路什么的(我还是菜啊……),谢谢jz爹爹有求必应而且还那么有耐心且温柔!他真的,我哭死。呜呜呜我即刻化身jz爹爹的小迷妹,爹爹真好,爹爹太帅了!
希望这辈子都不要再用vhdl写任何东西了。
也希望这辈子再也别写分频器了。