本帖最后由 lidake 于 2013-7-23 15:43 编辑
我是菜鸟问题比较基础,请大家指教。
问题一:
PROCESS(din)
BEGIN
IF(clk'EVENT AND clk='1' ) THEN
txd_data(txd_addw)<=din;
txd_addw<=txd_addw+1;
END IF;
END PROCESS;
这样一段代码,din是一组固定的数值,虽然process后面的敏感量中,我没有写出clk,但是实际情况中clk每次变化时,该process语句是否也会被触发,而执行呢?从而导致txd_addw不断的自加。有没有隐含的敏感量这一说法?
问题二:
ARCHITECTURE fun OF uart IS
type memory is array(0 to 255)of std_logic_vector(7 downto 0);
signal txd_data:memory;
signal txd_addr:integer range 0 to 255;
signal txd_addw:integer range 0 to 255;
SIGNAL din_buf :STD_LOGIC_VECTOR ( 7 downto 0);
BEGIN
din_buf<="10101010";
PROCESS(din_buf)
BEGIN
txd_data(txd_addw)<=din_buf;
txd_addw<=txd_addw+1;
END PROCESS;
END fun;
此代码中,din_buf是结构体中声明的一组8位宽度的信号量,我在结构体的BEGIN后,赋予固定的值“10101010”,我想问,这样写虽然每次din_buf的数值没有变,但是会不会不断的有赋值动作,而造成 以din_buf 为敏感量的PROCESS语句中的txd_addw不断的自加呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
你说的我见过。我也不好太多解释。
大侠,不会吧,my god,我只是一个菜鸟,要不要上来就让我撞见这么难得问题哦。我用的编译器就是Quartus II 9.0 (32-Bit)。苦恼啊,憋了好几天了!
真的,我能骗你么?
哎···那像我这种新手,大侠觉得应该怎么面对这个问题呢?我其实不懂电,大学专业是电脑编程,毕业后工作中,使用单片机和C语言。会画简单的电路板,现在想改FPGA。结果刚开始就遇到这样问题,大侠给推荐几本书吧,再给指点一下迷津吧。3Q。
第一个程序是din作为电平敏感了,所以程序运行了。
第二个程序应该也是会执行的,因为电平触发是一种状态,电平一直是这个状态的话就会触发。
这个也和综合器有关。
一周热门 更多>