9.12数字逻辑

rst?

复制代码
`timescale 1ns/1ns
module main_mod(
	input clk,
	input rst_n,
	input [7:0]a,
	input [7:0]b,
	input [7:0]c,
	
	output [7:0]d
);
wire [7:0]m,n;
sub_mod mod_ab(
	.clk(clk),
	.rst_n(rst_n),
	.data_a(a),
	.data_b(b),
	.data_c(m)
);
sub_mod mod_bc(
	.clk(clk),
	.rst_n(rst_n),
	.data_a(b),
	.data_b(c),
	.data_c(n)
);
sub_mod mod_mn(
	.clk(clk),
	.rst_n(rst),
	.data_a(m),
	.data_b(n),
	.data_c(d)
);
endmodule
module sub_mod(
	input clk,
	input rst_n,
	input[7:0]data_a,
	input[7:0]data_b,
	output reg[7:0]data_c
);
always@(posedge clk or negedge rst_n)begin
if(!rst_n)begin
data_c<=0;
end
else if(data_a>data_b)begin
data_c<=data_b;
end
else begin
data_c<=data_a;
end
end
endmodule

四位数值比较器

a与b都只有01

如果a要大于b,那么a为1,b为0,y2=a&!b

如果b要大于a,那么b为1,a为0,y0=!a&b

如果相等,那么y2,y0都不成立,y1=!(y2|y0)

写一个每位的比较器模块,然后在主模块中不断循环调用

复制代码
`timescale 1ns/1ns

module comparator_4(
	input		[3:0]       A   	,
	input	   [3:0]		B   	,
 
 	output	 wire		Y2    , //A>B
	output   wire        Y1    , //A=B
    output   wire        Y0      //A<B
);
wire y2temp[0:3];
wire y0temp[0:3];
wire y1temp[0:3];
genvar i;
generate
	for(i=0;i<=3;i=i+1)
	begin:loop
		compare_1 comparei(
			.a(A[i]),
			.b(B[i]),
			.y1(y1temp[i]),
			.y2(y2temp[i]),
			.y0(y0temp[i])
		);
	end
endgenerate
assign Y2=y2temp[3]|(y1temp[3]&y2temp[2])|(y1temp[3]&y1temp[2]&y2temp[1])|(y1temp[3]&y1temp[2]&y1temp[1]&y2temp[0]);
assign Y0=y0temp[3]|(y1temp[3]&y0temp[2])|(y1temp[3]&y1temp[2]&y0temp[1])|(y1temp[3]&y1temp[2]&y1temp[1]&y0temp[0]);
assign Y1=y1temp[3]&y1temp[2]&y1temp[1]&y1temp[0];
endmodule

module compare_1(
	input a,
	input b,
	output y1,
	output y2,
	output y0
);
assign y0=(!a)&b;
assign y2=(!b)&a;
assign y1=!(y0|y2);
endmodule

声明自模块,带;,带类名

与,或,非,异或

a^b保证a与b不同,再与上a,表示a为1,b与a不同,b为0,则a>b

相关推荐
坏孩子的诺亚方舟17 天前
FPGA系统架构设计实践15_高云Arora V系列时钟体系
fpga开发·系统架构
FPGA小徐17 天前
入门 CNN 结构全解析|从流程图理论到 FPGA Verilog 硬件实现(含习题带讲解)
fpga开发
FPGA小徐17 天前
FPGA 数字信号处理:并行 FIR 与串行滤波器设计原理、对比与完整 Verilog 实现
fpga开发
Saniffer_SH18 天前
【高清视频】Gen6 服务器还没到,Gen6 SSD 怎么测?Emily 现场演示三种测试环境
人工智能·驱动开发·测试工具·缓存·fpga开发·计算机外设·压力测试
zlinear数据采集卡18 天前
双核架构深度解析:ARM+FPGA如何让数据采集卡实现500Ksps高性能?
arm开发·fpga开发·架构
9527华安18 天前
FPGA实现GTH Transceivers Wizard传输2路视频,基于aurora 8b10b编解码架构,提供4套工程源码和技术支持
fpga开发·gth·aurora 8b10b·transceivers
FPGA小徐19 天前
FPGA 数字信号处理(二):并行 FIR 滤波器的 Verilog 全流程设计与实现
fpga开发
国科安芯19 天前
基于AS32S601ZIT2型抗辐照MCU的商业航天卫星姿态确定与控制系统研究
单片机·嵌入式硬件·安全·fpga开发·架构·risc-v
ALINX技术博客19 天前
【黑金云课堂】FPGA技术教程FPGA基础:I2C 总线通信技术
fpga开发·i2c
Hello-FPGA19 天前
Xilinx KU040 FPGA Camera Link 图像采集
c++·fpga开发