在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 8841|回复: 12

[求助] jium007 朋友

[复制链接]
发表于 2010-4-27 10:05:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
你给我写的VERLOG程序我领导本来是要求用VHDL的,,但是我想只要做出来就无所谓 ,,现在问题是仿真的时候老过不了,,抱错误,,我用的是XINLIN的9536,,,我QQ328277289  ..要不晚上在线商量下好不??十万火急,,要不请告诉我如何仿真过去..我抱的错误我开的几个帖子都说明了错误的原因和种类
发表于 2010-4-27 10:36:42 | 显示全部楼层
稍微改一下就好了呀,module switch_divclk(
                       clk_in,
                       clk_out,
                       switch_8bit_in
                       //test
                        //,clk_q1,clk_q2,count,count_clk,输入为0,则时钟输出为0,其它输入00000001为1分频,00000010为2分频……11111111
                           );

input clk_in;
input[7:0] switch_8bit_in;
output  clk_out;
                        //,clk_q1,clk_q2;
reg[7:0] count_clk;
reg  clk_q1,clk_q2;
//output[7:0]        count,count_clk;
wire[7:0]             count;
wire                  estop,switch_0,switch_1;
assign                switch_0=(switch_8bit_in==8'b00000000)? 1'b1 : 1'b0;//assign                switch_1=(switch_8bit_in==8'b00000001)? 1'b1 : 1'b0;assign                estop=switch_0 || switch_1;assign        count=switch_8bit_in[0] ? ((switch_8bit_in-1)/2+1)switch_8bit_in/2+1);//选择assign        clk_out=switch_1 ? clk_in switch_8bit_in[0] ? (clk_q1 || clk_q2): clk_q1);always @(posedge estop or posedge  clk_in)
        if(estop)
        begin
                count_clk<=0;
                clk_q1<=0;
        end
        else
                                if(count_clk<count-1)
                                begin
            count_clk<=count_clk+1;
            clk_q1<=1;
                                end
                                else
                                                if(count_clk<switch_8bit_in-1)
                                                begin
                                                count_clk<=count_clk+1;
                                                clk_q1<=0;
                                                end
                                                else
                                                begin
                                                count_clk<=0;
                                                clk_q1<=0;
                                                end

always @(posedge estop or negedge clk_in)
        if(estop)
                clk_q2<=0;
        else
                clk_q2<=clk_q1;

endmodule



仿真:
always #10 clk_in=!clk_in;
        initial begin
                // Initialize Inputs
                clk_in = 0;
                switch_8bit_in = 0;

                // Wait 100 ns for global reset to finish
                #100;
        
                // Add stimulus here
switch_8bit_in = 8'b0010010;
        end

没有问题,很好用,不过对几个assign语句不是很明白是什么意思
发表于 2010-4-27 10:37:48 | 显示全部楼层
等待高人解答!
 楼主| 发表于 2010-4-27 10:53:11 | 显示全部楼层
houjibin 高人我用了你修改的在ISE编译还是抱错误..要不你发我油箱   puyiyue1980@126.com
 楼主| 发表于 2010-4-27 10:54:16 | 显示全部楼层
ERROR:HDLCompiler:806 - "D:/pyytszy/pyy/ppp.v" Line 21: Syntax error near <=.
ERROR:HDLCompiler:806 - "D:/pyytszy/pyy/ppp.v" Line 27: Syntax error near <=.
ERROR:HDLCompiler:806 - "D:/pyytszy/pyy/ppp.v" Line 33: Syntax error near <=.
ERROR:HDLCompiler:806 - "D:/pyytszy/pyy/ppp.v" Line 38: Syntax error near <=.
ERROR:HDLCompiler:44 - "D:/pyytszy/pyy/ppp.v" Line 19: estop is not a constant
ERROR:HDLCompiler:60 - "D:/pyytszy/pyy/ppp.v" Line 21: count_clk is not a type
ERROR:HDLCompiler:60 - "D:/pyytszy/pyy/ppp.v" Line 22: clk_q1 is not a type
ERROR:HDLCompiler:44 - "D:/pyytszy/pyy/ppp.v" Line 25: count_clk is not a constant
ERROR:HDLCompiler:60 - "D:/pyytszy/pyy/ppp.v" Line 27: count_clk is not a type
ERROR:HDLCompiler:60 - "D:/pyytszy/pyy/ppp.v" Line 28: clk_q1 is not a type
ERROR:HDLCompiler:44 - "D:/pyytszy/pyy/ppp.v" Line 31: count_clk is not a constant
ERROR:HDLCompiler:60 - "D:/pyytszy/pyy/ppp.v" Line 33: count_clk is not a type
ERROR:HDLCompiler:60 - "D:/pyytszy/pyy/ppp.v" Line 34: clk_q1 is not a type
ERROR:HDLCompiler:60 - "D:/pyytszy/pyy/ppp.v" Line 38: count_clk is not a type
ERROR:HDLCompiler:60 - "D:/pyytszy/pyy/ppp.v" Line 39: clk_q1 is not a type
 楼主| 发表于 2010-4-27 10:57:19 | 显示全部楼层
是不是复制粘贴的时候有问题??还是ISE在哪个地方要设置下
 楼主| 发表于 2010-4-27 10:59:27 | 显示全部楼层
对应软件为ISE软件
 楼主| 发表于 2010-4-27 11:06:37 | 显示全部楼层
现在我非常棘手的几个问题

1.程序如何编译通过
2.程序如何仿真的时候改变拨码开关状态,,就是仿真如何改变,,我不会变化,,00000000就永远是这个
3.对应9536芯片如何下弄,,,


十分着急
发表于 2010-4-27 11:33:37 | 显示全部楼层
给你说了是你器件资源不够,逻辑没啥问题,我用quartus仿了的,就是可能需要优化,我都用的ALTERA的器件,你在你ise里设置哈,换个大点的器件试试,还有基础的仿真知识你可以从论坛的资源区去找,很多啊,自己去看嘛。做东西都是靠自己,我也刚做fpga没多久,很多都不懂,多问是好的,但是很多基础的东西还得自己去看,自己去实践。


加油,耐心去找资料看,不要想别人会帮你解决所有问题。good luck!
 楼主| 发表于 2010-4-27 11:44:13 | 显示全部楼层
jium007 可以帮我把程序最大程度优化一下不>??VHDL和VERLOG我无所谓了,,关键仿真过不了,,,等下麻烦..我都用VERLOG改写算了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-6-23 02:17 , Processed in 0.030744 second(s), 10 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表