广东seo网站设计,中国诚乡建设部网站,网站做导航设计的作用是什么意思,网站建设优化河南目录
安装Quartus软件
四位全加器
全加器、半加器
半加器#xff1a;
全加器#xff1a;
四位全加器电路图
创建项目
半加器
全加器
四位全加器
代码实现
半加器
全加器
四位全加器
三八译码器
创建项目
代码展示
modelsim仿真波形图
四位全加器
三八译码…目录
安装Quartus软件
四位全加器
全加器、半加器
半加器
全加器
四位全加器电路图
创建项目
半加器
全加器
四位全加器
代码实现
半加器
全加器
四位全加器
三八译码器
创建项目
代码展示
modelsim仿真波形图
四位全加器
三八译码器
总结与展望 安装Quartus软件
本次实验首先进行Quartus软件的安装版本选择18.1.0.625。安装过程较为常规依次进行安装选项选择、许可协议接受、安装路径选择如E盘等步骤等待安装进度条完成后根据驱动程序安装向导提示选择下一页及完成即可完成软件的正常安装并投入使用。以下是详细安装流程
打开安装软件
这里以18.1.0.625版本为例
打开安装程序进行安装选择选择next进行下一步 选择”I accept the agreement”再进行下一步 选择想要保存的位置例如我所选的E盘 默认勾选点击下一步 继续点击next 随后等待进度条走完即可 在根据驱动程序安装向导选择下一页然后选择完成完成安装 打开Quartus 正常使用。 四位全加器
全加器、半加器
半加器
定义半加器是指只考虑两个一位二进制数相加而不考虑来自低位的进位的加法器。
输入输出关系
和Sum当两个输入数A和B不同时和为1当A和B相同时和为0。其逻辑表达式为Sum A ⊕ B⊕表示异或运算。
进位Carry当A和B都为1时产生进位进位输出为1否则为0。其逻辑表达式为Carry A B表示与运算。
电路结构 真值表 全加器
定义全加器是指不仅考虑两个一位二进制数相加还考虑来自低位的进位的加法器。
输入输出关系
和Sum当A、B和来自低位的进位Cin中1的个数为奇数时和为1否则为0。其逻辑表达式为Sum A ⊕ B ⊕ Cin。
进位Carry当A、B和Cin中任意两个或三个都为1时产生进位。其逻辑表达式为Carry (A B) | (B Cin) | (A Cin)|表示或运算。
电路结构 真值表 半加器和全加器就像是两个不同级别的助手半加器只能处理简单的两个数相加而全加器则能处理更复杂的带进位相加的情况。它们共同构成了数字电路中实现加法运算的基础模块为计算机等数字设备的运算能力提供了支持。
四位全加器电路图
创建项目
在Quartus中可通过绘制原理图或编写Verilog HDL代码实现四位全加器的设计。原理图绘制需在“Block Diagram/Schematic File”中进行选择相应的与门、异或门等元件进行连接。代码实现则更为高效通过定义实体和架构利用信号连接和实例化语句实现四位全加器的功能。设计过程中将四个全加器串联使每个全加器的输出进位连接到下一个全加器的输入进位从而实现四位二进制数的加法运算。下面为具体实现方法
点击软件运行进入主界面
点击左上角的File选择目录下的New \
然后在弹出来的目录中再选择”New Quartus Prime Project” 在下图中填写好项目名称随后点击”Next” 其中顶层设计实体名称这是你的设计文件中的顶层模块的名称。这个名称必须与你的设计文件中的实体名称完全匹配包括大小写。
然后点击”Next”直到下图所示然后选择标注的型号再点击”Next” 随后在Slmulation选择ModeSim-Altera由于之前在安装的时候已经默认安装了ModeSim所以直接下一步即可 最后点击Finish创建成功。 半加器
在空白项目中左上角选择File点击目录下的New然后再选择Block Diagram/Schematic File 建立好过后选择and2、xor即与门、异或门 按照下图连接就是一位半加器的原理图。 画好原理图过后再将其保存为可调用原件。
首先点开左上角File在根据指示进行操作 即可保存成功。
全加器
操作同半加器绘制原理图然后保存
注意这里的half_adder为刚才我们建立并保存好的可直接调用。 四位全加器
在元器件中搜索刚才保存的全加器full_adder绘制四位全加器。
绘制图如下 编译成功过后可以在TOOL目录下的Netlist Viewers的二级目录中的RTL Viewer查看电路图。 代码实现
虽然图画表达更加直观但占用的时间较多当涉及的内容复杂时画图效率更是大大缩减这个时候可以用代码实现原理图的绘制。
选择主页面左上角的File选择目录下的New然后在新的目录下选择Verilog HDL File 然后根据需要生成的电路图输入代码。
半加器
library IEEE;use IEEE.STD_LOGIC_1164.ALL;-- 定义半加器实体entity half_adder isport (A : in STD_LOGIC;B : in STD_LOGIC;sum : out STD_LOGIC;cout : out STD_LOGIC);end half_adder;-- 定义半加器架构architecture Behavioral of half_adder isbeginsum A XOR B;cout A AND B;end Behavioral;
全加器
library IEEE;use IEEE.STD_LOGIC_1164.ALL;-- 定义全加器实体entity full_adder isport (A : in STD_LOGIC;B : in STD_LOGIC;Cin : in STD_LOGIC;sum : out STD_LOGIC;Cout : out STD_LOGIC);end full_adder;-- 定义全加器架构architecture Behavioral of full_adder isbeginsum A XOR B XOR Cin;Cout (A AND B) OR (Cin AND (A XOR B));end Behavioral;
四位全加器
library IEEE;use IEEE.STD_LOGIC_1164.ALL;-- 定义4位全加器实体entity four_bit_adder isport (A : in STD_LOGIC_VECTOR(3 downto 0);B : in STD_LOGIC_VECTOR(3 downto 0);Cin : in STD_LOGIC;S : out STD_LOGIC_VECTOR(3 downto 0);Cout : out STD_LOGIC);end four_bit_adder;-- 定义4位全加器架构architecture Behavioral of four_bit_adder issignal C : STD_LOGIC_VECTOR(4 downto 0);signal temp_S : STD_LOGIC_VECTOR(3 downto 0);component full_adderport (A : in STD_LOGIC;B : in STD_LOGIC;Cin : in STD_LOGIC;sum : out STD_LOGIC;Cout : out STD_LOGIC);end component;beginC(0) Cin;-- 实例化四个全加器G0: full_adder port map (A(0), B(0), C(0), temp_S(0), C(1));G1: full_adder port map (A(1), B(1), C(1), temp_S(1), C(2));G2: full_adder port map (A(2), B(2), C(2), temp_S(2), C(3));G3: full_adder port map (A(3), B(3), C(3), temp_S(3), C(4));S temp_S;Cout C(4);end Behavioral; 三八译码器 输入端口
I2、I1、I0这三个端口是3位二进制输入信号。
这三个输入信号可以表示8种不同的状态从 000 到 111。 输出端口
Y7、Y6、Y5、Y4、Y3、Y2、Y1、Y0这8个端口是8位一热码输出信号。
每个输出端口对应一个输入状态只有一个输出端口为高电平1其余为低电平0。
工作原理
三-八译码器根据输入的3位二进制数选择对应的输出线并将其置为高电平1而其他输出线保持低电平0。具体的工作原理可以参考以下真值表 逻辑表达式
每个输出端口的逻辑表达式可以表示为输入信号的组合。例如 Y0 NOT I2 AND NOT I1 AND NOT I0Y1 NOT I2 AND NOT I1 AND I0Y2 NOT I2 AND I1 AND NOT I0Y3 NOT I2 AND I1 AND I0Y4 I2 AND NOT I1 AND NOT I0Y5 I2 AND NOT I1 AND I0Y6 I2 AND I1 AND NOT I0Y7 I2 AND I1 AND I0 创建项目
在Quartus中创建新项目后通过编写Verilog HDL代码实现三八译码器。使用case语句根据输入信号组合设置输出信号代码简洁且逻辑清晰。编写完成后进行编译确保代码无误。以下是具体实现方法
首先再刚才新建项目的Feil选择”New Project Wizard”与全加器半加器的创建一样的操作 创建好空项目过后我们就使用代码实现三八译码器
选择主页面左上角的File选择目录下的New然后在新的目录下选择Verilog HDL File 代码展示
module three_eight_decoder(a, b, c, out);input a; // 输入端口ainput b; // 输入端口binput c; // 输入端口coutput [7:0] out; // 输出端口out8位宽reg [7:0] out; // 声明out为寄存器类型// 或者可以直接写成output reg [7:0] out;// always块当a、b或c发生变化时触发always (a, b, c) begin// case语句根据{a, b, c}的组合值选择输出case ({a, b, c})3b000: out 8b0000_0001; // 当{a, b, c}为000时out输出0000_00013b001: out 8b0000_0010; // 当{a, b, c}为001时out输出0000_00103b010: out 8b0000_0100; // 当{a, b, c}为010时out输出0000_01003b011: out 8b0000_1000; // 当{a, b, c}为011时out输出0000_10003b100: out 8b0001_0000; // 当{a, b, c}为100时out输出0001_00003b101: out 8b0010_0000; // 当{a, b, c}为101时out输出0010_00003b110: out 8b0100_0000; // 当{a, b, c}为110时out输出0100_00003b111: out 8b1000_0000; // 当{a, b, c}为111时out输出1000_0000endcaseendendmodule
modelsim仿真波形图
同样采用“University Program VWF”创建仿真文件配置输入输出信号后运行仿真查看波形图以验证译码器的正确性。通过观察波形图可确认译码器是否能准确地根据输入信号生成对应的输出信号如有问题可及时修改代码。具体操作如下
四位全加器
选择主页面左上角的File选择目录下的New然后在新的目录下选择University Program VWF 创建好过后会自动弹出窗口双击左侧空白处选择提示框中的Node Finder... 然后会弹出窗口先点击list会显示四位全加器的输入输出元素再点击双又向箭头 配置好过后点击OK即可得到波形图 三八译码器
同理可得到38译码器的波形图 总结与展望
通过本次实验掌握了Quartus软件的安装与项目创建流程深入理解了四位全加器和三八译码器的工作原理并成功实现了其设计与仿真。在设计过程中体会到了原理图绘制和代码实现两种方法的特点以及仿真测试在验证设计正确性方面的重要性。
在未来将继续深入学习FPGA设计探索更复杂的数字电路如多位乘法器、移位寄存器等并尝试将FPGA应用于实际项目中以提升自身的实践能力和技术水平。