数电课设其实相对来说,是最简单的那个?

除了对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写任何东西了。

也希望这辈子再也别写分频器了。