modelsim编程遇到问题
时间:10-02
整理:3721RD
点击:
以下一段程序,并不知道为什么仿真的时候pc+1的操作不执行,求哪位大神帮帮忙解答一下。LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY PC IS
PORT(INPC:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
CLR, LOAD, LDPC: IN STD_LOGIC;
OUTPC:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END ENTITY;
ARCHITECTURE PC OF PC IS
SIGNAL PC: STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
PROCESS(CLR, LOAD, LDPC)
BEGIN
IF(CLR='0') THEN
PC<=(OTHERS=>'0');
ELSE
IF(LDPC<='1') THEN
PC<=INPC;
ELSIF(LOAD='0' and LDPC='0') THEN
PC<=PC+1;
else PC<=PC;
END IF;
END IF;
OUTPC<=PC;
END PROCESS;
END PC;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY PC IS
PORT(INPC:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
CLR, LOAD, LDPC: IN STD_LOGIC;
OUTPC:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END ENTITY;
ARCHITECTURE PC OF PC IS
SIGNAL PC: STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
PROCESS(CLR, LOAD, LDPC)
BEGIN
IF(CLR='0') THEN
PC<=(OTHERS=>'0');
ELSE
IF(LDPC<='1') THEN
PC<=INPC;
ELSIF(LOAD='0' and LDPC='0') THEN
PC<=PC+1;
else PC<=PC;
END IF;
END IF;
OUTPC<=PC;
END PROCESS;
END PC;
IF(LDPC<='1') THEN
这里错了,应该是
IF(LDPC='1') THEN
自个看了好几遍都没有发现问题,谢谢啊
建议用synplify综合一下,能够报出错误
synplify是什么啊
改了,但是出的波不是想要的样子。clr为0的时候都没有pc为0,接下来也各种不对
synplify是一种综合工具。
