分频电路与12归1电路设计.doc
文本预览下载声明
实验四十三 分频电路与12归1电路设计
验项目名称:简单逻辑电路设计与仿真
实验项目性质:普通实验
所属课程名称:VHDL与集成电路CAD
实验计划学时:2学时
实验目的
学习VHDL硬件描述语言描述电路的原理;
学会使用VHDL进行简单的电路设计;
掌握VHDL语言调用子程序的方法。
实验要求
复习VHDL相关的章节;
MAX+PLUSⅡ 软件使用向导;
预习实验内容;
用VHDL硬件描述语言进行电路设计。
实验仪器
1.PC机一台
2.MAX+PLUSⅡ 软件
实验内容与步骤
1.设计一个分频电路
已知fp信号源脉冲频率为100Hz,试编写一分频程序,得到一周期为1秒(频率为1Hz)的脉冲频率,并将之形成元件例化文件,存在现行库是,以便下一个设计调用。
(1)开机,进入MAX+PLUSⅡ系统。
(2)点击File菜单Project子菜单之Name项,出现Project Name 对话框。为当前的实验选择恰当的路径并创建项目名称 注意MAX+PLUSⅡ不识别中文路径 。
(3)点击File菜单之New项,出现对话框,选择Text Editor File输入方式,文本编辑窗口(注意界面发生了一定变化)。
(4)点击File菜单之Save as 项,出现对话框,在File Name 栏中输入文件名,该文件名要与设计中的Entity 所取的名相一致,且文件名的后缀为vhd,如fp.vhd 。至此,就可以在文本编辑框中输入VHDL语言编写的程序了。
(5)编译与仿真。
vhdl设计输入参考程序:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY fp IS
PORT inclk:IN STD_LOGIC; outputf:OUT STD_LOGIC ;
END fp;
ARCHITECTURE arch_fp OF fp IS
SIGNAL fp: STD_LOGIC_VECTOR 5 DOWNTO 0 ;
SIGNAL f: STD_LOGIC;
BEGIN
PROCESS inclk
BEGIN
IF inclkEVENT AND inclk 1 THEN IF fp 49 THEN fp 000000; f not f; ELSE fp fp+1; END IF;
END IF;
END PROCESS;
outputf f;
END arch_fp;
2.12归1电路设计
(1)创建一个新的项目。点击File菜单Project 子菜单下Project Name项;输入项目名称。
(2)打开文本编辑窗口。点击File菜单下New项,选Text Editor项。
(3)时钟源采用上面的分频电路所分得的1秒的时钟源。
(4)12归1电路参考程序(VHDL):
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY twelveto1 IS
PORT finclk:IN STD_LOGIC; outputa:OUT STD_LOGIC_VECTOR 6 DOWNTO 0 ;
outputb:OUT STD_LOGIC_VECTOR 6 DOWNTO 0 ;
END twelveto1;
ARCHITECTURE arch_twelveto1 of twelveto1 IS
SIGNAL sa: STD_LOGIC_VECTOR 3 DOWNTO 0 ;
SIGNAL sb: STD_LOGIC_VECTOR 3 DOWNTO 0 ;
SIGNAL f: STD_LOGIC;
COMPONENT fp
PORT inclk : IN STD_LOGIC;
outputf: OUT STD_LOGIC ;
END COMPONENT;
BEGIN
u1: fp
PORT MAP inclk finclk,outputf f ;
PROCESS f
BEGIN
IF rising_edge f THEN
IF sa 2 and sb 1 THEN
sa 0001;
sb 0000;
ELSE
IF sa 9 THEN
sa 0000;
sb sb+1;
ELSE
sa sa+1;
END IF;
END IF;
END IF;
END PROCESS;
WITH sa SELECT Outputa 0110000 when 0001, --1 1101101 when 0010, --2 1111001 when 0011, --
显示全部