电子系统设计学习笔记
经过一个学期的数字逻辑电路实验以及电子系统设计学习,我对VHDL语言的知识从无到有,从少到多,其中要归因于多次试验以及设计时间。现将学习过程中得到的一些经验积累如下:
1、关于设计方法
可以将传统的自下而上方法和VHDL的至上而下方法综合。先使用maxplus的原理图设计功能画出原理图,进行波形仿真。再综合图中的各接口和原件进行行为描述。以一个时序脉冲与整形电路为例:
分析如下:
输入端:clk,prnclrn,ent,enp,ldn,其中使能端prn与清除段clrn在实验中不发挥作用,可省略。74161中的两个使能端和读取功能多余,也可以省略。
输出端:与图相同。variable怎么记
接线:三个计数器输出Q3,Q4,Q4b,Q5,,74641输出Q6,三周期输出Q7,Q8
图中包含五进制、四进制、三进制和二进制计数器各一
代码如下:
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY exp5tx IS
PORT(clk : IN STD_LOGIC;
CP1,CP2,CP3,CP4,CP5,CP6 : OUT STD_LOGIC;
Q3,Q4,Q4b,Q5,Q6,Q7,Q8 : BUFFER STD_LOGIC);//接线均使用buffer,方便调试,波形模拟成功后再改回signal
END exp5tx;
ARCHITECTURE DISTRIBUTER OF exp5tx IS
BEGIN
PROCESS(clk,Q3,Q5)
VARIABLE count_5 : STD_LOGIC_VECTOR(2 DOWNTO 0);
VARIABLE count_2 : STD_LOGIC;
VARIABLE count_4 : STD_LOGIC_VECTOR(1 DOWNTO 0);
VARIABLE count_3 : STD_LOGIC_VECTOR(1 DOWNTO 0);
BEGIN
IF(clk'EVENT AND clk='1')THEN
IF(count_5="000")THEN
count_5 := "001";Q3 <= '1';
ELSIF(count_5="001")THEN
count_5 := "010";Q3 <= '0';
ELSIF(count_5="010")THEN
count_5 := "011";Q3 <= '0';
ELSIF(count_5="011")THEN
count_5 := "100";Q3 <= '0';
ELSIF(count_5="100")THEN
count_5 := "000";Q3 <= '0';
END IF;
END IF; //五进制计数器
IF(Q3'EVENT AND Q3='1')THEN
IF(count_2='0')THEN
count_2 := '1'; Q4 <= '1';Q4b <= '0';
ELSIF(count_2='1')THEN
count_2 := '0'; Q4 <= '0';Q4b <= '1';
END IF;
END IF; //二进制计数器
IF(Q3'EVENT AND Q3='1')THEN
IF(count_4="00")THEN
count_4 := "01";Q5 <= '1';
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论