北邮22级信通院数电:Verilog-FPGA(7)第七周实验(1):带使能端的38译码器&&全加器(关注我的uu们加群咯~)

北邮22信通一枚~

跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章

持续关注作者 迎接数电实验学习~

获取更多文章,请访问专栏:

北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客

关注作者的uu们可以进群啦~

目录

方法一:modelsim仿真检验结果

1.1verilog代码

[1.1.1 decode_38.v(顶层模块)](#1.1.1 decode_38.v(顶层模块))

1.1.2decode_38_tb.v

1.2仿真步骤

1.3仿真结果&&波形显示

方法二:FPGA操作显示结果

[2.1 verilog代码](#2.1 verilog代码)

[2.1.1 decode_38.v](#2.1.1 decode_38.v)

[2.1.2 decoders.v](#2.1.2 decoders.v)

[2.2 结果表示](#2.2 结果表示)


方法一:modelsim仿真检验结果

1.1verilog代码

1.1.1 decode_38.v(顶层模块)

复制代码
module decode_38(a,b,c1,s,c2);
	input a,b,c1;
	reg [7:0] out;
	output s,c2;
	always@(a,b,c1)
		begin
			case({a,b,c1})
			3'b000:out=8'b0000_0001;
			3'b001:out=8'b0000_0010;
			3'b010:out=8'b0000_0100;
			3'b011:out=8'b0000_1000;
			3'b100:out=8'b0001_0000;
			3'b101:out=8'b0010_0000;
			3'b110:out=8'b0100_0000;
			3'b111:out=8'b1000_0000;
			endcase
		end
	assign s=out[1]|out[2]|out[5]|out[7];
	assign c2=out[3]|out[5]|out[6]|out[7];
endmodule

1.1.2decode_38_tb.v

复制代码
`timescale 1ns/1ps
module decode_38_tb;
	reg a;
	reg b;
	reg c1;
	wire out,c2;
	
	decode_38 decode_1
	(
		.a(a),
		.b(b),
		.c1(c1),
		.s(out),
		.c2(c2)
	);
	initial begin 
	a=0;b=0;c1=0;
	#200;
	a=0;b=0;c1=1;
	#200;
	a=0;b=0;c1=0;
	#200;
	a=0;b=1;c1=0;
	#200;
	a=0;b=1;c1=1;
	#200;
	a=1;b=0;c1=0;
	#200;
	a=1;b=0;c1=1;
	#200;
	a=1;b=1;c1=1;
	#200;
	$stop;
	end
endmodule

1.2仿真步骤

assignments->settings->simulation->勾选 compile test bench

选择test benches选项

tools->run simulation tool->RTL simulation 调出modelsim开始仿真测试

modelsim破解安装教程见北邮22级信通院数电:Verilog-FPGA(2)modelsim北邮信通专属下载、破解教程_青山入墨雨如画的博客-CSDN博客modelsim仿真遇到的常见问题见

北邮22级信通院数电:Verilog-FPGA(3)实验"跑通第一个例程"modelsim仿真及遇到的问题汇总(持续更新中)-CSDN博客

1.3仿真结果&&波形显示

方法二:FPGA操作显示结果

2.1 verilog代码

2.1.1 decode_38.v

复制代码
module decode_38(a,e1,e2_low,e3_low,si,ci);
	input [2:0]a;
	input e1,e2_low,e3_low;
	output si,ci;
	
	wire [7:0] m;
	
	decoders decoder_1(a,~e1,~e2_low,~e3_low,m);
		assign si=~(~m[1]|~m[2]|~m[4]|~m[7]);
		assign ci=~(~m[3]|~m[5]|~m[6]|~m[7]);
endmodule

2.1.2 decoders.v

复制代码
module decoders(a,e1,e2_low,e3_low,out);
	input [2:0] a;
	input e1;
	input e2_low;
	input e3_low;
	output reg[7:0] out;

	always@(a or e1 or e2_low or e3_low)
		begin
			if(e1&&~e2_low&&~e3_low)
				case(a)
					3'b000:out=8'b0000_0001;
					3'b001:out=8'b0000_0010;
					3'b010:out=8'b0000_0100;
					3'b011:out=8'b0000_1000;
					3'b100:out=8'b0001_0000;
					3'b101:out=8'b0010_0000;
					3'b110:out=8'b0100_0000;
					3'b111:out=8'b1000_0000;
					default out=8'b1111_1111;
				endcase
			else
				out=8'b1111_1111;
		end
endmodule

2.2 结果表示

拨码开关做数据输入,从上到下第一个按键为使能端,led【1】和led【2】做输出信号。

输入信号一个高电平,低位led【1】灯亮,

输入信号两个高电平,高位led【2】灯亮,

输入信号三个高电平,两个led led【1】和led【2】灯都亮。

相关推荐
物质波波波11 小时前
WS-RPE:面向边缘物理AI实时特征值计算的硬件工作窃取调度器与冗余PE激活架构
人工智能·fpga开发·架构·系统架构·硬件架构
我爱C编程13 小时前
基于FPGA的DSB调制解调系统verilog开发
fpga开发·verilog·fpga·dsb
zlinear数据采集卡14 小时前
USB HS 480M高速传输与SRAM记录仪:DABM-D223数据存储系统全解析
arm开发·嵌入式硬件·fpga开发·开源
逻辑诗篇16 小时前
基于 XCVU13P 的 4 路 100G 光纤 PCIe 处理板 PCIE727 硬件规格全解析
fpga开发
玩嵌入式谁会脱发呀19 小时前
【FPGA】 verilog设计spi读写flash实现数据DMA搬运
fpga开发
LabVIEW开发2 天前
LabVIEW 如何把地下震源定位误差做到5米内
fpga开发·labview·labview知识·labview功能·labview程序
Dr.kangder2 天前
嵌入式处理器架构解析(十)——DSP+FPGA
fpga开发·架构·嵌入式
szxinmai主板定制专家2 天前
Zynq MPSoC实现半导体真空腔体状态监测|FPGA多传感器时序同步采集方案
fpga开发·zynq·控制器·mpsoc·半导体设备·fpga同步
学习FPGA的电气小兴兴2 天前
基于FPGA的DDS信号发生器设计,生成频率可调的正弦波、三角波、锯齿波和方波
fpga开发·数字信号处理·fpga·vivado·dsp·dds·diy
szxinmai主板定制专家3 天前
Zynq MPSoC半导体高精度运动控制方案|FPGA硬件插补实现亚微米级伺服实时控制
人工智能·嵌入式硬件·fpga开发·zynq·运动控制·ethercat