当前位置:首页 > 数字电路实验报告
连接至74273片,每次计数器时钟一个节拍输出一次,相当于每八位串行数据输出一次。当读入终止码时,触发jk触发器,关闭计数器,即不在触发74273输出。
描述语言设计时则相对简单,我们采用一个八位寄存器来保存输入数据,当读到起
始码时进行判断,并将判断寄存器置1,计数寄存器置0并开始计数,每计数八次将寄存器中的存值输出。读到终止码时,将判断寄存器置0,不再输出。
实验实现:
1.利用Quartus II 工具,画出实验的TTl电路如下图
经过编译仿真之后,仿真波形图如下图:
21
分析波形图可知,当输入依次为10011001时,开始计数,然后再8个周期之后,即下一个八位数据进入之时,将此时输入的8位数据并行输出。由图像可知,将后面的两个8位数据依次输出,没有出现错误,当依次输入01100110的时候,停止并行输出,并且输出为零。
2. verilog实现
module crbc(numin,numout,clk);
input numin,clk; output reg [7:0] numout;
reg [7:0] num; reg [3:0] j;
22
reg state;
always @(posedge clk) begin
num = (num << 1) + numin;
if(num == 8'b01100110) begin
state = 1; j = 0 ; end
if(num == 8'b10011001) begin
state = 0; numout = 0; j = 0 ; end
if(j == 8 && state ==1) begin
numout <= num; j = 0; end
23
j = j+1; end
endmodule
代码就是比较简单的verilog代码,每一次输入一个数据,就将8位的寄存器左移一位,然后加上新输入的一位,检测是否符合开启并行输出的条件,然后计数8个周期,输出输入的串行数据。
编译仿真之后的波形图
同上面TTL电路图的波形图,当输入为01100110的时候,开启并行输出,开始计数,8个周期之后输出串行数据,连续并行输出两个8位串行数据并没有出现错误。 实验小结:
本实验是设计8位串入并出,实验并不困难,但是加深了我们对时序逻辑电路的理解,以及数据在计算机中传播的认识。
24
共分享92篇相关文档