夏宇闻
发表于 2011-10-25 21:42:58
夏老师您好,请问下Quartus II 有没有给设计自动分配引脚的功能,如果有,怎么使用呀?
418478935 发表于 2011-10-25 17:31 http://www.fpgaw.com/images/common/back.gif
您不做任何配置,可综合的顶层模块的输入和输出端口综合和布局布线后,将自动连接到引脚。
418478935
发表于 2011-10-26 14:16:05
您不做任何配置,可综合的顶层模块的输入和输出端口综合和布局布线后,将自动连接到引脚。
夏宇闻 发表于 2011-10-25 21:42 http://www.fpgaw.com/images/common/back.gif
夏老师好,我比较愚钝,比如我写个简答的加法器,两个4位的输入,一个时钟,一个5位的输出。别的什么都不设置,直接编译,编译成功后,打开 pin-planner 看,里面的所有引脚都是空白的呀。
而且会有一个Critial Waring : Critical Warning: No exact pin location assignment(s) for 14 pins of 14 total pins。这种情况下是不是没有分配引脚呢?
再次打扰老师,实在不好意思。
夏宇闻
发表于 2011-10-26 16:55:01
夏老师好,我比较愚钝,比如我写个简答的加法器,两个4位的输入,一个时钟,一个5位的输出。别的 ...
418478935 发表于 2011-10-26 14:16 http://www.fpgaw.com/images/common/back.gif
但是如果您按下Show Fitter pIacement您能看到布线工具为您随意分配的引脚,当然位置不会令您满意,也不能算是真的连接,但可供您确定正式引脚提供参考。
418478935
发表于 2011-10-27 10:05:34
但是如果您按下Show Fitter pIacement您能看到布线工具为您随意分配的引脚,当然位置不会令您满意 ...
夏宇闻 发表于 2011-10-26 16:55 http://www.fpgaw.com/images/common/back.gif
谢谢夏老师耐心解答了,再次感谢:handshake
qianniuwei
发表于 2011-10-28 16:21:06
夏老师您好:
assign q=(al=1?)d:0;老师您说是个与门,但是与门的输出只有0或1,怎么会是的呢?所以感觉应该是个二选一多路选择器,而不是与门。老师我的想法对吗?谢谢老师
ccc
发表于 2011-10-28 20:17:43
verilog里逻辑运算符&&和按位逻辑运算符&有什么区别啊
夏宇闻
发表于 2011-10-28 23:06:35
本帖最后由 夏宇闻 于 2011-10-28 23:27 编辑
夏老师您好:
assign q=(al=1?)d:0;老师您说是个与门,但是与门的输出只有0或1,怎么会是的呢?所以感 ...
qianniuwei 发表于 2011-10-28 16:21 http://www.fpgaw.com/images/common/back.gif
你的想法不对。你画一下真值表就知道了,这就是一个与门。如果是二选一多路器,那么只有一路d可以变化,而另一路永远为0。
注意al==1?, 不是al=1?
夏宇闻
发表于 2011-10-28 23:16:45
verilog里逻辑运算符&&和按位逻辑运算符&有什么区别啊
ccc 发表于 2011-10-28 20:17 http://www.fpgaw.com/images/common/back.gif
&&是逻辑与,无论变量的位数多少操作结果只有真和伪,即逻辑值1或0;而&是按位与操作,两个多位的逻辑变量按位与操作后可求得一个多位的数值。仔细读书就应该能明白的,难道您没有认真读书和思考?
qiyanan12
发表于 2011-10-31 10:39:18
夏老师你好,这是我的一个电子钟程序,当我下载到板子上仿真的时候出现了没有定义的数码管亮了,定义的数码管亮度很暗,但显示的结果是对的
,请指点一下
module clock1(clr,clk,segdat,sl);
input clr,clk;
output segdat;
output sl;
reg count;
regsec,min;
regsegdat_reg;
regsl_reg;
regdisp_dat;
reg second;
reg cn;
parameter CLK_FREQ = 26'd50_000_000;//系统时钟
parameter DCLK_FREQ = 26'd2; //输出频率10Hz
always@(posedge clk)
begin
if(count<(CLK_FREQ/DCLK_FREQ))
count <= count + 1'b1;
else
begin
count <= 0;
second <= ~second;
end
end
always@(count)
begin
case(count)
2'b00:
begin
disp_dat= sec;
sl_reg = 4'b1110;
end
2'b01:
begin
disp_dat=sec;
sl_reg=4'b1101;
end
2'b10:
begin
disp_dat=min;
sl_reg=4'b1011;
end
2'b11:
begin
disp_dat=min;
sl_reg=4'b0111;
end
endcase
end
always @(posedge second )
begin
if(!clr)
begin
sec=8'h0;
cn=0;
end
else
begin
cn=0;
sec=sec+1'b1;
if(sec==4'd10)
begin
sec=4'd0;
sec=sec+1'b1;
if(sec==4'd6)
begin
sec=4'd0;
cn=1;
end
end
end
end
always @(posedge cn)
begin
if(!clr)
begin
min=8'h0;
end
else
begin
min=min+1'b1;
if(min==4'd10)
begin
min=4'd0;
min=min+1'b1;
if(min==4'd6)
begin
min=4'd0;
end
end
end
end
always@(disp_dat or sl)
begin
case(disp_dat)
4'h0:segdat_reg=8'hc0;
4'h1:segdat_reg=8'hf9;
4'h2:segdat_reg=8'ha4;
4'h3:segdat_reg=8'hb0;
4'h4:segdat_reg=8'h99;
4'h5:segdat_reg=8'h92;
4'h6:segdat_reg=8'h82;
4'h7:segdat_reg=8'hf8;
4'h8:segdat_reg=8'h80;
4'h9:segdat_reg=8'h90;
default:segdat_reg=8'hc0;
endcase
end
assign segdat=segdat_reg;
assign sl=sl_reg;
endmodule
qiyanan12
发表于 2011-10-31 16:04:25
夏老师你好,这是我的一个电子钟程序,当我下载到板子上仿真的时候出现了没有定义的数码管亮了,定义的数码管亮度很暗,但显示的结果是对的
,请指点一下
module clock1(clr,clk,segdat,sl);
input clr,clk;
output segdat;
output sl;
reg count;
regsec,min;
regsegdat_reg;
regsl_reg;
regdisp_dat;
reg second;
reg cn;
parameter CLK_FREQ = 26'd50_000_000;//系统时钟
parameter DCLK_FREQ = 26'd2; //输出频率10Hz
always@(posedge clk)
begin
if(count<(CLK_FREQ/DCLK_FREQ))
count <= count + 1'b1;
else
begin
count <= 0;
second <= ~second;
end
end
always@(count)
begin
case(count)
2'b00:
begin
disp_dat= sec;
sl_reg = 4'b1110;
end
2'b01:
begin
disp_dat=sec;
sl_reg=4'b1101;
end
2'b10:
begin
disp_dat=min;
sl_reg=4'b1011;
end
2'b11:
begin
disp_dat=min;
sl_reg=4'b0111;
end
endcase
end
always @(posedge second )
begin
if(!clr)
begin
sec=8'h0;
cn=0;
end
else
begin
cn=0;
sec=sec+1'b1;
if(sec==4'd10)
begin
sec=4'd0;
sec=sec+1'b1;
if(sec==4'd6)
begin
sec=4'd0;
cn=1;
end
end
end
end
always @(posedge cn)
begin
if(!clr)
begin
min=8'h0;
end
else
begin
min=min+1'b1;
if(min==4'd10)
begin
min=4'd0;
min=min+1'b1;
if(min==4'd6)
begin
min=4'd0;
end
end
end
end
always@(disp_dat or sl)
begin
case(disp_dat)
4'h0:segdat_reg=8'hc0;
4'h1:segdat_reg=8'hf9;
4'h2:segdat_reg=8'ha4;
4'h3:segdat_reg=8'hb0;
4'h4:segdat_reg=8'h99;
4'h5:segdat_reg=8'h92;
4'h6:segdat_reg=8'h82;
4'h7:segdat_reg=8'hf8;
4'h8:segdat_reg=8'h80;
4'h9:segdat_reg=8'h90;
default:segdat_reg=8'hc0;
endcase
end
assign segdat=segdat_reg;
assign sl=sl_reg;
endmodule