📄 munit.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 + -