《EDA技术》课程设计.学生指导书
教材:《EDA技术实用教程——VHDL版(第四版)》 潘松 黄继业编著
1 QuartusII基本设计流程(参见教材P95)
【示例】利用VHDL语言设计一个带有异步复位、使能和同步加载功能的十进制加法计数器。VHDL
源程序教材P88例3-20。
1.1 建立工作库文件夹和编辑设计文件 1.2 创建工程 1.3 编译前设置
1.4 全程编译 1.5 时序仿真
1.6 应用RTL电路图观察器
2 引脚设置与硬件验证(参见教材P104)
2.1 开发系统与器件引脚配置说明
注:计数器时钟使用KH – 61001实验箱中TTL输出端。面板调节:FUNCTION(脉冲)、RANGE(10)、FREQUENCY(min)。 2.2 引脚锁定
注:因按键数量不够,硬件不进行预置数据功能测试。
2.3 编译文件下载
3 课程设计1(参见教材P140) 7段数码显示译码器设计 3.1 设计目的
学习7段数码显示译码器设计,学习VHDL的CASE语句应用及多层次设计方法。
3.2 设计原理
3.3 设计任务和设计参考
· 设计内容1:(1)利用VHDL语言设计一个带异步清零和使能控制的4 位二进制加法计数器CNT4B;
(2)设计仿真、引脚锁定和硬件测试;(3)生成模块符号CNT4B。
注1:VHDL编程参考教材P86例3-19和P88例3-20,生成符号参考教材P140图4-75。
注2:计数器时钟使用KH – 61001实验箱中TTL输出端。 注3:引脚锁定:
设计内容2:(1)利用VHDL语言设计一个 7段数码显示译码器;(2)设计仿真、引脚锁定和硬件测
试;(3)生成模块符号DECL7S。
注1:VHDL编程结构参考教材P73例3-5真值表描述方法和CASE语句,生成符号参考教材P140图4-75。
注2:计数器时钟使用KH – 61001实验箱中TTL输出端。
注3:硬件测试4位二进制数码采用软件设置方法,例如设置INA <= \。 注4:引脚锁定:
设计内容3:(1)利用顶层原理图设计一个 7段数码显示译码器;(2)设计仿真、引脚锁定和硬件测试。
注1:顶层原理图设计参考教材P140图4-75。
注2:计数器时钟使用KH – 61001实验箱中TTL输出端。
注3:引脚配置设计参考:
设计内容4:(1)输入系统时钟为48 MHz,设计一个分频器CNT48M,输出基准时钟为1 Hz;(参考教材P85整数类型定义和P88例3-20十进制计数器)(2)利用顶层原理图设计一个 7段数码显示译码器,显示转换频率为1 Hz;(3)设计仿真、引脚锁定和硬件测试。
注1:分频器CNT48M符号参考:
CNT48MF48MHzRSTF1Hzinst 注2:引脚配置设计参考:
4 课程设计2(参见教材P141) 数码扫描显示电路设计 4.1 设计目的
学习数码扫描显示电路设计。
4.2 设计原理 4.3 设计任务
利用VHDL和原理图设计方法,设计一个8位数码扫描显示电路,显示8位数码01234567或字符串。 ① 分频模块设计(几百 ~ 几千Hz) ② 扫描电路模块设计SCAN ③ 7段显示译码器设计DECL7S
④ 掌宇开发系统七段数码管显示控制KH_Model
掌宇开发系统对于底板上七段数码管等是通过寄存器操作的,操作时序如图所示。
KH_ModelRST_PIODIG[7..0]SEG[6..0]nCS0_PIOnOE_PIOnWE_PIOdata_PIO[7..0]add_PIO[4..0]inst2 library ieee; use ieee.std_logic_1164.all;
entity KH_Model is port(RST_PIO: in std_logic;
DIG: in std_logic_vector(7 downto 0); SEG: in std_logic_vector(6 downto 0); nCS0_PIO: out std_logic;
nOE_PIO,nWE_PIO: out std_logic;
data_PIO: inout std_logic_vector(7 downto 0); add_PIO: out bit_vector(4 downto 0)); end KH_Model;
architecture KH_Model_A of KH_Model is signal SEG_A: std_logic_vector(7 downto 0); begin
SEG_A <= '0' & SEG; -- 段码DP GFEDCBA -- SEG_A <= \ process(DIG,RST_PIO) begin
if(RST_PIO = '0') then nCS0_PIO <= '1'; nOE_PIO <= '1'; nWE_PIO <= '1'; else