1、 简单计算器简单计算器 一、设计分析 1、功能描述 设计一个简单 0-9 数之间的加、减、乘法运算的计算器, ,输入和输出均可以显示在数码管上。 2、实现工具 1、用 VHDL 语言文本形式输入; 2、maxplusII 行语言编写时序仿真和综合。 二、设计思想 采用自顶向下的设计方式,分层进行设计。设计分为五个模块进行; 计算器模块、 八位二进制数转化成 8421BCD 码模块, 四选一数据选择器模块, 七段显示译码器模块、 模 4 计数器模块、模 8 计数器块、38 译码器块。顶层设计可以完全独立于目标器件芯片物理结构 的硬件描述语言。使用 VHDL 模型在所综合级别上对硬件设计进行说明、
2、建模和仿真。 1、顶层原原理框图 2、具体实现 1、计算器模块、 2、八位二进制数转化成 8421BCD 码模块 3、四选一数据选择器模块 4、七段显示译码器模块 5、模 4 计数器模块 6、模 8 计数器块 7、38 译码器块 三、设计过程 1、建立工程 建立一个 Project,命名为 jiandanjisuanqi。将各个模块生成的文件放在同一个文件夹下。 2、文本输入 将各个模块的 VHDL 代码输入,保存并综合。 3、仿真 建立各个模块的 gdf 图,设置输入波形并仿真。 4、顶层原理图输入 利用各个模块生成的 sym 文件建立顶层原理图,编译并仿真。 5、硬件实现 实验室提供的器件
3、为 FLEX10K,型号为 EPF10K10LC84-4,将文件下载到器件当中,在实验箱中进 行模拟。 四、 整体框图 五、VHDL 部分代码及说明 1、计算器模块、 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity jisuanqi is Port (a,b: in STD_LOGIC_VECTOR (3 downto 0); sel:in STD_LOGIC_VECTOR (1 downto 0); -加减乘控制端
4、s: out STD_LOGIC_VECTOR (7 downto 0); end jisuanqi; architecture Behavioral of jisuanqi is signal q1 ,q2: STD_LOGIC_VECTOR (3 downto 0); signal q3: STD_LOGIC_VECTOR (7 downto 0); signal q4: STD_LOGIC_VECTOR (1 downto 0); begin q1q2)then q3= q1-q2; s=q3; else q3=q2-q1; s q3=q1*q2; s q3=q1*q2; s q3=“00000000“; s=q3; end case; end process; end Behavioral; 2、八位二进制数转化成 8421BCD 码模块 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGN