⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 munit.v

📁 用FPGA实现带马表日历的电子表
💻 V
字号:
//1个通道的测量单元
//munit.v
module munit(rst,clk1mhz,cs,wr_n,ab,din,signal,out);
input	rst,clk1mhz,cs,wr_n;	
input	[1:0]	ab;
input	[7:0]	din;
input	signal;
output	[7:0]	out;

reg		[7:0]	out;
//内部连接
wire	start,stop;		
wire	[7:0] ctlreg;	
wire	overflow;
wire	[15:0] result;
	//使用timeCtl模块作为一个器件
	timectl	u1(	.rst(rst),
				.clk1mhz(clk1mhz),
				.cs(cs),
				.wr_n(wr_n),
				.ab(ab),
				.din(din),
				.start(start),			//内部连线
				.stop(stop),			//内部连线
				.ctlreg(ctlreg));		//内部连线
	//使用counter模块作为一个器件
	counter u2(	.rst(rst),
				.signal(signal),
				.start(start),			//内部连线
				.stop(stop),			//内部连线
				.result(result),		//内部连线
				.overflow(overflow));	//内部连线
	//数据选择器,在根据ab的值选择输出的8bits
	//注意敏感列表的写法及其完整性
	always	@(ab or result or ctlreg or overflow)
	begin
		case(ab)
			2'b00:	out<=result[7:0];	//ab=00,,输出测量结果低字节
			2'b01:	out<=result[15:8];	//ab=01,,输出测量结果高字节
			2'b10:	out<=ctlreg;		//ab=10,,输出控制寄存器中的内容
			2'b11:	out<={7'b0000000,overflow};//ab=11,,输出本通道溢出标志,只有bit0有效,其余皆为0
			default:out<='bx;
		endcase
	end

endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -