首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

矩形波的问题

我想你应该编一个延时程序.你要知道你的延时是不被综合支持的.当然了延时程序可以用计数器实现的,而且实数也是不被支持的.
你的程序只能用于仿真,不是可综合程序,不能用硬件实现。 写VHDL不是写C,VHDL代码要有对应的硬件电路才有意义。
延时不长可以用D触发器。长了可以用计数器。你的程序不能用硬件电路实现。
delay这类的语句在vhdl里只能用于仿真,是不能综合的,要想实现实现时延必须另寻出路,上面的建议就不错。

矩形波的问题

已知占空比(bili),要求输出矩形波 library std; use std.standard.all; library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity pwm1 is generic(delay: time);**************错误处:不支持数据类型 port(clk : in std_logic; ???? bili : in std_logic_vector(7 downto 0);--8位二进制数表示占空比 ???? wave : out std_logic); end pwm1; architecture behav of pwm1 is begin process(clk) variable a: integer; variable b,c: real; constant d: real:=7.988; begin a:=conv_integer(bili);--将二进制数转换为整形 b:=real(a);--将整形转换为实数型 c:=b*d;--得出高电平时间 delay:=c ns;--将高电平时间复制给延时**********错误处 if(clk'event and clk='1') then wave<='1';--先输出高电平 wave<='0' after (delay);--当高电平输出结束,即延时结束输出低电平 end if; end process; end behav; ~~~~~~~~~~~~~~~~~~~~~~`` 以上是我的程序,其中第二处错误,语句有错误,怎样实现是此功能:把高电平的维持时间送给延时信号。 请帮我改正,谢谢!
请问,在maxplus里,如何选择对延迟的综合支持?我知道有的平台支持这个功能,但是在maxplus里就不知道了。还请指教。
返回列表