ch1 数字系统硬件设计概述
EDA软件平台:Quartus ǁ 、MAX+PLUSǁ (都是奥特拉ALTERA公司的)
硬件描述语言(HDL);我们所学的是VHDL,高级语言的一种,类似于c语言
目标芯片(可编程器件):CPLD、FPGA
完整的VHDL语言由实体和构造体组成
实体:描述系统的外部特性
构造体:描述系统的内部特性
VHDL语言还有库,包集合,配置。(一共5部分)
1.1传统的系统硬件设计方法
主要特征:
1.采用自下至上的设计方法
2.采用通用的逻辑元器件
3在系统硬件设计的后期进行仿真和调试
4主要设计文件是电原理图
1.2利用硬件描述语言的硬件电路设计方法
利用VHDL语言设计系统硬件的方法具有以下特点
1.采用自上至下(Top Down)的设计方法
从系统的总体要求出发,自上至下地逐步将设计内容细化,最后完成系统硬件的整体设计。在利用HDL的硬件设计方法中,将系统硬件设计自上至下分为3个层次进行:行为描述、RTL方式描述、逻辑综合。
第一层次:行为描述
对整个系统数学模型的描述
举例——六进制计数器
利用VHDL语言以行为方式描述六进制计数器的工作特性
LIBRARY IEEE; //IEEE 是库
USE IEEE.STD_LOGIC_1164.ALL; // 包集合
ENTITY counter IS
PORT(
clk:IN STD_LOGIC;
rs:IN STD_LOGIC;
counter_out:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));
END ENTITY counter;
ARCHITECTURE behav OF counter IS
SIGNAL next_count:STD_LOGIC_VECTOR(2 DOWNTO 0); //信号量
BEGIN
count_proc:PROCESS(rs,clk) IS
BEGIN
IF rs='0 'THEN //rs 复位
next_count<="000";
ELSEIF(clk'EVENT AND clk='1')THEN //clk有事件发生并且clk的值为1,即上升沿
CASE next_count IS
WHEN "000"=>next_count<="001";
WHEN "001"=>next_count<="011";
WHEN "011"=>next_count<="111";
WHEN "111"=>next_count<="110";
WHEN "110"=>next_count<="100";
WHEN "100"=>next_count<="000";
WHEN OTHERS=>next_count<="XXX";//XXX不确定
END CASE;
END IF;
count_out<=next_count AFTER 10ns;
END PROCESS count_proc;
END ARCHITECTURE behav;
上例是对计数器工作模型的描述。当程序仿真通过以后,说明六进制计数器模型是正确的。
在此基础上再改写程序,使其语句表达式易于用逻辑元件来实现,这是第二层次所要做的工作。
第二层次:RTL方式描述
又称寄存器传输描述(数据流描述)
导出系统的逻辑表达式,进行逻辑综合
举例——六进制计数器
用仿真工具对RTL方式描述的程序进行仿真,如果通过这一步仿真
第三层次:逻辑综合
利用逻辑工具将RTL方式描述的程序转换成用基本逻辑元件表示的文件(门级网络表)
一个比较简单的系统是不必经历上述的每一步的
利用VHDL语言设计系统硬件的方法具有以下特点
1.采用自上至下(Top Down)的设计方法
2.系统可大量采用ASIC芯片
3.采用系统早期仿真
4.降低了硬件设计的难度
5.主要设计文件使用HDL语言编写的程序