jium007 朋友
稍微改一下就好了呀,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语句不是很明白是什么意思
等待高人解答!
houjibin 高人我用了你修改的在ISE编译还是抱错误..要不你发我油箱 puyiyue1980@126.com
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
是不是复制粘贴的时候有问题?还是ISE在哪个地方要设置下
对应软件为ISE软件
现在我非常棘手的几个问题
1.程序如何编译通过
2.程序如何仿真的时候改变拨码开关状态,,就是仿真如何改变,,我不会变化,,00000000就永远是这个
3.对应9536芯片如何下弄,,,
十分着急
给你说了是你器件资源不够,逻辑没啥问题,我用quartus仿了的,就是可能需要优化,我都用的ALTERA的器件,你在你ise里设置哈,换个大点的器件试试,还有基础的仿真知识你可以从论坛的资源区去找,很多啊,自己去看嘛。做东西都是靠自己,我也刚做fpga没多久,很多都不懂,多问是好的,但是很多基础的东西还得自己去看,自己去实践。
加油,耐心去找资料看,不要想别人会帮你解决所有问题。good luck!
jium007 可以帮我把程序最大程度优化一下不>?VHDL和VERLOG我无所谓了,,关键仿真过不了,,,等下麻烦..我都用VERLOG改写算了
我换了个大的芯片,,抱这个错误,,什么意思?
ERROR: Can not find hierarchical name Q_OpTx_FX_DC_801_EXP_tsimrenamed_net_.
DDDDDDDDDDDDDDDDDDDD
等待高人解答!
