打印

蜗牛请进~

[复制链接]
1971|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lover9|  楼主 | 2009-12-22 09:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
你说要当我师傅的,俺现在有个Verilog 程序问题请教,请看:

reg  [24:0] count;
wire    clk;
//--计数分频-------------------------------------
always @ (posedge clkin)
    //count <= count+1;
    count <= count+4;
assign clk = count[24];
上面的“<= ”表示什么?书上说是“小于等于”,感觉像赋值哦,何解?

PS:留下你的联系方式,以后~

相关帖子

沙发
lelee007| | 2009-12-22 11:55 | 只看该作者
倒塌

非阻塞赋值啦

靠,你Y也该先把书翻两下吧?!

使用特权

评论回复
板凳
lover9|  楼主 | 2009-12-22 12:54 | 只看该作者
谢谢LS,我知道了~

使用特权

评论回复
地板
一只小蜗牛| | 2009-12-22 14:07 | 只看该作者
本帖最后由 一只小蜗牛 于 2009-12-22 14:08 编辑

小lover,这是我前几天EDA板块写的,你可以玩一下。
突然玩心大起,我给大家写了一个参数化的50%占空比的模块。从0-255 皆可,当然了,你可以轻而易举地把它扩大到更大的范围。写得匆忙,没写注释,不要见笑。一个重要建议是:如果用分频器产生的频率时(这已经是异步的了)最好先把他输出到外面,在从PAD环回来,这样可以避免FPGA神经错乱。不过不是迫不得已,我既不建议使用下降沿,也不建议使用异步设计。还是同步设计稳定。
`timescale 1ns/10ps
module divider (
   clock  ,   // input clock
   resetb ,   // input reset
   freqout    // output divided frequency
);

parameter freq_div = 2 ;

input    clock   ;
input    resetb  ;
output   freqout ;

wire   clock   ;
wire   resetb  ;
wire   freqout ;

reg   [7:0] counter    ;
wire  [7:0] freq_divid ;
wire  [7:0] freq_div2  ;
reg         freq_even  ;
reg         freq_odd0   ;
reg         freq_odd1   ;
wire        freq_odd   ;
assign freq_divid = freq_div ;
assign freq_div2  = freq_divid >> 1;

always @(posedge clock or negedge resetb )
begin
   if ( ~ resetb )
   begin
      counter <= 8'h00 ;
   end
   else if ( counter == freq_div - 1 )
   begin
     counter <= 8'h00 ;
   end
   else
   begin
     counter <= counter + 1'b1 ;
   end
end

always @(posedge clock or negedge resetb )
begin
   if ( ~ resetb )
   begin
      freq_even <= 1'b0 ;
   end
   else if ( freq_divid[0] == 1'b0 )
   begin
      if ( counter == freq_div2 - 1 )
      begin
         freq_even <= 1'b1 ;
      end
      else if ( counter == freq_div - 1 )
      begin
         freq_even <= 1'b0 ;
      end
   end
   else
   begin
      freq_even <= 1'b0 ;
   end
end

always @(posedge clock or negedge resetb )
begin
   if ( ~ resetb )
   begin
      freq_odd0 <= 1'b0 ;
   end
   else if ( freq_divid[0] == 1'b1 )
   begin
      if ( counter == freq_div2 - 1 )
      begin
         freq_odd0 <= 1'b1 ;
      end
      else if ( counter == freq_div - 1 )
      begin
         freq_odd0 <= 1'b0 ;
      end
   end
   else
   begin
      freq_odd0 <= 1'b0 ;
   end
end
always @(negedge clock or negedge resetb )
begin
   if ( ~ resetb )
   begin
      freq_odd1 <= 1'b0 ;
   end
   else
   begin
      freq_odd1 <= freq_odd0 ;
   end
end

assign freq_odd = freq_odd0 & freq_odd1 ;

assign freqout = ( freq_div <= 1 ) ? clock : freq_odd | freq_even ;


endmodule

使用特权

评论回复
5
一只小蜗牛| | 2009-12-22 14:47 | 只看该作者
有问题给我发短消息。

使用特权

评论回复
6
lover9|  楼主 | 2009-12-22 14:58 | 只看该作者
晕,现在连Verilog语法都没弄清,惭愧,等段时间,我成熟了,再来研究哈~

使用特权

评论回复
7
lelee007| | 2009-12-22 15:32 | 只看该作者
;P

使用特权

评论回复
8
icecut| | 2009-12-23 11:04 | 只看该作者

使用特权

评论回复
9
一只小蜗牛| | 2009-12-23 11:10 | 只看该作者
赶紧去搞掉电梯女,你就是熟男了

使用特权

评论回复
10
xwj| | 2009-12-23 11:33 | 只看该作者
汗~

使用特权

评论回复
11
lelee007| | 2009-12-23 15:18 | 只看该作者
赶紧去搞掉电梯女,你就是熟男了
一只小蜗牛 发表于 2009-12-23 11:10

;P

使用特权

评论回复
12
w272978559| | 2009-12-31 15:07 | 只看该作者
:dizzy:和看天书一样.嘛也看不懂  看来还是荒废了我的学习生涯:'(

使用特权

评论回复
13
sleepybear| | 2009-12-31 15:25 | 只看该作者
先找本Verilog的基础书看看吧。。。:L
夏宇闻那本口碑不错。

使用特权

评论回复
14
w272978559| | 2009-12-31 15:30 | 只看该作者
13# sleepybear :( 回头找找去

使用特权

评论回复
15
candy朦朦| | 2010-1-5 17:47 | 只看该作者
赶紧去搞掉电梯女,你就是熟男了
一只小蜗牛 发表于 2009-12-23 11:10


同意蜗牛

我先看C++吧~~~~~~~
飘去

使用特权

评论回复
16
candy朦朦| | 2010-1-5 17:48 | 只看该作者
先找本Verilog的基础书看看吧。。。:L
夏宇闻那本口碑不错。
sleepybear 发表于 2009-12-31 15:25


那给个电子书啦,粉期待

使用特权

评论回复
17
lover9|  楼主 | 2010-1-5 18:37 | 只看该作者
我去下载看看~

使用特权

评论回复
18
w272978559| | 2010-1-6 10:34 | 只看该作者
去吧 能下载就是好啊~~  我们这都不能百度..

使用特权

评论回复
19
lover9|  楼主 | 2010-1-6 10:48 | 只看该作者
我已经下载,瞅了一下,还行,不过工作可没时间让我从头看了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:1、我故意学习,故意工作,故意生活,故意活得像个人。 2、以后不要在我面前说英文,OK? 3、青春就像卫生纸。看着挺多的,用着用着就不够了。

122

主题

1888

帖子

1

粉丝