我是靠谱客的博主 安详背包,最近开发中收集的这篇文章主要介绍实现74HC/HCT194的双向移位寄存器功能VerilogHDL程序设计与仿真作业7:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

VerilogHDL程序设计与仿真作业7:

——实现74HC/HCT194的双向移位寄存器功能

文章目录

  • VerilogHDL程序设计与仿真作业7:
        • ——实现74HC/HCT194的双向移位寄存器功能
    • 一、实验目的
    • 二、实现74HC/HCT194的功能
      • 1、设计思路
      • 2、实现代码
      • 3、测试代码
      • 4、仿真

一、实验目的

  • 实现74HC/HCT194的双向移位寄存器功能

二、实现74HC/HCT194的功能

1、设计思路

  • 74HC/HCT194的引脚定义
    在这里插入图片描述

  • 74HC/HCT194逻辑符号
    在这里插入图片描述

  • 74HC/HCT194的功能表
    在这里插入图片描述

2、实现代码

//文件名称:_74HC194.v
//fuchaoxinHUST12102020
module _74HC1194(CP, MR_, S, D, DSR, DSL, Dn, Q);
input CP,MR_;
input [1:0] S;
input [3:0] D;
input DSR, DSL;
output reg [3:0] Q;
/*说明:
输入端:CP为时钟信号,上升沿敏感;MR_为异步置零端;DSR右移串行输入数据;DSL为左移串行输入数据;[3:0] D为并行输入数据;
S为控制信号,当[1:0] S=00时,锁存;[1:0] S=01,输出右移;[1:0] S=10,输出左移;[1:0] S=11,并行置数;
输出端:[3:0] Q为输出信号
*/

always @(posedge CP or negedge MR_) begin
    if(negedge MR_) begin
        Q = 4'b0000;
    end

    else begin
        case ([1:0] S)
        2'b00: Q <= Q;
        2'b01: Q <= {Q[2:0], DSR} //输出信号右移,右移串行输入数据移动至输出信号的右侧
        2'b10: Q <= {DSL, Q[3:1]} //输出信号左移,左移串行输入数据移动至输出信号的左侧
        2'b11: Q <= D;
        endcase
    end
end
endmodule

3、测试代码

//文件名称:Test_74HC194.v
//fuchaoxinHUST12102020
`timescale 10ns/1ns
module Test_74HC194;
reg CP, MR_, DSR, DSL;
reg [1:0] S;
reg [3:0] D;
wire [3:0] Q;

_74HC194 U0(CP, MR_, S, D, DSR, DSL, Q);//实例化元件

initial
    $monitor($time,":t MR_=%b, S=%b, D=%b, DSR=%b, DSL=%b, Q=%b n", MR_, S, D, DSR, DSL, Q);
    //监视器的显示内容
initial
    CP = 0;
always
    #1 CP = ~CP;
initial begin
    // 预置1111
    MR_=1; S=2'b11; DSR=1; DSL=1; D=4'b1111;
    #2
    // 清零
    MR_=0; S=2'b11; DSR=1; DSL=1; D=4'b1111;
    #2
    // 右移置数,DSR=1
    MR_=1; S=2'b01; DSR=1; DSL=1; D=4'b1111;
    #2
    // 右移置数,DSR=0
    MR_=1; S=2'b01; DSR=0; DSL=1; D=4'b1111;
    #2
    // 清零
    MR_=0; S=2'b11; DSR=1; DSL=1; D=4'b1111;
    #2
    // 左移置数,DSR=1
    MR_=1; S=2'b10; DSR=1; DSL=1; D=4'b1111;
    #2
    // 左移置数,DSR=0
    MR_=1; S=2'b10; DSR=1; DSL =0; D=4'b1111;
    #2
    // 保持
    MR_=1; S=2'b00; DSR=1; DSL=1; D=4'b1111;    
    #2
    $stop;//停止模拟仿真
end
endmodule

4、仿真

  • 波形

在这里插入图片描述

  • 监控器

在这里插入图片描述

最后

以上就是安详背包为你收集整理的实现74HC/HCT194的双向移位寄存器功能VerilogHDL程序设计与仿真作业7:的全部内容,希望文章能够帮你解决实现74HC/HCT194的双向移位寄存器功能VerilogHDL程序设计与仿真作业7:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部