菜鸟请教VHDL 问题
时间:10-02
整理:3721RD
点击:
VHDL语言编程,想实现一个脉冲触发信号 程序如下
B:process(clk)
begin
if(clk'event and clk='1')then
if(temp2=114856)then temp2<=1; else temp2<=temp2+1;
if(temp2=1) then x<='1';
else x<='0';
end if;
end if;
end if;
Fst<=x;
end process B;
我想问一下第二个 if 语句和第三个 if 语句的顺序关系,,第三个 if 是第二个 if 的子语句 还是两个是并行的 ,我知道第一个 if 和第二个是 从属关系,,
我是想实现 Fst 在 clk来了以后升高一个电平后下降,,本人初学者,还望指点,,,
B:process(clk)
begin
if(clk'event and clk='1')then
if(temp2=114856)then temp2<=1; else temp2<=temp2+1;
if(temp2=1) then x<='1';
else x<='0';
end if;
end if;
end if;
Fst<=x;
end process B;
我想问一下第二个 if 语句和第三个 if 语句的顺序关系,,第三个 if 是第二个 if 的子语句 还是两个是并行的 ,我知道第一个 if 和第二个是 从属关系,,
我是想实现 Fst 在 clk来了以后升高一个电平后下降,,本人初学者,还望指点,,,
经过仿真,你的这个代码是可以实现你想要的功能的,当然,在仿真的时候,我把你那个114856改为了1148,主要是为了节约仿真时间,但是对验证功能没有任何影响,附上仿真结果。因为简单,就直接quartus自带的波形仿真工具给做了,没有动用modelsim。
想实现,想知道结果,仿真不就行了,你这么问证明你还没有找到正确的学习方法。我把你写的代码用quartus II软件综合了一下,形成的是以下硬件结构,通过这个硬件结构,你就应该能够知道两者是什么关系了。