夏宇闻
发表于 2011-11-6 06:23:13
回复夏宇闻
是不是上g赫兹的电路设计 fpga就无能为力了?
jahero 发表于 2011-11-4 15:03 http://www.fpgaw.com/images/common/back.gif
要看器件的类型和型号。有的FPGA可以直接接收频率上G的LVDS串行信号流,进入FPGA内部后转换成几百MHZ的并行数据,然后做各种处理。
夏宇闻
发表于 2011-11-6 06:41:19
本帖最后由 夏宇闻 于 2011-11-6 07:35 编辑
FPGA I/O引脚分配
我现在想做一个开发板 用EP3C120F780,引脚数太多,如何分配引脚才能使走线好,画PCB好画 ...
TCL 发表于 2011-11-5 06:34 http://www.fpgaw.com/images/common/back.gif
您可以先让布局布线工具自动布线。把与SDRAM连结的有关信号用明确一致的信号名标记,做一些约束,然后自动编译、综合、优化、布局布线、最后看引脚是如何自动分配的,是否符合约束条件。然后参考看到的引脚逐一确定,编写引脚文件。然后再做一次fitting,如果静态时序分析和布局布线后的时序仿真没有问题就可基本搞定。如果读写频率比较临界,画线路板时一定要注意SDRAM与FPGA的距离和引线长度的一致性。即信号完整性仿真必不可少,否则有可能出差错。
夏宇闻
发表于 2011-11-6 06:47:00
本帖最后由 夏宇闻 于 2011-11-6 06:48 编辑
夏老师您好!
这个学期我选了数字系统设计这门课,老师最近布置了这样一个题目,我实在看不懂,请教一下您 ...
jiezhouliping 发表于 2011-11-5 12:20 http://www.fpgaw.com/images/common/back.gif
我觉得您的老师布置的作业十分具体。为什么您看不懂呢?是不是上课没有认真听课?还是老师没有把基础知识讲透?其他同学能理解题目吗?
jahero
发表于 2011-11-7 00:12:17
老师我正在看您书上risc cpu那章 我如果想从 cputop文件里 调用machine的state 是不是我应在cputop文件里写 t_cpu.m-machine.state呢?
夏宇闻
发表于 2011-11-7 06:40:22
本帖最后由 夏宇闻 于 2011-11-7 06:52 编辑
老师我正在看您书上risc cpu那章 我如果想从 cputop文件里 调用machine的state 是不是我应在cputop文件里写 ...
jahero 发表于 2011-11-7 00:12 http://www.fpgaw.com/images/common/back.gif
层次变量的命名规则,在我编写的书中应该有介绍。针对您提出的具体情况:在cputop中实例引用cpu时实例名用t_cpu,而machine是t_cpu中的一个模块,它的实例名为m_machine,故其state的层次名应该为:t_cpu.m_machine.state , 你的回答很正确。您是否没注意把m和machine之间的下杠符写成减号了?才出现这个问题的?
dong5103
发表于 2011-11-7 16:49:03
夏老师:
请教一个问题,代码如下:
module inint
(
clk,rst,
outdate,
rs,en,rw
);
input clk;
input rst;
output outdate;
reg rs;
reg en;
reg rw;
////////
reg i;
reg Ldate;
always @(negedge clk or negedge rst)
if(!rst)
begin
Ldate<=8'bz;
i<=3'b0;
end
else
case (i)
3'd0:
begin
com u1
(
.clk(clk),
.rst(rst),
.indate(8'h38),
.rs(rs),
.en(en),
.rw(rw),
.outdate(Ldate)
);
i<=i+1'b1;
end
3'd1:
begin
com u2
(
.clk(clk),.rst(rst),
.indate(8'h08),
.rs(rs),.en(en),.rw(rw),
.outdate(Ldate)
);
i<=i+1'b1;
end
3'd2:
begin
com u3 ///指令01; 显示清屏
(
.clk(clk),.rst(rst),
.indate(8'h01),
.rs(rs),.en(en),.rw(rw),
.outdate(Ldate)
);
i<=i+1'b1;
end
3'd3:
begin
com u4 ///指令06; //显示光标移动设置
(.clk(clk),
.rst(rst),
.indate(8'h06),
.rs(rs),
.en(en),
.rw(rw),
.outdate(Ldate)
);
i<=i+1'b1;
end
3'd4:
begin
com u5 ///指令0c; //显示开及光标设置
(.clk(clk),
.rst(rst),
.indate(8'h0c),
.rs(rs),
.en(en),
.rw(rw),
.outdate(Ldate)
);
i<=i+1'b1;
end
3'd5:
begin
i<=1'b0;
end
endcase
/////////////////////////////////
assign outdate=Ldate;
endmodule
其中的类似,
3'd1:
begin
com u2
(
.clk(clk),.rst(rst),
.indate(8'h08),
.rs(rs),.en(en),.rw(rw),
.outdate(Ldate)
);
这样的用法是不是不对啊??
夏宇闻
发表于 2011-11-7 19:02:40
本帖最后由 夏宇闻 于 2011-11-7 20:10 编辑
夏老师:
请教一个问题,代码如下:
module inint
(
clk,rst,
outdate,
rs,en,rw
...
dong5103 发表于 2011-11-7 16:49 http://www.fpgaw.com/images/common/back.gif
确实不对。您应该认真读一遍语法书,注意书上每一句话,认真思考,就不至于犯如此低级的错误。你必须做不少改动,把5个实例引用独立出来,写在状态机的外面。状态机中只需要在不同状态对这几个由同一模块(com)生成的不同的实例(u1,u2,...u5)的使能端口信号分别置1,不用时把使能输入置0即可。另外还要写一个测试模块,走一遍仿真,看是否与设想的动作一致。
dong5103
发表于 2011-11-8 10:50:35
回复 157# 夏宇闻
谢谢夏老师啦,我再仔细看看书~~
yhf561
发表于 2011-11-10 21:30:06
夏老师好啊,我是新手,请教您一个问题啊。关于仿真的,我按照你的那本《Verilog数字系统设计教程》第七讲上例7.1做的。
我用的是quartus II 9.1,编写的程序,模块源代码和测试源代码这两个文件放到两个.v文件里是吧?是在同一个工程目录下的么?怎么我仿真不对啊,“Error (10228): Verilog HDL error at seqdet.v(1): module "seqdet" cannot be declared more than once”,
Error (10112): Ignored design unit "t" at t.v(3) due to previous errors那该怎么生成仿真后的时序图咧?必须安装modelsim吗
之前我做的一些小程序,直接在模块源代码里,在Verilog Waveform File里做的波形仿真,么有用过测试源代码做过,怎么做啊?谢谢!!!
yhf561
发表于 2011-11-10 21:32:51
再请问下哦,有没有在线请教呀?
谢谢!:P