- 论坛徽章:
- 3
|
硬件的演示可能更真确一些:
- module test(i,o,clk);
- input i;
- output o;
- reg [2:0] o;
- input clk;
- initial
- begin
- o<=0;
- end
- always @(posedge clk)
- begin
- if(i==1)
- o<=o+1;
- else
- o<=0;
- end
- endmodule
- module testbench1(O);
- output [2:0]O;
- wire clk;
- wire I2;
- test test_o(I2,O,clk);
- testbench2 t2(I2,clk);
- endmodule
- module testbench2(I,clk);
- output I;
- reg I;
- reg [2:0] count;
- output clk;
- initial
- begin
- count <= 0;
- I<=0;
- end
- always @(posedge clk)
- count <= count+1;
- always @(posedge clk)
- begin
- if(count==2)
- I <= 1;
- else if(count==7)
- I <= 0;
- end
- endmodule
复制代码
对于test模块来说,o就是输出(3bit),每到时钟上沿,如果输入信号i为1,输出的3bit就加1,如果输入信号为0,则o就清0
那么对于它来说,这里的1和0可以说就是指令,只是简单一点而已。
一个CPU指令比这个要复杂的多
波形 |
|