4位双向通用移位寄存器74LS194的程序描述

4位双向通用移位寄存器74LS194的程序描述,第1张

寄存器 在数字电路中,用来存放二进制数据或代码的电路称为寄存器。寄存器是由具有存储功能的触发器组合起来构成的。一个触发器可以存储一位二进制代码,存放N位二进制代码的寄存器,需用n个触发器来构成。按功能可分为:基本寄存器和移位寄存器。移位寄存器移位寄存器中的数据可以在移位脉冲作用下一次逐位右移或左移,数据既可以并行输入、并行输出,也可以串行输入、串行输出,还可以并行输入、串行输出,串行输入、并行输出,十分灵活,用途也很广。1、74LS194移位寄存器的控制输入端S1和S0是用来进局蚂行移位方向控制的,S0为高电平时,移位寄存器处于向左移位的工作状态桐族埋,二进制数码在CP脉冲的控制下由高到低逐位移入寄存器,因此可以实现串行输入;在S1为低电平穗弊时,移位寄存器处于向右移位的工作状态,二进制数码在CP脉冲的控制下逐位移出寄存器(低位在前,高位在后)。2、在串行输入、并行输出的转换中,若将四位二进制数码全部送入寄存器内(四位寄存器)。由于每个CP脉冲移位寄存器只移一位,四位二进制数码需要四个CP脉冲。

input clk

input rst

input [7:0] data_in

output [7:0] data_out

reg [7:0] data

wire data_out

always @ (posedge clk or negedge rst)

if (~rst)

data <= data_in

else

data <= data<<1// 此处先移空塌高位核空,后低位; 如果先低后高改为:data <= data>>1

assign data_out = data[7]// 此处先移高位,后低位;改亏瞎 如果先低后高改为:data[0]

VHDL: Bidirectional Bus

download from: http://www.fpga.com.cn

bidir.vhd (Tri-state bus implementation)

LIBRARY ieee

USE ieee.std_logic_1164.ALL

ENTITY bidir IS

PORT(

bidir : INOUT STD_LOGIC_VECTOR (7 DOWNTO 0)

oe, clk : IN STD_LOGIC

inp : IN STD_LOGIC_VECTOR (7 DOWNTO 0)

outp: OUT STD_LOGIC_VECTOR (7 DOWNTO 0))

END bidir

ARCHITECTURE cpld OF bidir IS

SIGNAL a : STD_LOGIC_VECTOR (7 DOWNTO 0) -- DFF that stores

-- value from input.

SIGNAL b : STD_LOGIC_VECTOR (7 DOWNTO 0) -- DFF that stores

BEGIN-- feedback value.

PROCESS(clk)

BEGIN

IF clk = '1'培橘 AND clk'镇闭EVENT THEN -- Creates the flipflops

a <= inp

outp <配旅团= b

END IF

END PROCESS

PROCESS (oe, bidir) -- Behavioral representation

BEGIN-- of tri-states.

IF( oe = '0') THEN

bidir <= "ZZZZZZZZ"

b <= bidir

ELSE

bidir <= a

b <= bidir

END IF

END PROCESS

END cpld


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12343706.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存