用QuartusII实现半加器、全加器、2-4译码器、BCD码加法器、计数器、交通灯

6、交通灯实现代码
module light(clk,set,chan,light,out);
input clk,set,chan;
output reg[1:0] light;
output reg[3:0] out;
[email protected](posedge clk or posedge chan or posedge set)
	if(set==1)
	begin
		out=0;
		light=01;
	end
	else 	if(chan==1)
			begin
				if(light<2)
					light=2;
				else
					light=01;
			end
	else
	begin
		if(out>=5)
		begin
				out=0;
				if(light<2)
					light=light+1;
				else
					light=light-1;
		end
		else
			out=out+1;
	end
endmodule
1、半加器实现代码 module HalfAdder (A, B, Sum, Carry) ; //定义模块名HalfAdder input A, B; //声明端口A, B为输入 output Sum, Carry; //声明端口Sum, Carry为输出 assign Sum = A ^ B; //将A^B的和赋值给Sum assign Carry = A & B; //将A&B的进位赋值给Carry endmodule //模块结束关键字
2、全加器实现代码
module HalfAdd(X , Y, SUM, C_out);//半加器模块
input X, Y;
output SUM, C_out;
	xor u_xor (SUM, X, Y); // 门级展语实例
	and u_and (C_out , X, Y); // 门级原语实例
endmodule
module HKX(X , Y, C_in , SUM, C_out) ;//全加器模块
input X, C_in,Y;
output SUM, C_out;
wire HalfAdd_A_SUM;
wire HalfAdd_A_COUT;
wire HalfAdd_B_COUT;
or u_or (C_out, HalfAdd_A_COUT, HalfAdd_B_COUT);
//门级原语实例
HalfAdd u_HalfAdd_A (.X(X),.Y (Y),
	.SUM (HalfAdd_A_SUM),
	.C_out (HalfAdd_A_COUT) ); //半加器实例A
HalfAdd u_HalfAdd_B (.X (C_in),.Y(HalfAdd_A_SUM),
	.SUM (SUM),.C_out (HalfAdd_B_COUT) );
						//半加器实例B
Endmodule
3、2-4译码器实现代码
    `timescale 1ns/100ps
    module Decoder_2x4 (A, B, EN, Z) ;
    input A, B, EN;
    output [ 0 :3] Z;
    wire Abar, Bbar;
  	    assign #1 Abar = ~ A; // 语句1。
   	    assign #1 Bbar = ~ B; // 语句2。
       assign #2 Z[0] = ~ (Abar & Bbar & EN ) ;// 语句3。
       assign #2 Z[1] = ~ (Abar & B & EN) ;// 语句4。
       assign #2 Z[2] = ~ (A & Bbar & EN) ;// 语句5。
       assign #2 Z[3] = ~ ( A & B & EN) ;// 语句6。
endmodule
4、BCD码加法器实现代码
module BCD(ina,inb,cout,sum);
    input [3:0] ina,inb;
    output cout;
    output [3:0]sum;
    assign {cout,sum}=((ina+inb)>9)?(ina+inb+6):(ina+inb);
endmodule
5、计数器实现代码
module counter_8(en,clock,reset,out,cin);
	input clock,en,reset;
	input [3:0] cin;
	output [3:0] out;
	reg [3:0] out;
	always @(posedge clock or negedge reset)
	if(!reset)
		out=cin;
	else if(en)
		out=out+1;
endmodule
时间: 2024-11-22 20:37:38

用QuartusII实现半加器、全加器、2-4译码器、BCD码加法器、计数器、交通灯的相关文章

QuartusII 中使用Modelsim对子程序进行仿真

QuartusII 中使用Modelsim对子程序进行仿真 如果采用RTL级仿真那么就没有任何问题,但是如果对子程序采用门级仿真就会出错 解决办法:在Project Navigator中右键需要进行门级仿真的的子工程(仿真文件存在,且无误)set as top level entity 就可以了 注 : RTL 仿真只需要进行Analysis & Synthesis.而门级仿真则需要进行全编译--具体是由于哪一步骤决定还没有进一步追踪 QuartusII 中使用Modelsim对子程序进行仿真,

《编码》读书笔记:从无到有构建计算机系统

1 简单的电报系统: 按键.发声装置,电池和一些导线即可构成: 当电报机的键按下时,发生器的电磁铁将可动棒拖下发出“滴”的声音:当键放开时,棒弹回初始位置,发出“嗒”的声音.快速的“嘀嗒”为点,慢速的则为划. 2 继电器 电磁式继电器一般由铁芯.线圈.衔铁.触点簧片等组成的.只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合.当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹

《CODE》读后笔记——第1~13章

1.电筒密谈 Morse code表 文中提到"英语词汇就是一种编码".这句话仿佛有一种哲学思想在里面,万物皆可以以任何形式编码,只是编码的方式和途径不同.有些编码简单易懂易于接受,有些编码复杂难以理解. 简单的编码分配给常用的情况,复杂的编码分配给不常用的情况,这样可以提高效率. 实际上任何两种不同的东西经过一定的组合都可以代表任何种类的信息.二进制可以表示一切嘛! 2.编码与组合 树的用处.这个可能就是二叉树的原型吧? 3.布莱叶盲文与二元编码 摩尔斯编码是不定长的,但是布莱叶盲文

数字电路逻辑设计摘要

数字电路逻辑设计摘要 BCD码 Binary Coded Decimal, 使用二进制码(4位)的形式来表示(一位)十进制 有权BCD码: 8421, 2421等 无权BCD码: 余3码等 一个逻辑表达式的功能表达方式 通过真值表显示 通过真值表我们已经知道了该表达式的逻辑功能, 现在我们根据真值表画出卡诺图得出最小项 $\to$ 我们的表达式 最小项的重要性 现在给出一个逻辑表达式式: AB + BC, 现在要我们通过设计一个电路实现这个表达式 该表达式中有ABC三个变量, 我们需要有三个输入

数字逻辑与EDA设计

目录 第一章 数字逻辑基础 1.1数制与码制★★★ 数制 码制 1.2基本及常用的逻辑运算★★ 1.2逻辑函数表示方法★★ 1.3逻辑函数的化简★★★ 1.4常用74HC系列门电路芯片★ 第二章 组合逻辑电路 2.1组合逻辑电路的分析方法★★★ 2.2常用的组合逻辑电路(多考察各种器的输入输出端设计) 2.3组合逻辑电路的设计方法★★★ 2.4组合逻辑电路的时序分析★★★ 第三章 时序逻辑电路 3.1时序电路逻辑功能的表示方法★★ 3.2锁存器与触发器 3.3时序电路的分析方法★★★ 3.4常用

《Code:The Hidden Language Of Computer Hardware and Software》 ——笔记

怎么由逻辑电路实现二进制的加法 首先二进制的加法可以拆解为两个步骤:加与进位. +加法 0 1 0 0 1 1 1 0 +进位 0 1 0 0 0 1 0 1 加这一步骤可以由异或门来完成,进位这一步骤则可以用与门来完成. 但是由这两个逻辑门只能组成一个半加器,输入2个值,输出加和位与进位.这是不够的,除了最低位的加法不需要进位配合,其他位上的加法都要进位.加位与被加一起输入. 所以需要能有3个输入2个输出的全加器.这可以由两个半加器组成. 减法的实现 我们可以用加法器来实现减法,首先来一次简单

74ls系列芯片的分类

最近在学数字电路,对芯片的编号不知道是什么意思:网上查了一下,记下以便日后查询: 74ls00   2输入四与非门 74ls01   2输入四与非门 (oc) 74ls02   2输入四或非门 74ls03   2输入四与非门 (oc) 74ls04   六倒相器 74ls05   六倒相器(oc) 74ls06   六高压输出反相缓冲器/驱动器(oc,30v) 74ls07   六高压输出缓冲器/驱动器(oc,30v) 74ls08   2输入四与门 74ls09   2输入四与门(oc) 7

Altium Designer常用库及部分元件名中英文对照表

-------------------------------------------- 常用库及部分元件名中英文对照表 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 原理图常用库文件: Miscellaneous Devices.ddb Dalla

数据的表示和运算

总览: 数制与编码 进位计数制及其相互转换 真值和机器数 BCD码 校验码 定点数的表示和运算 定点数的表示 无符号数的表示,有符号数的表示 定点数的运算 定点数的位移运算,原码定点数的加/减运算,补码定点数的加/减运算,定点数的乘/除运算,溢出的概念和判别方法. 浮点数的表示和运算 浮点数的表示 IEEE754标准 浮点数的加/减运算 算术逻辑单元(ALU) 串行加法器和并行加法器 算术逻辑单元的功能和结构 数制与编码 进位计数制及其相互转换 二进制.八进制.十进制.十六进制相互转换 十进制转