首页 > 其他分享 ># FPGA入门笔记002——译码器

# FPGA入门笔记002——译码器

时间:2023-11-16 22:23:23浏览次数:38  
标签:200 FPGA always reg 002 拼接 信号 译码器 out

设计一个38译码器

项目文件编写:

module my3_8(
	a,
	b,
	c,
	out
);

	input a;	//输入端口A
	input b;	//输入端口B
	input c;	//输入端口C
	
	output reg[7:0]out;	//输出端口
	
	/*
	always块:
	'()'内部为敏感信号,当a、b、c有一个信号发生变化时,执行always块中的语句
	凡是在always块中赋值的信号,必须将其定义为reg型
	*/
	always@(a,b,c)begin
		case({a,b,c})	//'{}'为多位拼接,将a、b、c三个信号拼接成一个三位的信号
			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
	
endmodule

语法知识:

1、always块

1、'()'内部为敏感信号,当a、b、c有一个信号发生变化时,执行always块中的语句

2、凡是在always块中赋值的信号,必须将其定义为reg型

2、多位拼接

'{}'为多位拼接,将a、b、c三个信号拼接成一个三位的信号

仿真文件编写:

`timescale 1ns/1ps

module my3_8_tb();

	reg a;
	reg b;
	reg c;
	
	wire [7:0]out;

	my3_8 u1(
		.a(a),
		.b(b),
		.c(c),
		.out(out)
	);
	
	initial begin
		a = 0;b = 0;c = 0;
		#200;
		a = 0;b = 0;c = 1;
		#200;
		a = 0;b = 1;c = 0;
		#200;
		a = 0;b = 1;c = 1;
		#200;
		a = 1;b = 0;c = 0;
		#200;
		a = 1;b = 0;c = 1;
		#200;
		a = 1;b = 1;c = 0;
		#200;
		a = 1;b = 1;c = 1;
		#200;
		$stop;
	end
	
endmodule

标签:200,FPGA,always,reg,002,拼接,信号,译码器,out
From: https://www.cnblogs.com/little55/p/17837418.html

相关文章

  • 002短信触达率和回填率是啥
    一、短信回填率是啥?短信回填率是指在发送短信验证码后,收件方收到并正确填写验证码的比例。由于各种原因,如运营商网络延迟、用户重新获取验证码或放弃填写等,回填率一般无法达到100%。一般来说,回填率在60%至75%之间被认为是正常范围[1]。如果回填率低于50%,则需要排查原因并尝试优......
  • FPGA入门学习笔记001
    1、assignassign为连续赋值语句,通常用于组合逻辑电路,例如:assignled_out=(key_in==0)?a:b;2、timescale例如:`timescale1ns/1ps定义了一个仿真精度。'1ns'为仿真步进,例如设置100的延时'#100',则实际延时100*1ns。'1ps'为仿真精度,设定延时,可以精确到小数点后两位,例......
  • 基于FPGA的图像中值滤波开发,包括tb测试文件以及matlab验证代码
    算法运行效果图预览   通过MATLAB调用FPGA的仿真结果,显示滤波效果:   2.算法运行软件版本vivado2019.2 matlab2022a 3.算法理论概述         基于FPGA的图像中值滤波是一种在图像处理中常用的滤波技术,其原理是通过一定的算法将图像中的噪声平......
  • FPGA与Simulink联合仿真环境搭建(硬件在环)
    硬件在环(HIL)\(\quad\)官方的一些定义:硬件在环(HIL)测试是一种实时仿真,让您无需使用系统硬件即可开始测试嵌入式代码。如果正在开发的代码未按照规范运行,您可以通过此项测试来发现可能损坏硬件的异常和故障情况。\(\quad\)非常高大上,我这里呢,就想实现一点功能,因为我是用FPGA做......
  • m基于FPGA的2ASK调制解调系统verilog实现,包含testbench测试文件
    1.算法仿真效果 本系统Vivado2019.2平台开发,测试结果如下:   2.算法涉及理论知识概要      2ASK调制解调是一种数字调制解调技术,它是基于ASK调制的一种数字调制方式。ASK调制是一种模拟调制方式,它是通过改变载波的振幅来传输数字信号。而2ASK调制解调则是将数......
  • m基于FPGA的2ASK调制解调系统verilog实现,包含testbench测试文件
    1.算法仿真效果本系统Vivado2019.2平台开发,测试结果如下:2.算法涉及理论知识概要2ASK调制解调是一种数字调制解调技术,它是基于ASK调制的一种数字调制方式。ASK调制是一种模拟调制方式,它是通过改变载波的振幅来传输数字信号。而2ASK调制解调则是将数字信号转换为二进制码,再通......
  • FPGA学习笔记001——流水灯
    代码如下:moduleled_flash(//端口列表 Clk50M, //时钟信号 Rst_n, //复位信号 led,);//端口定义 inputClk50M; inputRst_n; output[3:0]led;//led默认为wire类型 reg[24:0]cnt; parameterCNT_MAX=25'd24_999_999; always@(posedgeClk50Morneg......
  • 【洛谷 P1035】[NOIP2002 普及组] 级数求和 题解(循环)
    [NOIP2002普及组]级数求和题目描述已知:。显然对于任意一个整数,当足够大的时候,。现给出一个整数,要求计算出一个最小的,使得。输入格式一个正整数。输出格式一个正整数。样例#1样例输入#11样例输出#12提示【数据范围】对于的数据,。【题目来源】NOIP2002普及组第一题......
  • PAT甲级 1002 A+B for Polynomials
    原题链接:本题需要将相同次数的项进行相加,因此在初始输入的时候就直接用数组记录每个次数项,下标为次数,值为对应次数项的值(用+=)遍历整个数组,看有几个元素非0即可知非0项的个数。因要求降幂输出,则从后向前遍历,输出每个元素的下标和值。#include<bits/stdc++.h>usingnamespace......
  • 基于FPGA的Lorenz混沌系统verilog开发,含testbench和matlab辅助测试程序
    1.算法运行效果图预览   将vivado的仿真结果导入到matlab显示三维混沌效果:    2.算法运行软件版本vivado2019.2 matlab2022a 3.算法理论概述      洛伦兹混沌系统是一种非线性动力系统,最初由爱德华·洛伦兹(EdwardLorenz)于1963年引入,它的简单方......