有关ISE使用Verilog编程时的问题
`timescale1ns/1ps////////////////////////////////////////////////////////////////////...
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 16:57:12 04/10/2014
// Design Name:
// Module Name: b
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module b(
input A,B,clk,s,r,
output Y,Z,l3,l4
);
wire a,b,ab,bb;
wire nots,notr;
assign nots=~s;
assign notr=~r;
cfq M1(.s(nots), //cfq是一个D锁存器的程序,s、r为置位复位信号,d为输入,q为输出,qbar为输出的bar
.r(notr),
.d(A),
.clk(clk),
.q(a),
.qbar(ab)
);
cfq M2(.s(nots),
.r(notr),
.d(B),
.clk(clk),
.q(b),
.qbar(bb)
);
wire d0=0,d1=0,q0=0,q0b=0,q1=0,q1b=0;
assign d0=q0&ab&bb|q0b&q1b&a|b&q1; ///我是想做一个类似于自动售货机的东西,通过真值表我算出来了d0、d1、Y、Z的表达式,但是他们需要q0、q1的值,而q1、q0是d0、d1通过D锁存器之后的值,所以我就不大知道该怎么编了....
assign d1=q0b&q1b&b|q1&ab&bb;
cfq M3(.s(nots),
.r(notr),
.d(d0),
.clk(clk),
.q(q0),
.qbar(q0b)
);
cfq M4(.s(nots),
.r(notr),
.d(d1),
.clk(clk),
.q(q1),
.qbar(q1b)
);
assign Y=~(q0&b|q0&a|q1&a);
assign Z=~(a&q0);
assign l4=q0b;
assign l3=q1b;
endmodule
我是想做一个类似于自动售货机的东西,通过真值表我算出来了d0、d1、Y、Z的表达式,但是他们需要q0、q1的值,而q1、q0是d0、d1通过D锁存器之后的值,所以我就不大知道该怎么编了....上面那块的编程求指点,同时我在运行的时候出现各种Warning
WARNING:PhysDesignRules:367 - The signal <clk_IBUF> is incomplete. The signal
does not drive any load pins in the design.
WARNING:PhysDesignRules:367 - The signal <r_IBUF> is incomplete. The signal does
not drive any load pins in the design.
WARNING:PhysDesignRules:367 - The signal <s_IBUF> is incomplete. The signal does
not drive any load pins in the design.
WARNING:PhysDesignRules:367 - The signal <A_IBUF> is incomplete. The signal does
not drive any load pins in the design.
WARNING:PhysDesignRules:367 - The signal <B_IBUF> is incomplete. The signal does
not drive any load pins in the design.
WARNING:Par:288 - The signal clk_IBUF has no load. PAR will not attempt to route this signal.
WARNING:Par:288 - The signal r_IBUF has no load. PAR will not attempt to route this signal.
WARNING:Par:288 - The signal s_IBUF has no load. PAR will not attempt to route this signal.
WARNING:Par:288 - The signal A_IBUF has no load. PAR will not attempt to route this signal.
WARNING:Par:288 - The signal B_IBUF has no load. PAR will not attempt to route this signal.
WARNING:Par:283 - There are 5 loadless signals in this design. This design will cause Bitgen to issue DRC warnings.
我上Xilinx上面去查说可以安全忽视掉....但是我觉得还是不太对,求指点
刚才又跑了一遍,所有的都能跑下来,只是无论是从最开始的代码还是引脚,到最后Generate都是叹号一堆,很纠结。
我的cfq程序就是从百科上粘的D锁存器的程序,我单独测试过没有问题
module cfq(
input s,r,d,clk,
output q,qbar
);
wire na1,na2,na3,na4;
nand
nand1(na1,s,na4,na2),
nand2(na2,r,na1,clk),
nand3(na3,na2,clk,na4),
nand4(na4,na3,r,d),
nand5(q,s,na2,qbar),
nand6(qbar,q,r,na3);
endmodule
我用的是BASYS2的板子,Family是Spartan3E,Device是XC2S100E,Package是CP132 展开
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 16:57:12 04/10/2014
// Design Name:
// Module Name: b
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module b(
input A,B,clk,s,r,
output Y,Z,l3,l4
);
wire a,b,ab,bb;
wire nots,notr;
assign nots=~s;
assign notr=~r;
cfq M1(.s(nots), //cfq是一个D锁存器的程序,s、r为置位复位信号,d为输入,q为输出,qbar为输出的bar
.r(notr),
.d(A),
.clk(clk),
.q(a),
.qbar(ab)
);
cfq M2(.s(nots),
.r(notr),
.d(B),
.clk(clk),
.q(b),
.qbar(bb)
);
wire d0=0,d1=0,q0=0,q0b=0,q1=0,q1b=0;
assign d0=q0&ab&bb|q0b&q1b&a|b&q1; ///我是想做一个类似于自动售货机的东西,通过真值表我算出来了d0、d1、Y、Z的表达式,但是他们需要q0、q1的值,而q1、q0是d0、d1通过D锁存器之后的值,所以我就不大知道该怎么编了....
assign d1=q0b&q1b&b|q1&ab&bb;
cfq M3(.s(nots),
.r(notr),
.d(d0),
.clk(clk),
.q(q0),
.qbar(q0b)
);
cfq M4(.s(nots),
.r(notr),
.d(d1),
.clk(clk),
.q(q1),
.qbar(q1b)
);
assign Y=~(q0&b|q0&a|q1&a);
assign Z=~(a&q0);
assign l4=q0b;
assign l3=q1b;
endmodule
我是想做一个类似于自动售货机的东西,通过真值表我算出来了d0、d1、Y、Z的表达式,但是他们需要q0、q1的值,而q1、q0是d0、d1通过D锁存器之后的值,所以我就不大知道该怎么编了....上面那块的编程求指点,同时我在运行的时候出现各种Warning
WARNING:PhysDesignRules:367 - The signal <clk_IBUF> is incomplete. The signal
does not drive any load pins in the design.
WARNING:PhysDesignRules:367 - The signal <r_IBUF> is incomplete. The signal does
not drive any load pins in the design.
WARNING:PhysDesignRules:367 - The signal <s_IBUF> is incomplete. The signal does
not drive any load pins in the design.
WARNING:PhysDesignRules:367 - The signal <A_IBUF> is incomplete. The signal does
not drive any load pins in the design.
WARNING:PhysDesignRules:367 - The signal <B_IBUF> is incomplete. The signal does
not drive any load pins in the design.
WARNING:Par:288 - The signal clk_IBUF has no load. PAR will not attempt to route this signal.
WARNING:Par:288 - The signal r_IBUF has no load. PAR will not attempt to route this signal.
WARNING:Par:288 - The signal s_IBUF has no load. PAR will not attempt to route this signal.
WARNING:Par:288 - The signal A_IBUF has no load. PAR will not attempt to route this signal.
WARNING:Par:288 - The signal B_IBUF has no load. PAR will not attempt to route this signal.
WARNING:Par:283 - There are 5 loadless signals in this design. This design will cause Bitgen to issue DRC warnings.
我上Xilinx上面去查说可以安全忽视掉....但是我觉得还是不太对,求指点
刚才又跑了一遍,所有的都能跑下来,只是无论是从最开始的代码还是引脚,到最后Generate都是叹号一堆,很纠结。
我的cfq程序就是从百科上粘的D锁存器的程序,我单独测试过没有问题
module cfq(
input s,r,d,clk,
output q,qbar
);
wire na1,na2,na3,na4;
nand
nand1(na1,s,na4,na2),
nand2(na2,r,na1,clk),
nand3(na3,na2,clk,na4),
nand4(na4,na3,r,d),
nand5(q,s,na2,qbar),
nand6(qbar,q,r,na3);
endmodule
我用的是BASYS2的板子,Family是Spartan3E,Device是XC2S100E,Package是CP132 展开
2个回答
展开全部
学always循环体怎么用, 掌握时序电路的写法. 你上面的都是组合电路.
也可用dff或dffe直接例化d触发器, 格式大致是d1 dff (.clk(??), .d(??), .q(??), .clr(??), .set(??) ).
得引入时钟信号,触发d>q的传递.
初学verilog, 综合(编译)过程中所有的warning都要视为error一一消除. 除非你非常熟练知道每个warning确实不会影响结果.
初学verilog, 综合完,在菜单内找RTL viewer看看电路框图,是不是你设想的形式.语法精通后不必看.
RTL无误后进行仿真. 先功能,后时序,都没问题即可写入FPGA了.
威孚半导体技术
2024-08-19 广告
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...
点击进入详情页
本回答由威孚半导体技术提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询