有个前一节的设计规范,现在我们通过看电路图写出对应的Verilog代码。
一、简单模块设计
(1)任务说明
(2)代码实现:
功能分析:输出两数相乘的结果。
图中是一个D触发器和乘法器的组合,可以通过组合逻辑+时序逻辑结合来实现。也可以只在时序逻辑中实现。
module mul_module(
clk ,
rst_n ,
//其他信号,举例dout
mul_a ,
mul_b ,
mul_result
);
//参数定义
parameter A_W = 4;
parameter B_W = 3;
parameter R_W = A_W + B_W;
//输入信号定义
input clk ;
input rst_n ;
input [A_W-1:0] mul_a ;
input [B_W-1:0] mul_b ;
//输出信号定义
output[R_W-1:0] mul_result;
//输出信号reg定义
reg [R_W-1:0] mul_result;
//中间信号定义
reg [R_W-1:0] mul_result_tmp;
//组合逻辑写法
/*
always@(*)begin
mul_result_tmp = mul_a * mul_b;
end
always@(posedge clk or negedge rst_n)begin
if(rst_n==1'b0)begin
mul_result |