我是靠谱客的博主 称心小兔子,最近开发中收集的这篇文章主要介绍Verilog——74HC194多功能双向移位寄存器设计思路代码实现仿真结果,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Verilog——74HC194多功能双向移位寄存器

  • 设计思路
  • 代码实现
    • 设计模块
    • 测试模块
  • 仿真结果

设计思路

根据74HC194的功能表进行行为级建模,如下图:

在这里插入图片描述

代码实现

设计模块


//filename:74HC194.v
module _74HC194(
input CR,CP,DSR,DSL,
input [1:0] S,
input [3:0] D,
output reg [3:0] Q);
/*端口说明:
输入:CR为异步置零端,CP为时钟信号,DSR为右移串行数据输入端,DSL为左移串行数据输入端,
     S为控制信号:当S=00时,输出保持;S=01时,输出右移;S=10时,输出左移,S=11时,进行同步并行置数
 输出:
     Q为输出端信号
 */
 //敏感信号:CP上升沿和CR的下降沿
 always@(posedge CP or negedge CR)
begin
if(~CR)    Q<=4'b0000;  //CR异步置零的优先级最高
else
    case(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
endmodule

测试模块

//tb_74HC194.v
//filename:tb_74HC194.v
`timescale 10ns/1ns
module tb_74HC194;
reg CR,CP,DSR,DSL;
reg [1:0] S;
reg [3:0] D;
wire [3:0] Q;
/*端口说明:
输入:CR为异步置零端,CP为时钟信号,DSR为右移串行数据输入端,DSL为左移串行数据输入端,
     S为控制信号:当S=00时,输出保持;S=01时,输出右移;S=10时,输出左移,S=11时,进行同步并行置数
 输出:
     Q为输出端信号
 */
_74HC194 U(CR,CP,DSR,DSL,S,D,Q);

initial
	$monitor($time,"tDSR=%b,DSL=%b,S=%b,D=%b,Q=%b",DSR,DSL,S,D,Q);
//时钟脉冲
initial 
	CP=0;
always
	#1 CP=~CP;
//测试
initial begin
	//预置为1111
	CR=1;S=2'b11;DSR=0;DSL=0;D=4'b1111;
	#2
	//清零
	CR=0;S=2'b11;DSR=0;DSL=0;D=4'b1111;
	#2
	//右移,DSR=1
	CR=1;S=2'b01;DSR=1;DSL=0;D=4'b1111;
	#2
	//右移,DSR=1
	CR=1;S=2'b01;DSR=1;DSL=0;D=4'b1111;
	#2
	//右移,DSR=0
	CR=1;S=2'b01;DSR=0;DSL=0;D=4'b1111;
	#2
	//右移,DSR=0
	CR=1;S=2'b01;DSR=0;DSL=0;D=4'b1111;
	#2
	//清零
	CR=0;S=2'b11;DSR=0;DSL=0;D=4'b1111;
	#2
	//左移,DSL=1
	CR=1;S=2'b10;DSR=0;DSL=1;D=4'b1111;
	#2
	//左移,DSL=1
	CR=1;S=2'b10;DSR=0;DSL=1;D=4'b1111;
	#2
	//左移,DSL=0
	CR=1;S=2'b10;DSR=0;DSL=0;D=4'b1111;
	#2
	//左移,DSL=0
	CR=1;S=2'b10;DSR=0;DSL=0;D=4'b1111;
	#2
	$stop;
end
endmodule

仿真结果

在这里插入图片描述
在这里插入图片描述

最后

以上就是称心小兔子为你收集整理的Verilog——74HC194多功能双向移位寄存器设计思路代码实现仿真结果的全部内容,希望文章能够帮你解决Verilog——74HC194多功能双向移位寄存器设计思路代码实现仿真结果所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部