求高手指导,FPGA产生波形遇到了问题:单个波形可以输出,多个就没法选择性输出了
你需要一个VGA控制器,然后把数据填进去。(anlogic FPGA)
如果只是普通频率信号的话,建议查找FSM类似的资料,产生两个频率的信号就是两个频率根据基带信号选通,输入到FPGA上后用FPGA检测频率,根据固定的码率来解析频率,还原基带信号。
你把process模块拆成2个进程,一个进程只管地址加1,另一个进程管着a、b的4选1多路选择器。而且地址计数器用一个计数器就可以,没必要用四个。ARCHITECTURE DACC OF waveall IS
--sin 波形
COMPONENT data_sinrom
PORT(address : IN STD_LOGIC_VECTOR(8 DOWNTO 0);
inclock : IN STD_LOGIC;
q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END COMPONENT;
COMPONENT data_fangrom-- 方波
PORT(address : IN STD_LOGIC_VECTOR(8 DOWNTO 0);
inclock : IN STD_LOGIC;
q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END COMPONENT;
COMPONENT data_sanrom-- 三角波
PORT(address : IN STD_LOGIC_VECTOR(8 DOWNTO 0);
inclock : IN STD_LOGIC;
q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END COMPONENT;
COMPONENT data_juchirom-- 锯齿波
PORT(address : IN STD_LOGIC_VECTOR(8 DOWNTO 0);
inclock : IN STD_LOGIC;
q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END COMPONENT;
SIGNAL DATA1,DATA2,DATA3,DATA4:STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGANL Q:STD_LOGIC_VECTOR(8 DOWNTO 0);
BEGIN
PROCESS(CLK)
BEGIN
IF CLK'EVENT AND CLK='1' THEN Q<=Q+1;
END IF;
END PROCESS;
PROCESS(a,b)
VARIABLE ab:STD_LOGIC_VECTOR(1 DOWNTO 0);
BEGIN
ab:=a&b;
CASE ab IS
WHEN "00" => DOUT <= DATA1;
WHEN "01" => DOUT <= DATA2;
WHEN "10" => DOUT <= DATA3;
WHEN "11" => DOUT <= DATA4;
WHEN OTHERS => DOUT <= (OTHERS => 'Z');
END CASE;
END PROCESS;
u1: data_sinrom PORT MAP(address=>Q, q=>DATA1, inclock=>CLK);
u2: data_fangrom PORT MAP(address=>Q, q=>DATA2, inclock=>CLK);
u3: data_sanrom PORT MAP(address=>Q, q=>DATA3, inclock=>CLK);
u4: data_juchirom PORT MAP(address=>Q, q=>DATA4, inclock=>CLK);
END;
VHDL我不是很熟悉,不过我感觉a和b没有用来选择输出,而是用来使能四个计数器了,输出端口接的一直是data_juchirom的输出吧
如果有错,请指教
把process里的clk去掉试试
哪位高手能介绍一下FPGA啊。以及学这个后的就业情况啊。
学习FPGA也是如此,FPGA的编程语言有两种:VHDL和Verilog,这两种语言都适合用于FPGA的编程,VHDL是由美国军方组织开发的,在1987年就成为了IEEE的标准;而Verilog则是由一家明间企业的私有财产转移过来的,由于其优越性特别突出,于是在1995年也成为了 IEEE标准。VHDL在欧洲的应用较为广泛,而Verilog在中国、...
初学ISE开发FPGA遇到点问题,希望高手可以帮忙解惑。
1、speed是指在同一型号的FPGA有不同速度等级的,FPGA的spec会讲到,这个对你的程序一般不会有影响;2、ISE 的程序烧录是采用Xilinx iMPACT来完成的,没有集成到ISE内,至于那个FLASH的型号,你不要选择,打开iMPACT,连接FPGA与电脑,然后新建工程,自动就可以扫描到你的FPGA和FLASH型号,这个时候你就可...
FPGA,ARM,DSP那个更加有前途呢?请高手指教
论运算速度,DSP最快,但现在主要用在手机测试示波器这些高频信号测试的地方,控制部分已经完全输给ARM了。FPGA特点是并行处理,主要做一些相对简单的逻辑功能和高速信号采样和显卡等,功能也很强大。如果非要选一样说最有前途,我建议还是ARM吧,学会ARM有些东西你可以单干,比如手机、平板电脑、各种测试仪...
求教高手,要用FPGA实现同步RS485通信,应该怎么做?
首先完成rs485的接口驱动,实现物理线路编码到内部逻辑信号格式的转化,其次根据传输协议实现具体逻辑,如你所说的hdlc的编码,当然具体要因传输协议而定
FPGA高手,解答一下assign led_d3 = d1 ? 1'b1 : 1'b0;什么意思?谢谢_百...
e=a?b:c---如果a为真(非0即为真),则将b的值赋给e,否则将c的值赋给e。那么:led_d3=d1 ? 1'b1 : 1'b0表示判断d1的值真假,为真则把1赋给led_d3,为假则赋0.assign 表示直接连线,即始终是这个关系,不管时钟是何种状态。请采纳哈!!
我想学习一下dsp或是fpga,但不知学习哪个好,求高手指点,万分感谢
学DSP吧,DSP是数字信号处理处理芯片,可以实现大量数字信号的高速运算,因此可以用于图像、视频处理这类数据量大的场合。因此学习DSP不但可以去科研院所,还可以去一些进行视频图像处理芯片开发的公司。FPGA是可编程硬件。这是一个相对比较新的领域,国外很多大公司比如intel,HP等也只是有专门的研发队伍进行...
FPGA高手请进,急求数据非零最高位的快速确定。 怎么快速找出一个16位...
数据设为data[15:0],输出width[3:0]assign width=(data[15]==1'b1)?4'hf:((data[14]==1'b1)?4'he:(...));以此类推
FPGA高手请进来:问一个xilinx的FPGA问题
上图是FPGA的基本单元CLB的内部组成图,了解CLB的组成,就可以大致理解fpga了,小弟也是学习fpga不到两年,但是在写代码的过程中,无非就是时钟,进位,缓存,所以对于一般的应用,CLB基本就够用,对于那些内部集成的blank ram,移位寄存器,内部的fifo,buffer其实就是陷入进去为了方便用而已,对于这些结构的...
那位FPGA高手帮帮忙啊!!Verilog
我刚刚用QuartusII编译了一下你的程序。他也提示waring,Warning: Design contains 1 input pin(s) that do not drive logic Warning (15610): No output dependent on input pin "din[0]"我分析 因为你输出结果与你的某一个管脚状态无关。也就是你在设计这个logic 有个冗余项 还有waring,提示...
万望FPGA高手相救!!我已经穷途末路了!
if(key_i)之前的end删了就可以了,你的程序写的太乱了,还有最基本的退格也有加上啊,像en=en<<1完全没有必要出现在verilog的程序里面,可以使用en={en[6:0],0}来实现,begin end不要乱用,很多地方可以不用的,建议多多看看别人的程序,然后才能了解到自身问题。希望以后多多加油。
说兔普洛: 用FPGA做波形发生的时候,输出波形怪异但频率正确,波形没了,正弦波变成了一个娃娃头的样子,只有方波还正常
凉山彝族自治州17082587921: 求教高手:用FPGA驱动AD采样,刚开电源时,采样波形很好,但过一会就会出现类似于被低频信号调制的情况,电 - ?
说兔普洛: 参杂的有自激振荡
凉山彝族自治州17082587921: 求FPGA高手,请问QUARTUS II中的altfp - mult怎么用呀?比如输入是3.3*1.1,波形仿真时小数和整数怎么输入啊 - ?
说兔普洛: altfp_mult 的输入应该是浮点表示方式.也就是说,你要仿真3.3*1.1的时候,输入端要是3.3和1.1对应的浮点表示方式.可以用matlab先事先转换好数值.需要说明的这个IP的输出相对输入有好几个周期的延时,6个还是12个,忘了.软件里应该可以看到
凉山彝族自治州17082587921: vhdl在fpga上实现流水灯程序有问题,请高手帮忙?
说兔普洛: process(clk) begin if(rising_edge(clk)) then count<=count+'1'; end if; if(count(30)='1') then led<=num; count<=(others=>'0'); num<=num(6 downto 0) &num(7); --循环移位 end if; end process; 你的第一个程序,下面一个if并没有在...
凉山彝族自治州17082587921: 请高手指点一下,我使用verilog设计FPGA,在操作时选择什么软件仿真,还有该怎样选择芯片呀? - ?
说兔普洛: 楼上太犀利了,哈哈 你的第一二三条可以合成一条,直接在modesim里面写代码,testbench,然后仿真,当然也可以直接用quartus II里面的仿真器仿真,如果信号较少的话也很方便的. 四五六七条可以合成一条,直接在quartus II里面的全编译选项即可 编译完成后直接下载调试了. 还有既然开发FPGA,肯定要选择芯片的型号,具体的型号要看你有哪种FPGA的实体了,芯片上都有标示的.
凉山彝族自治州17082587921: 基于FPGA的DDS波形发生器和由单片机控制,并采用FPGA实现DDS功能这俩个有什么区别,急需高手指教?
说兔普洛: 如果为了提高毕设的成功率的话还是用FPGA来做好,这样调试起来简单 如果用单片机控制FPGA的话还需要增加单片机和FPGA之间的接口调试,不确定因素多了,调试会更复杂.增加工作量.但是这样能够学到更多东西,看你怎么取舍了.
凉山彝族自治州17082587921: FPGA 脉宽可调的单脉冲发生器 我写的程序如下,但仿真后没有输出结果,请高手指点 - ?
说兔普洛: 你的输入key是不是没有给值?看看key是不是0,你的问题应该是出在那里了.
凉山彝族自治州17082587921: FPGA的高手们,小弟初学FPGA,可是刚使用quartus ii软件是就出了问题, - ?
说兔普洛: TimeQuest Timing Analyzer 是做时序分析,你必须要进行布局布线后才能使用这个,这个不是设置的问题,建立一个工程,等布局布线完毕(即完成place&rout那一步),然后你再点击TimeQuest Timing Analyzer工具,就能时序分析了,你提交...
凉山彝族自治州17082587921: 初学ISE开发FPGA遇到点问题,希望高手可以帮忙解惑. - ?
说兔普洛: 1、speed是指在同一型号的FPGA有不同速度等级的,FPGA的spec会讲到,这个对你的程序一般不会有影响;2、ISE 的程序烧录是采用Xilinx iMPACT来完成的,没有集成到ISE内,至于那个FLASH的型号,你不要选择,打开iMPACT,连接FPGA与电脑,然后新建工程,自动就可以扫描到你的FPGA和FLASH型号,这个时候你就可以选择烧录FPGA还是FLASH了;3、vhdl-93和vhdl-200x是两种不同的语言版本,vhdl-200x提供了一些新的关键字定义,有兴趣的话可以研究下.希望能帮到你.
凉山彝族自治州17082587921: 急求基于FPGA的信号发生器的设计,正弦波、方波、三角波.需要VHDL语言程序,请发邮件到1404887822@qq.com - ?
说兔普洛: 首先你得有个数字转模拟芯片,用FPGA驱动它,然后这几种波对应的就是数据.