VHDL wait for语句
答案:2 悬赏:10 手机版
解决时间 2021-03-31 17:14
- 提问者网友:太高姿态
- 2021-03-31 07:56
VHDL wait for语句
最佳答案
- 五星知识达人网友:千夜
- 2021-03-31 09:14
WAIT FOR 时间表达式; -- 第四种语句格式, 超时等待语句(时间到结束挂起)。
PROCESS
BEGIN
rst_loop : LOOP
WAIT UNTIL clock ='1' AND clock’EVENT; -- 等待时钟信号
NEXT rst_loop WHEN (rst='1'); -- 检测复位信号rst
x <= a ; -- 无复位信号,执行赋值操作
WAIT UNTIL clock ='1' AND clock’EVENT; -- 等待时钟信号
NEXT rst_loop When (rst='1'); -- 检测复位信号rst
y <= b ; -- 无复位信号,执行赋值操作
END LOOP rst_loop ;
END PROCESS;
PROCESS
BEGIN
rst_loop : LOOP
WAIT UNTIL clock ='1' AND clock’EVENT; -- 等待时钟信号
NEXT rst_loop WHEN (rst='1'); -- 检测复位信号rst
x <= a ; -- 无复位信号,执行赋值操作
WAIT UNTIL clock ='1' AND clock’EVENT; -- 等待时钟信号
NEXT rst_loop When (rst='1'); -- 检测复位信号rst
y <= b ; -- 无复位信号,执行赋值操作
END LOOP rst_loop ;
END PROCESS;
全部回答
- 1楼网友:十鸦
- 2021-03-31 10:07
你在用软件的思路设计硬件,是不会有结果的。
因为软件是顺序执行的,硬件是并行工作的。
你的设计实体要有输入信号,你想让输出信号SPI_CS每个周期(200ns)输出170ns低电平,30ns高电平,那就设计一个输入时钟信号clk,周期为10ns,设计计数器为0~19,每个clk周期加1,当计数器值为0~2时SPI_CS输出高电平,3~19时输出低电平就可以了。
你的进程需要敏感信号clk,在每个clk的有效边沿(例如上升沿)让计数器加1。
不需要LOOP语句,LOOP语句不是你想的那样执行循环体。一定记住你在描述硬件而不是执行软件指令。追问呃··可是我想仿真的,不是用来设计硬件的。。追答所谓仿真,就是用计算机中的EDA工具仿真硬件。虽然仿真工具是个软件,但它的用途是用来仿真硬件的,而不是用来编写软件的。
VHDL是一种硬件描述语言,如果不设计硬件的话,就不需要使用硬件描述语言了。
因为软件是顺序执行的,硬件是并行工作的。
你的设计实体要有输入信号,你想让输出信号SPI_CS每个周期(200ns)输出170ns低电平,30ns高电平,那就设计一个输入时钟信号clk,周期为10ns,设计计数器为0~19,每个clk周期加1,当计数器值为0~2时SPI_CS输出高电平,3~19时输出低电平就可以了。
你的进程需要敏感信号clk,在每个clk的有效边沿(例如上升沿)让计数器加1。
不需要LOOP语句,LOOP语句不是你想的那样执行循环体。一定记住你在描述硬件而不是执行软件指令。追问呃··可是我想仿真的,不是用来设计硬件的。。追答所谓仿真,就是用计算机中的EDA工具仿真硬件。虽然仿真工具是个软件,但它的用途是用来仿真硬件的,而不是用来编写软件的。
VHDL是一种硬件描述语言,如果不设计硬件的话,就不需要使用硬件描述语言了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯