xiaobudian619 发表于 2010-7-29 10:30:02

很急很急的一个verilog的问题

本来新手菜鸟,希望哪位大侠能帮忙写一下一个veriolg的程序
http://cache.amobbs.com/bbs_upload782111/files_31/ourdev_571467.jpg
时序图 (原文件名:未命名.jpg)


输出是CLOCK、START、ENABLE、DATA是作输出,WAIT是输入,DATA有16位
此过程是一个从FPGA往DSP传信息的一个程序
希望哪位大哥能帮帮忙,至少教教我该从何处下手,CLOCK作输出的我不会写

xiaobudian619 发表于 2010-7-29 10:31:09

回复【楼主位】xiaobudian619
-----------------------------------------------------------------------

如果可以的话,希望能加一下我QQ:641461089

xiaobudian619 发表于 2010-7-29 10:35:05

大家帮帮忙啊

simplorer 发表于 2010-7-29 16:11:39

我说的可能有些不中听,但是我很讨厌一上论坛就直接求代码的人,你写代码,如果有问题,大家可以讨论,直接求代码的结果是基本没人回复!

tear086 发表于 2010-7-29 16:20:59

回复【楼主位】xiaobudian619
-----------------------------------------------------------------------

你先画流程图,贴上来。

AG17 发表于 2010-7-29 16:55:27

此过程是一个从FPGA往DSP传信息的一个程序。。。。。。。。。。。。。

xiaobudian619 发表于 2010-8-2 09:57:46

回复【3楼】simplorer
-----------------------------------------------------------------------
好,懂了
这是我写的代码
但还是一直出错,不知道该怎么改求助帮忙看看,指点下


主要程序
`timescale 1ns/1ns
`define timeslice 200
module fsm (Clock, START, ENABLE, WAIT, DATA,inDATA);
output Clock;
output START;
output ENABLE;
inputWAIT;
output DATA;
input inDTA;
regClock;
regSTART;
regENABLE;
wireWAIT;
regDATA;
wire inDATA;
fsm1 uut1
(
.Clock      (Clock),
.START      (START),
.ENABLE   (ENABLE),
.WAIT       (WAIT),
.DATA       (DATA),
.inDATA   (inDATA)
);
always #(`timeslice/2)
Clock = ~Clock;
always@(posedge Clock)
begin
Clock =0;
START =0;
ENABLE =0;
DATA =0;
begin
if (!WAIT)
begin
START =1 ;
ENABLE=1;
DATA =inDATA ;
end
      else begin
      ENABLE=0;
      DATA <=16'bz;
      end
end
end
endmodule


子程序
module fsm1 (Clock, START, ENABLE, WAIT, DATA,inDATA);
output Clock;
output START;
output ENABLE;
inputWAIT;
output DATA;
input inDATA;
inDATA=16'b1111111100000000;
endmodule

honsimark 发表于 2010-8-22 22:15:49

不懂

ngzhang 发表于 2010-8-23 01:48:31

不行,LZ门还没入,建议先好好看看书,做做基础实验。磨刀不误砍柴工。

tokeyman001 发表于 2010-8-23 12:08:38

变成坟了 不知道LZ解决了没有

tokeyman001 发表于 2010-8-23 14:07:40

看了LZ的代码 基本上应该是根本上不是verilog....纯牌单片机么..

yvhksovo 发表于 2010-8-24 09:49:34

always #(`timeslice/2)
Clock = ~Clock;

这段代码好像是不可综合的吧,设计testbench的时候才这么用.
时钟的分频直接用寄存器计数分频就可以啊.
时钟的输出不和其他信号的输出一样么.
分配一个管脚,然后assign就好了.
页: [1]
查看完整版本: 很急很急的一个verilog的问题