电子设计自动化 授课教师:何旭
电子设计自动化 电子设计自动化 授课教师:何 旭
第七章编程技巧 第一节VHDL编程方法 第二节定时建模的方法 第三节用错误检査提高建模准确性 第四节提高仿真性能建模 第五节对逻辑操作査表 第六节 Processi语句—避免无限循环 第七节用ⅴHDL做仿真激励
第七章 编程技巧 第一节 VHDL编程方法 第二节 定时建模的方法 第三节 用错误检查提高建模准确性 第四节 提高仿真性能建模 第五节 对逻辑操作查表 第六节 Process语句—避免无限循环 第七节 用VHDL做仿真激励
第一节VHDL编程方法
第一节 VHDL编程方法
采用如下方法增强复杂设计的可读性: 将相关的声明与描述归为一组 用缩排表示隶属关系 用空格进行代码分隔 使相似的字(如保留字)和标点一致 注释程序功能 保留字用大写字母,用户定义标识符用小写字母 对于 generIc和常数标识符,第一个字母大写,其余小写 对 process,并行程序调用等标号(描述名) 时刻想着读者。你可能只写一次,但会读多次
采用如下方法增强复杂设计的可读性: •将相关的声明与描述归为一组 •用缩排表示隶属关系 •用空格进行代码分隔 •使相似的字(如保留字)和标点一致 •注释程序功能 •保留字用大写字母,用户定义标识符用小写字母 •对于generic和常数标识符,第一个字母大写,其余小写 • 对process,并行程序调用等标号(描述名) •时刻想着读者。你可能只写一次,但会读多次
第二节定时建模的方法
第二节 定时建模的方法
嵌入固定延时参数 例 ENTITY and2 gate IS PORT (inO, inl: IN bit outl: oUt bit) END and2 gate ARCHITECTURE fixed delay Of and2 gate IS CONSTANT Typical delay: time: =8 ns: BEGIN outl < inO and inl aFTER Typical delay END fixed delay
一、嵌入固定延时参数 例: ENTITY and2_gate IS PORT (in0, in1 : IN bit; out1 : OUT bit); END and2_gate; ARCHITECTURE fixed_delay OF and2_gate IS CONSTANT Typical_delay : time := 8 ns; BEGIN out1 <= in0 AND in1 AFTER Typical_delay; END fixed_delay;
嵌入可变延时参数 例 LIBRARY my lib USE my lib. Logic example. ALL ENTITY and2 gate IS PORT (InO, inl IN my Isim LOGIC outI: OUT my Isim LOGIC) END and2 gate
二、嵌入可变延时参数 例: LIBRARY my_lib; USE my_lib. Logic_example. ALL; ENTITY and2_gate IS PORT (in0, in1 : IN my_lsim_LOGIC; out1 : OUT my_lsim_LOGIC); END and2_gate;
ARCHITECTURE variable delay Of and2 gate IS CONSTANT Tplh typ: time: =5 ns CONSTANT Tphl typ: time: =8ns BEGIN and inputs PROCESS (inO, in1) BEGIN IF (inO AND in1)=I' THEN outl=Tphl typ)THEN outl <=X AFTER TpIh typ ELSE outl<=X AFTER TphI typ END IF END PROCESS and inputs, END variable delay
ARCHITECTURE variable_delay OF and2_gate IS CONSTANT Tplh_typ : time := 5 ns; CONSTANT Tphl_typ : time := 8 ns; BEGIN and_inputs : PROCESS (in0, in1) BEGIN IF (in0 AND in1) = ‘1’ THEN out1 = Tphl_typ) THEN out1 <= ‘X’ AFTER Tplh_typ; ELSE out1 <= ‘X’ AFTER Tphl_typ; END IF; END PROCESS and_inputs; END variable_delay;
用 generIc参数化模型 例 LIBRARY my lib USe my lib. my qsim logic. ALL ENTITY test and2 gate IS END test and2 gate
三、用generic参数化模型 例: LIBRARY my_lib; USE my_lib. my_qsim_logic. ALL; ENTITY test_and2_gate IS END test_and2_gate;
ARCHITECTURE test bench Of test and2 gate IS COMPONENT and2 GENERIC(RS, Fl: time) PORT (a, b: IN my qsim 12state OUT my gsim 12state) END COMPONENT FOR al: and2 USE ENTITY and2 gate( behav GENERIC MAP(RS, FD PORT MAP (a, b, c) SIGNAL X, y,z: my qsim 12state BEGIN al. and2 GENERIC MAP (7 ns, 10 ns) PORT MAP(X, y, Z); ENd test bench
ARCHITECTURE test_bench OF test_and2_gate IS COMPONENT and2 GENERIC (Rs, Fl : time); PORT (a, b : IN my_qsim_12state; c : OUT my_qsim_12state); END COMPONENT; FOR a1 : and2 USE ENTITY and2_gate(behav) GENERIC MAP (Rs, Fl) PORT MAP (a, b, c); SIGNAL x, y, z : my_qsim_12state; BEGIN a1 : and2 GENERIC MAP (7 ns, 10 ns); PORT MAP (x, y, z); END test_bench;