Verilog语法学习——LV6_多功能数据处理器

LV6_多功能数据处理器

题目来源于牛客网

[牛客网在线编程_Verilog篇_Verilog快速入门 (nowcoder.com)](https://www.nowcoder.com/exam/oj?page=1&tab=Verilog篇&topicId=301)

题目

描述

根据指示信号select的不同,对输入信号a,b实现不同的运算。输入信号a,b为8bit有符号数,当select信号为0,输出a;当select信号为1,输出b;当select信号为2,输出a+b;当select信号为3,输出a-b.

接口信号图如下:

输入描述:

clk:系统时钟

rst_n:复位信号,低电平有效

a,b:8bit位宽的有符号数

select:2bit位宽的无符号数

输出描述:

c:9bit位宽的有符号数

代码

verilog 复制代码
`timescale 1ns/1ns
module data_select(
	input clk,
	input rst_n,
	input signed[7:0]a,
	input signed[7:0]b,
	input [1:0]select,
	output reg signed [8:0]c
);
//*************code***********//
/*代码思路:case(select)来执行不同的输出
select = 0: 输出a
select = 1: 输出b
select = 2: 输出a+b	
select = 3: 输出a-b*/

	always @(posedge clk or negedge rst_n) begin
		if(!rst_n)
			c <= 0;
		else begin
			case (select)
				2'd0: begin 
					c <= a;
				end
				2'd1: begin 
					c <= b;
				end
				2'd2: begin 
					c <= a + b;
				end
				2'd3: begin 
					c <= a - b;
				end
			endcase
		end
	end
	
//*************code***********//
endmodule
相关推荐
一只码代码的章鱼11 分钟前
学习笔记(算法学习+Maven)
笔记·学习·算法
冰茶_32 分钟前
WPF TextBlock控件性能优化指南
学习·性能优化·wpf·控件
keep intensify1 小时前
数据结构---单链表的增删查改
c语言·数据结构·c++·经验分享·学习·算法·分享
2501_915373881 小时前
怎样学习Electron
javascript·学习·electron
怀念无所不能的你2 小时前
acwing背包问题求方案数
学习·算法·动态规划·dp
LVerrrr2 小时前
Missashe考研日记-day29
学习·考研
灏瀚星空3 小时前
从基础到实战的量化交易全流程学习:1.3 数学与统计学基础——线性代数与矩阵运算 | 矩阵基础
笔记·python·学习·线性代数·数学建模·金融·矩阵
qq_162911593 小时前
tigase源码学习杂记-IO处理的线程模型
java·学习·源码·xmpp·tigase·多线程io模型
viperrrrrrrrrr73 小时前
大数据学习(115)-hive与impala
大数据·hive·学习·impala
名字不要太长 像我这样就好9 小时前
【iOS】OC源码阅读——alloc源码分析
笔记·学习·macos·ios·objective-c