Vhdl 移位寄存器PISO

Vhdl 移位寄存器PISO,vhdl,shift-register,Vhdl,Shift Register,并行输入/串行输出移位寄存器的清除和时钟输入的含义是什么?。我在分析代码: Entity shiftop is port(clk,c :in bit;x :in bit_vector(7 downto 0);tx:out bit ); end entity; architecture shift_arch of shiftop is signal shift :bit_vector(7 downto 0):="00000000"; begin shift<=x when (c='1'

并行输入/串行输出移位寄存器的清除和时钟输入的含义是什么?。我在分析代码:

Entity shiftop is
port(clk,c :in bit;x :in bit_vector(7 downto 0);tx:out bit );
end entity;

architecture shift_arch of shiftop is
signal shift :bit_vector(7 downto 0):="00000000";

begin
shift<=x when (c='1' and c'event) else  
       '0'& shift (7 downto 1) when(clk='1' and clk'event) else
        shift;
tx<=shift(0); 
end architecture;
实体shiftop是
端口(时钟,c:位内;x:位内向量(7到0);tx:位外);
终端实体;
shiftop的架构转换拱是
信号移位:位_向量(7向下至0):=“00000000”;
开始

你的问题我不清楚。请描述你的问题是什么,包括任何代码示例。我希望你意识到,没有这些代码,没有人能够回答你的问题……c似乎是一个上升沿负载信号。在我看来,代码应该被丢弃,因为它写得非常糟糕,我不认为它可以被合成。是的。我没有显示代码,只是因为我认为问题是“基本的”。我的意思是,所有移位寄存器都有一个时钟输入和一个清晰输入(也许吧!)。真的很抱歉。这段代码是我“继承”的,我试图理解。
when(c='1'和c'event)
when(clk='1'和clk'event)
:在一个赋值中使用边缘触发语句?那不会合成。。。该代码“需要大量工作”:/如果您要使用IEEE Std 1076.6-2004(已撤销)中的并发信号分配语句检查6.1.3.5边缘敏感存储,您会发现需要遵守6.1.3.1边缘敏感存储的要求,从具有灵敏度列表和一个时钟的进程(条件并发赋值语句被细化为等效过程)。从历史上看,当包含两个时钟(c和clk)时,您的构造不符合合成条件。当c=1时,c作为异步重置的条件是
(不需要括号)。