process(clk)
begin
if(clk'event and clk='0')then --下降沿触发
if(ack_p='1')then --控制器发来的信号,告知本模块可以运行了
ready<='1'; --控制下面进程运行
elsif(finish='1')then --运算器返回的信号,一个完整的过程完成 状态还原
ready_p='0'; --给运算器的准备信号
ready<='0'; --控制下面进程运行
req_p<='1'; --向控制器申请取数
end if;
end if;
end process;
process(ready)
begin
if(ready='1')then
一个预处理过程
ready_p<='1'; --告知运算器可以运行
end if;
end process;
简化了代码,本人新手,ready_p的多重驱动,如何修改代码解决,谢谢了
如果没说明白,可以问我。
vhdl 多重驱动的问题,如何修改
答案:1 悬赏:30 手机版
解决时间 2021-03-15 12:42
- 提问者网友:你给我的爱
- 2021-03-14 13:29
最佳答案
- 五星知识达人网友:琴狂剑也妄
- 2021-03-14 14:27
1. ready_p 不要放在两个process里面
2. req_p只给了一种状态会被编译成恒1的
process(clk)
begin
if(clk'event and clk='0')then --下降沿触发
if(ack_p='1')then --控制器发来的信号,告知本模块可以运行了
ready<='1'; --控制下面进程运行
elsif(finish='1')then --运算器返回的信号,一个完整的过程完成 状态还原
ready<='0'; --控制下面进程运行
end if;
end if;
end process;
process(ready)
begin
if(ready='1')then
一个预处理过程
ready_p<='1'; --告知运算器可以运行
elsif(finish='1')then --运算器返回的信号,一个完整的过程完成 状态还原
ready_p='0'; --给运算器的准备信号
end if;
end process;
2. req_p只给了一种状态会被编译成恒1的
process(clk)
begin
if(clk'event and clk='0')then --下降沿触发
if(ack_p='1')then --控制器发来的信号,告知本模块可以运行了
ready<='1'; --控制下面进程运行
elsif(finish='1')then --运算器返回的信号,一个完整的过程完成 状态还原
ready<='0'; --控制下面进程运行
end if;
end if;
end process;
process(ready)
begin
if(ready='1')then
一个预处理过程
ready_p<='1'; --告知运算器可以运行
elsif(finish='1')then --运算器返回的信号,一个完整的过程完成 状态还原
ready_p='0'; --给运算器的准备信号
end if;
end process;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯