集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 3201|回复: 5

求助!求高手用Verilog或者VHDL编写一个循环寄存器

[复制链接]
qq376784106 发表于 2010-4-29 11:21:03 | 显示全部楼层 |阅读模式
求助!求高手帮我用Verilog或者VHDL编写一个循环寄存器,我试了很多次没编好,我也是初学,普通寄存器在编写的时候移位之后剩余位都是补零啊....请高手帮忙!最后实现的功能就是例如一个256位的F89ABCDE移位后变成89ABCDEF。就是说在每个时钟周期里,将这个数的低32位移至高32位,从而实现信号逆序的目的。
vvt 发表于 2010-4-29 11:29:42 | 显示全部楼层
下面是编写的VHDL程序!!

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;


PACKAGE REG IS
    PROCEDURE SHIFTER (DIN,S:IN STD_LOGIC_VECTOR;
                       SIGNAL DOUT:OUT STD_LOGIC_VECTOR);
END REG;

PACKAGE BODY REG IS
    PROCEDURE SHIFTER (DIN,S:IN STD_LOGIC_VECTOR;
                       SIGNAL DOUT: OUT STD_LOGIC_VECTOR) IS
    VARIABLE TEMP: INTEGER;
    BEGIN
        TEMP := CONV_INTEGER(S);
        FOR I IN DIN'RANGE LOOP
            IF(TEMP+I<=DIN'LEFT) THEN
                DOUT(TEMP+I)<=DIN(I);
            ELSE
                DOUT(TEMP+I-DIN'LEFT)<=DIN(I);
            END IF;
        END LOOP;
    END SHIFTER;
END REG;


LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE WORK.REG.ALL;

ENTITY SHIFTER_REG IS
    PORT (DIN: IN STD_LOGIC_VECTOR(7 DOWNTO 0);
         S:  IN STD_LOGIC_VECTOR(2 DOWNTO 0);
         CLK,EN:IN STD_LOGIC;
         DOUT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END SHIFTER_REG;

ARCHITECTURE a OF SHIFTER_REG IS
BEGIN
    PROCESS(CLK)
    BEGIN
        IF(CLK' EVENT AND CLK='1') THEN
            IF(EN='0') THEN
                DOUT<=DIN;
            ELSE
                SHIFTER(DIN,S,DOUT);
            END IF;
        END IF;
    END PROCESS;
END a;
eyrehua 发表于 2010-5-2 17:16:45 | 显示全部楼层
reg [255:0 ]a;
always @(posedge MCLK)
begin
a  <= {a[223:0], a[255:224]};
end
 楼主| qq376784106 发表于 2010-5-4 10:40:19 | 显示全部楼层
回复 3# eyrehua


    非常感谢您!看了您的编程冒昧的问下您,可曾认识曹运合老师...
 楼主| qq376784106 发表于 2010-5-4 10:40:30 | 显示全部楼层
回复 2# vvt


    非常感谢您!
Sunlife 发表于 2015-5-19 10:16:57 | 显示全部楼层

reg [255:0 ]a;
always @(posedge MCLK)
begin
a  <= {a[223:0], a[255:224]};
end
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-5-6 19:33 , Processed in 0.064213 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表