完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本帖最后由 这就非常尴尬了 于 2016-4-20 14:04 编辑
modelsim仿真出现# Error loading design提示,什么原因,新人求指教: 主程序: module speed_select_rx(clk,rst_n,bps,bps_start,clk_bps);//波特率设定 input clk; //25M时钟 input rst_n; //复位信号 input bps_start; //接收到信号以后,波特率时钟信号置位,当接收到uart_rx传来的信号以后,模块开始运行 input [1:0] bps; output clk_bps; //接收数据中间采样点 reg[12:0] cnt;//分频计数器 reg[12:0] cnt_end; reg clk_bps_r;//波特率时钟寄存器 reg[2:0] uart_ctrl;//波特率选择寄存器 always @(bps or negedge rst_n) begin if(!rst_n) clk_bps_r<=1'b0; else case(bps) 2'b00 : cnt_end<=5208; 2'b01 : cnt_end<=2604; 2'b10 : cnt_end<=1302; 2'b11 : cnt_end<=651; default : cnt_end=651; endcase end always @(posedge clk or negedge rst_n) if(!rst_n) cnt<=13'd0; else if((cnt==cnt_end)|| !bps_start)//判断计数是否达到1个脉宽 cnt<=13'd0; else cnt<=cnt+1'b1;//波特率时钟启动 always @(posedge clk or negedge rst_n) begin if(!rst_n) clk_bps_r<=1'b0; else if(cnt== (cnt_end/2))//当波特率计数到一半时,进行采样存储 clk_bps_r<=1'b1; else clk_bps_r<=1'b0; end assign clk_bps = clk_bps_r;//将采样数据输出给uart_rx模块 endmodule testbench程序: module speed_select_rx_testbench; reg clk; //25M时钟 reg rst_n; reg bps_start; //接收到信号以后,波特率时钟信号置位,当接收到uart_rx传来的信号以后,模块开始运行 reg [1:0] bps; wire clk_bps; //接收数据中间采样点, initial begin #0 rst_n=1'b0; #20 rst_n=1'b1; bps_start=1'b1; bps=2'b11; #200000 bps=2'b00; end initial begin #0 clk=1'b0; forever #10 clk=~clk; end speed_select_rx_testbench( .clk(clk), .rst_n(rst_n), .bps(bps), .bps_start(bps_start), .clk_bps(clk_bps)); endmodule |
|
相关推荐
3个回答
|
|
谢谢分享,楼主辛苦了
|
|
|
|
谢谢啦!楼主无私分享
|
|
|
|
有没有前辈帮忙看看,谢谢了。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1533 浏览 1 评论
1313 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
1523 浏览 0 评论
925 浏览 0 评论
2317 浏览 0 评论
1458 浏览 35 评论
5671 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 11:19 , Processed in 0.608224 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号