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位宽的无符号数
输出描述:文章来源:https://www.toymoban.com/news/detail-617843.html
c:9bit位宽的有符号数文章来源地址https://www.toymoban.com/news/detail-617843.html
代码
`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
到了这里,关于Verilog语法学习——LV6_多功能数据处理器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!