زبان سخت افزاری Verilog HDL چیست؟

Verilog HDL یک زبان توصیف سخت افزاری است که برای مدل سازی و شبیه سازی سیستم های دیجیتالی استفاده می شود. Verilog HDL در لایه های چندگانه ای از انتزاع ، در قالب های متنی استاندارد ، برای گونه های مختلفی از ابزارهای (IEEE95) به طور موثر و قابل درک و به سهولت قابل طراحی است.

این زبان به وسیله پیل موربی در کنفرانس طراحی اتوماتیک gateway در سال ۱۹۸۴ معرفی شد و در سال ۱۹۹۵ موفق به کسب استاندارد IEEE95 شد .بعد از اینکه مرحله استاندارد سازی کامل شد و در جامعه تثبیت شد ، در استاندارد IEEE 2001 – ۱۳۶۴ (IEEE01 ) اصلاح و تعدیل شد . چهار چوب و متدلوژی برای نمونه سازی و شبیه سازی ، هدف کلی زبان verilog است.

هدف اصلی این زبان توصیف دو دید گاه مهم زیر می باشد :

Levels of systym specification : چگونگی کارکرد سیستم های دیجیتالی را و مکانیزم هایی که باعث کار آن می شود را شرح می دهد .

System specification formalism : طراح می تواند از تجرید برای نمایش دادن مجتمع سازی در مقیاس بسیار بزرگ (VLSI) یا سیستم های دیجیتال استفاده کند .

چرا از Verilog HDL استفاده می کنیم ؟

اگر وارد جزئیات شویم سیستم های دیجیتالی به شدت پیچیده هستند ، طراحی VLSI ممکن است شامل میلیون ها عنصر باشد . زبان verilog طراحی های دیجیتالی ایجاد می کند که با توانائی هایشان یک سیستم دیجیتال را در دامنه وسیعی از انتزاع شرح می دهند. همچنین ، دسترسی به ابزار طراحی به وسیله کامپیوتر را فراهم می کند تا به فرآیند طراحی در این سطح ها کمک کند .

هدف اصلی این مقاله طراحی محاسبات کامپیوتری مسیر داده و همچنین استفاده verilog برای توصیف دقیق عملکرد سیستم های دیجیتالی است .verilog یک روش عالی برای نمونه سازی مدارها در جهت پیاده سازی VLSI با استفاده از مکان و مسیر برنامه هاست و اجازه می دهد مهندسین مدارهای منطقی و طراحی بندی VLSI را بهینه سازی کنند ، که این کار باعث افزایش سرعت و کاهش فضا در تراشه های VLSI می شود . بنابراین دانستن verilog باعث می شود طراحی VLSI وسیستم های دیجیتالی بسیار کارآمد شود و ابزار مفیدی است برای تمامی مهندسان ، زیرا استفاده از این زبان آسان بوده و کامپایلرهای verilog مانند نوع تجاری آن به راحتی در دسترس می باشند و انتخابی بسیار خوب برای طراحان verilog می باشد.

هدف اصلی این متن استفاده از verilog برای فهمیدن الگوریتم ها است . با این حال ، الگوریتم های زیادی برای محاسبه محاسبات ریاضی در سیستم های دیجیتالی موجودند، تنوع گوناگونی از طراحی ها تلاش می کنند که پهنای وسیعی از عقیده های بسیار زیادی را در مورد طراحی مسیر داده محاسبات کامپیوتری بیان کنند . چندین حوضه مهم از محاسبات دیجیتالی ، مانند باقی مانده سیستم عددی ، محاسبات مربوط به قدر مطلق ، جذر و معکوس جذر ، محاسبه توان های کوچک ، موضوع این متن نیستند . به عبارت دیکر این الگوریتم ها فقط در محدوده محاسبات دیجیتال مهم می باشند .

ابزار بیشماری در زمینه خودکار سازی طراحی های الکتریکی وجود دارند (EAD) که تلاش می کنند بسیاری از طراحی های ارائه شده در این مقاله را مکانیزه کنند . با این حال ، برای تولید کننده EAD باور نکردنی است که وسیله ای تولید کند که همه آرایشات ممکن را داشته باشد و یا محاسبات کامپیوتری دیجیتال را ترفیع دهد. 

با این دانش ، مهندسین می توانند بطور بالقوه از ابزار EDA در تکمیل قطعاتشان و حتی برای تکمیل محصولی که این ابزارها ایجاد کرده اند استفاده نمایند . اما برای یک مهندس VLSI استفاده از ابزار EDA برای تولید یک الگوریتم بدون اینکه آن را بفهمد معقول نیست .

طراحی مسیر داده

طراحی های این متن بیشتر در جهت ارزیابی طراحی ها هستند . به عبارت دیگر ، پیاده سازی طراحی ها و الگوریتم ها را انجام داده و عاملیت، از یک عملکرد طراحی یا پتانسیل همه سناریوها یا زاویه ها می باشد. در نتیجه، زمانیکه یک مدل تابعی می نویسیم ، بسیاری از طراحان کد را به قسمتهای کنترل و مسیر داده تفکیک می کنند. مسیر داده بر روی جریان داده بیت های چند گانه عمل می کند و ارتباطات منظمی دارد با این حال نوشتن در مسیر داده اغلب مواقع تصادفی است . بنابراین ، نوشتن های گوناگون نشان می دهد که ابزارهای مختلفی استفاده می شوند تا قسمت های مختلفی حمایت شود . این متن فقط بر روی طراحی مسیر داده متمرکز می شود و چون طراحی آن خیلی منظم و بسیار پیچیده است و زمان بسیار زیادی را می گیرد ، وبا در نطر گرفتن اینکه کنترل منطقی مستقیم بوده وپیچیدگی کمتری دارد ، به همین خاطر سیم کشی قسمت کنترل را از سیم کشی مسیر داده تفکیک می کنند . سیم کشی کنترل با حروف پر رنگ لیبل گذاری شده و از خط نقطه چین در مقابل خط ممتد استفاده می کند . نکته مهم دیگر که در الگوریتم های این متن ارائه شده است این است که تلاش می کند تا جنبه های الگوریتمی را در هر پیاده سازی توصیف کند . همانطور که قبلا شرح داده شد یک پیاده سازی سطح مدار را به خوبی روش الگوریتمی آن مورد توجه قرار می دهد. به عنوان مثال ، یک جمع کننده ریپل کری معمولا پیاده سازی می شود در VLSI در مقابل با جمع کنند carry lookahead carry propagateبرای اینکه پیاده سازی مدار اجازه میدهد تا بهره برداری کارآمدی از نواحی علیه تاخیر داشته باشد .

و با مقدمه ای از carry-propagate adder parallel- prefix ، توانایی پیاده سازی جمع کننده ها با یک بیت اتصال دو طرفه ، با کمترین طول سیم ممکن می شود . بنابر این ، برای یک طراح مهم است که بداند چگونه یک طراحی معین به صورت الگوریتمی انجام می گیرد بطوریکه مزایای مدار مفروض می تواند برای پیاده سازی مفید باشد .برای کمک به مشخص شدن طراحی ها در این متن هر پیاده سازی با نواحی بدون تاخیر ارزیابی خواهد شد . برای اینکه مطمئن شویم که هر پیاده سازی بدون هیچ بایاسی مقایسه می شود ، در طراحی ها فقط از گیت های and,or,not استفاده می کنیم مگر در حالت های خاص . با این روش ، پیاده سازی هر الگوریتم می تواند مقایسه شود بدون اشتباه گرفتن پیاده سازی با یک مدار مفید . .قبلا مزایا و اشکالات الگوریتمی شناخته شده است ، یک طراح VLSI می تواند با یک قضاوت دقیق دریابد که پیاده سازی یک مدار چگونه از یک الگوریتم معین سود خواهد برد. استفاده از گیت های اضافی مانند گیت xor باعث افزایش سطح یک مدار معین می شود . توان ، امروزه یک بخش مهم در هر طراحی است که در این مقاله ملاحظه نمی گردد . علاوه بر این ، طراحی هایی که در این متن به کنترل زمانبندی نیاز دارند از فلیپ فلاپ ساده D مبتنی بر الگوریتم رجیستر استفاده خواهند کرد . امروزه اکثر طراحی ها از لچ ها استفاده می کنند تا از مزایای زمانبندی مانند مالتی فازها ، cloking ویا time brrowing ها استفاده کنند . برای برخی طراحی ها ، مساحت بر مبنای تعداد گیت هایی که شامل گیت های پایه and,or,not هستند محاسبه می شود . تاخیر بعضی مواقع خیلی پیچیده بوده و با ∆ مشخص می شود. اگر چه یک نفر می تواند بحث کند که اعداد واقعی نیستند ولی هزینه هر پیاده سازی را نشان می دهندکه می تواند اجازه یک مقایسه الگوریتمی خوب را بدهد . ممکن است که همه پیاده سازی ها به وسیله میزان تاخیر یکسان مقایسه شوند ، تغییر دادن این شماره تاخیر ها بطوریکه خیلی سودمند (عملی) هستند شروع به آدرس دهی محدودیت های سطح مدار می کند




ارائه شده توسط تیم digigoez
Whoops! There was an error.
UnexpectedValueException
The stream or file "/home/rezabehr/storage/logs/laravel-2022-01-25.log" could not be opened: failed to open stream: Disk quota exceeded UnexpectedValueException thrown with message "The stream or file "/home/rezabehr/storage/logs/laravel-2022-01-25.log" could not be opened: failed to open stream: Disk quota exceeded" Stacktrace: #11 UnexpectedValueException in /home/rezabehr/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:107 #10 Monolog\Handler\StreamHandler:write in /home/rezabehr/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php:119 #9 Monolog\Handler\RotatingFileHandler:write in /home/rezabehr/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php:39 #8 Monolog\Handler\AbstractProcessingHandler:handle in /home/rezabehr/vendor/monolog/monolog/src/Monolog/Logger.php:344 #7 Monolog\Logger:addRecord in /home/rezabehr/vendor/monolog/monolog/src/Monolog/Logger.php:707 #6 Monolog\Logger:error in /home/rezabehr/vendor/laravel/framework/src/Illuminate/Log/Logger.php:176 #5 Illuminate\Log\Logger:writeLog in /home/rezabehr/vendor/laravel/framework/src/Illuminate/Log/Logger.php:87 #4 Illuminate\Log\Logger:error in /home/rezabehr/vendor/laravel/framework/src/Illuminate/Log/LogManager.php:498 #3 Illuminate\Log\LogManager:error in /home/rezabehr/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php:114 #2 Illuminate\Foundation\Exceptions\Handler:report in /home/rezabehr/app/Exceptions/Handler.php:37 #1 App\Exceptions\Handler:report in /home/rezabehr/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php:81 #0 Illuminate\Foundation\Bootstrap\HandleExceptions:handleException in [internal]:0
11
UnexpectedValueException
/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php107
10
Monolog\Handler\StreamHandler write
/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php119
9
Monolog\Handler\RotatingFileHandler write
/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php39
8
Monolog\Handler\AbstractProcessingHandler handle
/vendor/monolog/monolog/src/Monolog/Logger.php344
7
Monolog\Logger addRecord
/vendor/monolog/monolog/src/Monolog/Logger.php707
6
Monolog\Logger error
/vendor/laravel/framework/src/Illuminate/Log/Logger.php176
5
Illuminate\Log\Logger writeLog
/vendor/laravel/framework/src/Illuminate/Log/Logger.php87
4
Illuminate\Log\Logger error
/vendor/laravel/framework/src/Illuminate/Log/LogManager.php498
3
Illuminate\Log\LogManager error
/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php114
2
Illuminate\Foundation\Exceptions\Handler report
/app/Exceptions/Handler.php37
1
App\Exceptions\Handler report
/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php81
0
Illuminate\Foundation\Bootstrap\HandleExceptions handleException
[internal]0
/home/rezabehr/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php
    /**
     * {@inheritdoc}
     */
    protected function write(array $record)
    {
        if (!is_resource($this->stream)) {
            if (null === $this->url || '' === $this->url) {
                throw new \LogicException('Missing stream url, the stream can not be opened. This may be caused by a premature call to close().');
            }
            $this->createDir();
            $this->errorMessage = null;
            set_error_handler(array($this, 'customErrorHandler'));
            $this->stream = fopen($this->url, 'a');
            if ($this->filePermission !== null) {
                @chmod($this->url, $this->filePermission);
            }
            restore_error_handler();
            if (!is_resource($this->stream)) {
                $this->stream = null;
                throw new \UnexpectedValueException(sprintf('The stream or file "%s" could not be opened: '.$this->errorMessage, $this->url));
            }
        }
 
        if ($this->useLocking) {
            // ignoring errors here, there's not much we can do about them
            flock($this->stream, LOCK_EX);
        }
 
        $this->streamWrite($this->stream, $record);
 
        if ($this->useLocking) {
            flock($this->stream, LOCK_UN);
        }
    }
 
    /**
     * Write to stream
     * @param resource $stream
     * @param array $record
     */
Arguments
  1. "The stream or file "/home/rezabehr/storage/logs/laravel-2022-01-25.log" could not be opened: failed to open stream: Disk quota exceeded"
    
/home/rezabehr/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php
        $this->url = $this->getTimedFilename();
        $this->close();
    }
 
    /**
     * {@inheritdoc}
     */
    protected function write(array $record)
    {
        // on the first record written, if the log is new, we should rotate (once per day)
        if (null === $this->mustRotate) {
            $this->mustRotate = !file_exists($this->url);
        }
 
        if ($this->nextRotation < $record['datetime']) {
            $this->mustRotate = true;
            $this->close();
        }
 
        parent::write($record);
    }
 
    /**
     * Rotates the files.
     */
    protected function rotate()
    {
        // update filename
        $this->url = $this->getTimedFilename();
        $this->nextRotation = new \DateTime('tomorrow');
 
        // skip GC of old logs if files are unlimited
        if (0 === $this->maxFiles) {
            return;
        }
 
        $logFiles = glob($this->getGlobPattern());
        if ($this->maxFiles >= count($logFiles)) {
            // no files to remove
            return;
Arguments
  1. array:8 [
      "message" => "file_put_contents(/home/rezabehr/storage/framework/sessions/5ocxO7ISp4bNpskGNx6MFbmNrbdPajEaHbB0YLYD): failed to open stream: Disk quota exceeded"
      "context" => array:1 [
        "exception" => ErrorException {#146
          #message: "file_put_contents(/home/rezabehr/storage/framework/sessions/5ocxO7ISp4bNpskGNx6MFbmNrbdPajEaHbB0YLYD): failed to open stream: Disk quota exceeded"
          #code: 0
          #file: "/home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
          #line: 122
          #severity: E_WARNING
        }
      ]
      "level" => 400
      "level_name" => "ERROR"
      "channel" => "local"
      "datetime" => DateTime @1643099524 {#363
        date: 2022-01-25 12:02:04.265065 Asia/Tehran (+03:30)
      }
      "extra" => []
      "formatted" => """
        [2022-01-25 12:02:04] local.ERROR: file_put_contents(/home/rezabehr/storage/framework/sessions/5ocxO7ISp4bNpskGNx6MFbmNrbdPajEaHbB0YLYD): failed to open stream: Disk quota exceeded {"exception":"[object] (ErrorException(code: 0): file_put_contents(/home/rezabehr/storage/framework/sessions/5ocxO7ISp4bNpskGNx6MFbmNrbdPajEaHbB0YLYD): failed to open stream: Disk quota exceeded at /home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122)\n
        [stacktrace]\n
        #0 [internal function]: Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(2, 'file_put_conten...', '/home/rezabehr/...', 122, Array)\n
        #1 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(122): file_put_contents('/home/rezabehr/...', 'a:3:{s:6:\"_toke...', 2)\n
        #2 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php(83): Illuminate\\Filesystem\\Filesystem->put('/home/rezabehr/...', 'a:3:{s:6:\"_toke...', true)\n
        #3 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Session/Store.php(129): Illuminate\\Session\\FileSessionHandler->write('5ocxO7ISp4bNpsk...', 'a:3:{s:6:\"_toke...')\n
        #4 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(87): Illuminate\\Session\\Store->save()\n
        #5 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(218): Illuminate\\Session\\Middleware\\StartSession->terminate(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #6 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(189): Illuminate\\Foundation\\Http\\Kernel->terminateMiddleware(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #7 /home/rezabehr/public_html/index.php(63): Illuminate\\Foundation\\Http\\Kernel->terminate(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #8 {main}\n
        "} \n
        """
    ]
    
/home/rezabehr/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php
 *
 * @author Jordi Boggiano <j.boggiano@seld.be>
 * @author Christophe Coevoet <stof@notk.org>
 */
abstract class AbstractProcessingHandler extends AbstractHandler
{
    /**
     * {@inheritdoc}
     */
    public function handle(array $record)
    {
        if (!$this->isHandling($record)) {
            return false;
        }
 
        $record = $this->processRecord($record);
 
        $record['formatted'] = $this->getFormatter()->format($record);
 
        $this->write($record);
 
        return false === $this->bubble;
    }
 
    /**
     * Writes the record down to the log of the implementing handler
     *
     * @param  array $record
     * @return void
     */
    abstract protected function write(array $record);
 
    /**
     * Processes a record.
     *
     * @param  array $record
     * @return array
     */
    protected function processRecord(array $record)
    {
Arguments
  1. array:8 [
      "message" => "file_put_contents(/home/rezabehr/storage/framework/sessions/5ocxO7ISp4bNpskGNx6MFbmNrbdPajEaHbB0YLYD): failed to open stream: Disk quota exceeded"
      "context" => array:1 [
        "exception" => ErrorException {#146
          #message: "file_put_contents(/home/rezabehr/storage/framework/sessions/5ocxO7ISp4bNpskGNx6MFbmNrbdPajEaHbB0YLYD): failed to open stream: Disk quota exceeded"
          #code: 0
          #file: "/home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
          #line: 122
          #severity: E_WARNING
        }
      ]
      "level" => 400
      "level_name" => "ERROR"
      "channel" => "local"
      "datetime" => DateTime @1643099524 {#363
        date: 2022-01-25 12:02:04.265065 Asia/Tehran (+03:30)
      }
      "extra" => []
      "formatted" => """
        [2022-01-25 12:02:04] local.ERROR: file_put_contents(/home/rezabehr/storage/framework/sessions/5ocxO7ISp4bNpskGNx6MFbmNrbdPajEaHbB0YLYD): failed to open stream: Disk quota exceeded {"exception":"[object] (ErrorException(code: 0): file_put_contents(/home/rezabehr/storage/framework/sessions/5ocxO7ISp4bNpskGNx6MFbmNrbdPajEaHbB0YLYD): failed to open stream: Disk quota exceeded at /home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122)\n
        [stacktrace]\n
        #0 [internal function]: Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(2, 'file_put_conten...', '/home/rezabehr/...', 122, Array)\n
        #1 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(122): file_put_contents('/home/rezabehr/...', 'a:3:{s:6:\"_toke...', 2)\n
        #2 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php(83): Illuminate\\Filesystem\\Filesystem->put('/home/rezabehr/...', 'a:3:{s:6:\"_toke...', true)\n
        #3 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Session/Store.php(129): Illuminate\\Session\\FileSessionHandler->write('5ocxO7ISp4bNpsk...', 'a:3:{s:6:\"_toke...')\n
        #4 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(87): Illuminate\\Session\\Store->save()\n
        #5 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(218): Illuminate\\Session\\Middleware\\StartSession->terminate(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #6 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(189): Illuminate\\Foundation\\Http\\Kernel->terminateMiddleware(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #7 /home/rezabehr/public_html/index.php(63): Illuminate\\Foundation\\Http\\Kernel->terminate(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #8 {main}\n
        "} \n
        """
    ]
    
/home/rezabehr/vendor/monolog/monolog/src/Monolog/Logger.php
        }
        $ts->setTimezone(static::$timezone);
 
        $record = array(
            'message' => (string) $message,
            'context' => $context,
            'level' => $level,
            'level_name' => $levelName,
            'channel' => $this->name,
            'datetime' => $ts,
            'extra' => array(),
        );
 
        try {
            foreach ($this->processors as $processor) {
                $record = call_user_func($processor, $record);
            }
 
            while ($handler = current($this->handlers)) {
                if (true === $handler->handle($record)) {
                    break;
                }
 
                next($this->handlers);
            }
        } catch (Exception $e) {
            $this->handleException($e, $record);
        }
 
        return true;
    }
 
    /**
     * Ends a log cycle and frees all resources used by handlers.
     *
     * Closing a Handler means flushing all buffers and freeing any open resources/handles.
     * Handlers that have been closed should be able to accept log records again and re-open
     * themselves on demand, but this may not always be possible depending on implementation.
     *
     * This is useful at the end of a request and will be called automatically on every handler
Arguments
  1. array:8 [
      "message" => "file_put_contents(/home/rezabehr/storage/framework/sessions/5ocxO7ISp4bNpskGNx6MFbmNrbdPajEaHbB0YLYD): failed to open stream: Disk quota exceeded"
      "context" => array:1 [
        "exception" => ErrorException {#146
          #message: "file_put_contents(/home/rezabehr/storage/framework/sessions/5ocxO7ISp4bNpskGNx6MFbmNrbdPajEaHbB0YLYD): failed to open stream: Disk quota exceeded"
          #code: 0
          #file: "/home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
          #line: 122
          #severity: E_WARNING
        }
      ]
      "level" => 400
      "level_name" => "ERROR"
      "channel" => "local"
      "datetime" => DateTime @1643099524 {#363
        date: 2022-01-25 12:02:04.265065 Asia/Tehran (+03:30)
      }
      "extra" => []
      "formatted" => """
        [2022-01-25 12:02:04] local.ERROR: file_put_contents(/home/rezabehr/storage/framework/sessions/5ocxO7ISp4bNpskGNx6MFbmNrbdPajEaHbB0YLYD): failed to open stream: Disk quota exceeded {"exception":"[object] (ErrorException(code: 0): file_put_contents(/home/rezabehr/storage/framework/sessions/5ocxO7ISp4bNpskGNx6MFbmNrbdPajEaHbB0YLYD): failed to open stream: Disk quota exceeded at /home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122)\n
        [stacktrace]\n
        #0 [internal function]: Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(2, 'file_put_conten...', '/home/rezabehr/...', 122, Array)\n
        #1 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(122): file_put_contents('/home/rezabehr/...', 'a:3:{s:6:\"_toke...', 2)\n
        #2 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php(83): Illuminate\\Filesystem\\Filesystem->put('/home/rezabehr/...', 'a:3:{s:6:\"_toke...', true)\n
        #3 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Session/Store.php(129): Illuminate\\Session\\FileSessionHandler->write('5ocxO7ISp4bNpsk...', 'a:3:{s:6:\"_toke...')\n
        #4 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(87): Illuminate\\Session\\Store->save()\n
        #5 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(218): Illuminate\\Session\\Middleware\\StartSession->terminate(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #6 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(189): Illuminate\\Foundation\\Http\\Kernel->terminateMiddleware(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #7 /home/rezabehr/public_html/index.php(63): Illuminate\\Foundation\\Http\\Kernel->terminate(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #8 {main}\n
        "} \n
        """
    ]
    
/home/rezabehr/vendor/monolog/monolog/src/Monolog/Logger.php
     * @param  array  $context The log context
     * @return bool   Whether the record has been processed
     */
    public function err($message, array $context = array())
    {
        return $this->addRecord(static::ERROR, $message, $context);
    }
 
    /**
     * Adds a log record at the ERROR level.
     *
     * This method allows for compatibility with common interfaces.
     *
     * @param  string $message The log message
     * @param  array  $context The log context
     * @return bool   Whether the record has been processed
     */
    public function error($message, array $context = array())
    {
        return $this->addRecord(static::ERROR, $message, $context);
    }
 
    /**
     * Adds a log record at the CRITICAL level.
     *
     * This method allows for compatibility with common interfaces.
     *
     * @param  string $message The log message
     * @param  array  $context The log context
     * @return bool   Whether the record has been processed
     */
    public function crit($message, array $context = array())
    {
        return $this->addRecord(static::CRITICAL, $message, $context);
    }
 
    /**
     * Adds a log record at the CRITICAL level.
     *
     * This method allows for compatibility with common interfaces.
Arguments
  1. 400
    
  2. "file_put_contents(/home/rezabehr/storage/framework/sessions/5ocxO7ISp4bNpskGNx6MFbmNrbdPajEaHbB0YLYD): failed to open stream: Disk quota exceeded"
    
  3. array:1 [
      "exception" => ErrorException {#146
        #message: "file_put_contents(/home/rezabehr/storage/framework/sessions/5ocxO7ISp4bNpskGNx6MFbmNrbdPajEaHbB0YLYD): failed to open stream: Disk quota exceeded"
        #code: 0
        #file: "/home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
        #line: 122
        #severity: E_WARNING
      }
    ]
    
/home/rezabehr/vendor/laravel/framework/src/Illuminate/Log/Logger.php
     * @return void
     */
    public function write($level, $message, array $context = [])
    {
        $this->writeLog($level, $message, $context);
    }
 
    /**
     * Write a message to the log.
     *
     * @param  string  $level
     * @param  string  $message
     * @param  array  $context
     * @return void
     */
    protected function writeLog($level, $message, $context)
    {
        $this->fireLogEvent($level, $message = $this->formatMessage($message), $context);
 
        $this->logger->{$level}($message, $context);
    }
 
    /**
     * Register a new callback handler for when a log event is triggered.
     *
     * @param  \Closure  $callback
     * @return void
     *
     * @throws \RuntimeException
     */
    public function listen(Closure $callback)
    {
        if (! isset($this->dispatcher)) {
            throw new RuntimeException('Events dispatcher has not been set.');
        }
 
        $this->dispatcher->listen(MessageLogged::class, $callback);
    }
 
    /**
Arguments
  1. "file_put_contents(/home/rezabehr/storage/framework/sessions/5ocxO7ISp4bNpskGNx6MFbmNrbdPajEaHbB0YLYD): failed to open stream: Disk quota exceeded"
    
  2. array:1 [
      "exception" => ErrorException {#146
        #message: "file_put_contents(/home/rezabehr/storage/framework/sessions/5ocxO7ISp4bNpskGNx6MFbmNrbdPajEaHbB0YLYD): failed to open stream: Disk quota exceeded"
        #code: 0
        #file: "/home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
        #line: 122
        #severity: E_WARNING
      }
    ]
    
/home/rezabehr/vendor/laravel/framework/src/Illuminate/Log/Logger.php
     *
     * @param  string  $message
     * @param  array  $context
     * @return void
     */
    public function critical($message, array $context = [])
    {
        $this->writeLog(__FUNCTION__, $message, $context);
    }
 
    /**
     * Log an error message to the logs.
     *
     * @param  string  $message
     * @param  array  $context
     * @return void
     */
    public function error($message, array $context = [])
    {
        $this->writeLog(__FUNCTION__, $message, $context);
    }
 
    /**
     * Log a warning message to the logs.
     *
     * @param  string  $message
     * @param  array  $context
     * @return void
     */
    public function warning($message, array $context = [])
    {
        $this->writeLog(__FUNCTION__, $message, $context);
    }
 
    /**
     * Log a notice to the logs.
     *
     * @param  string  $message
     * @param  array  $context
     * @return void
Arguments
  1. "error"
    
  2. "file_put_contents(/home/rezabehr/storage/framework/sessions/5ocxO7ISp4bNpskGNx6MFbmNrbdPajEaHbB0YLYD): failed to open stream: Disk quota exceeded"
    
  3. array:1 [
      "exception" => ErrorException {#146
        #message: "file_put_contents(/home/rezabehr/storage/framework/sessions/5ocxO7ISp4bNpskGNx6MFbmNrbdPajEaHbB0YLYD): failed to open stream: Disk quota exceeded"
        #code: 0
        #file: "/home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
        #line: 122
        #severity: E_WARNING
      }
    ]
    
/home/rezabehr/vendor/laravel/framework/src/Illuminate/Log/LogManager.php
     *
     * @return void
     */
    public function critical($message, array $context = [])
    {
        $this->driver()->critical($message, $context);
    }
 
    /**
     * Runtime errors that do not require immediate action but should typically
     * be logged and monitored.
     *
     * @param string $message
     * @param array  $context
     *
     * @return void
     */
    public function error($message, array $context = [])
    {
        $this->driver()->error($message, $context);
    }
 
    /**
     * Exceptional occurrences that are not errors.
     *
     * Example: Use of deprecated APIs, poor use of an API, undesirable things
     * that are not necessarily wrong.
     *
     * @param string $message
     * @param array  $context
     *
     * @return void
     */
    public function warning($message, array $context = [])
    {
        $this->driver()->warning($message, $context);
    }
 
    /**
     * Normal but significant events.
Arguments
  1. "file_put_contents(/home/rezabehr/storage/framework/sessions/5ocxO7ISp4bNpskGNx6MFbmNrbdPajEaHbB0YLYD): failed to open stream: Disk quota exceeded"
    
  2. array:1 [
      "exception" => ErrorException {#146
        #message: "file_put_contents(/home/rezabehr/storage/framework/sessions/5ocxO7ISp4bNpskGNx6MFbmNrbdPajEaHbB0YLYD): failed to open stream: Disk quota exceeded"
        #code: 0
        #file: "/home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
        #line: 122
        #severity: E_WARNING
      }
    ]
    
/home/rezabehr/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php
     */
    public function report(Exception $e)
    {
        if ($this->shouldntReport($e)) {
            return;
        }
 
        if (method_exists($e, 'report')) {
            return $e->report();
        }
 
        try {
            $logger = $this->container->make(LoggerInterface::class);
        } catch (Exception $ex) {
            throw $e;
        }
 
        $logger->error(
            $e->getMessage(),
            array_merge($this->context(), ['exception' => $e]
        ));
    }
 
    /**
     * Determine if the exception should be reported.
     *
     * @param  \Exception  $e
     * @return bool
     */
    public function shouldReport(Exception $e)
    {
        return ! $this->shouldntReport($e);
    }
 
    /**
     * Determine if the exception is in the "do not report" list.
     *
     * @param  \Exception  $e
     * @return bool
     */
Arguments
  1. "file_put_contents(/home/rezabehr/storage/framework/sessions/5ocxO7ISp4bNpskGNx6MFbmNrbdPajEaHbB0YLYD): failed to open stream: Disk quota exceeded"
    
  2. array:1 [
      "exception" => ErrorException {#146
        #message: "file_put_contents(/home/rezabehr/storage/framework/sessions/5ocxO7ISp4bNpskGNx6MFbmNrbdPajEaHbB0YLYD): failed to open stream: Disk quota exceeded"
        #code: 0
        #file: "/home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
        #line: 122
        #severity: E_WARNING
      }
    ]
    
/home/rezabehr/app/Exceptions/Handler.php
 
    /**
     * A list of the inputs that are never flashed for validation exceptions.
     *
     * @var array
     */
    protected $dontFlash = [
        'password',
        'password_confirmation',
    ];
 
    /**
     * Report or log an exception.
     *
     * @param  \Exception  $exception
     * @return void
     */
    public function report(Exception $exception)
    {
        parent::report($exception);
    }
 
    /**
     * Render an exception into an HTTP response.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Exception  $exception
     * @return \Illuminate\Http\Response
     */
    public function render($request, Exception $exception)
    {
        return parent::render($request, $exception);
    }
}
 
Arguments
  1. ErrorException {#146
      #message: "file_put_contents(/home/rezabehr/storage/framework/sessions/5ocxO7ISp4bNpskGNx6MFbmNrbdPajEaHbB0YLYD): failed to open stream: Disk quota exceeded"
      #code: 0
      #file: "/home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
      #line: 122
      #severity: E_WARNING
    }
    
/home/rezabehr/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php
    }
 
    /**
     * Handle an uncaught exception from the application.
     *
     * Note: Most exceptions can be handled via the try / catch block in
     * the HTTP and Console kernels. But, fatal error exceptions must
     * be handled differently since they are not normal exceptions.
     *
     * @param  \Throwable  $e
     * @return void
     */
    public function handleException($e)
    {
        if (! $e instanceof Exception) {
            $e = new FatalThrowableError($e);
        }
 
        try {
            $this->getExceptionHandler()->report($e);
        } catch (Exception $e) {
            //
        }
 
        if ($this->app->runningInConsole()) {
            $this->renderForConsole($e);
        } else {
            $this->renderHttpResponse($e);
        }
    }
 
    /**
     * Render an exception to the console.
     *
     * @param  \Exception  $e
     * @return void
     */
    protected function renderForConsole(Exception $e)
    {
        $this->getExceptionHandler()->renderForConsole(new ConsoleOutput, $e);
Arguments
  1. ErrorException {#146
      #message: "file_put_contents(/home/rezabehr/storage/framework/sessions/5ocxO7ISp4bNpskGNx6MFbmNrbdPajEaHbB0YLYD): failed to open stream: Disk quota exceeded"
      #code: 0
      #file: "/home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
      #line: 122
      #severity: E_WARNING
    }
    
[internal]
Arguments
  1. ErrorException {#146
      #message: "file_put_contents(/home/rezabehr/storage/framework/sessions/5ocxO7ISp4bNpskGNx6MFbmNrbdPajEaHbB0YLYD): failed to open stream: Disk quota exceeded"
      #code: 0
      #file: "/home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
      #line: 122
      #severity: E_WARNING
    }
    

Environment & details:

Key Value
id
"24"
title
"زبان سخت افزاری Verilog HDL چیست؟"
empty
empty
empty
empty
Key Value
PATH
"/usr/local/bin:/bin:/usr/bin"
HTTP_ACCEPT
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
HTTP_ACCEPT_ENCODING
"br,gzip"
HTTP_ACCEPT_LANGUAGE
"en-US,en;q=0.5"
HTTP_CONNECTION
"Keep-Alive"
HTTP_HOST
"rezabehrouzi.com"
HTTP_USER_AGENT
"CCBot/2.0 (https://commoncrawl.org/faq/)"
HTTP_IF_MODIFIED_SINCE
"Sat, 16 Oct 2021 03:20:49 GMT"
DOCUMENT_ROOT
"/home/rezabehr/public_html"
REMOTE_ADDR
"52.203.18.65"
REMOTE_PORT
"58930"
SERVER_ADDR
"46.4.45.211"
SERVER_NAME
"rezabehrouzi.com"
SERVER_ADMIN
"webmaster@rezabehrouzi.com"
SERVER_PORT
"443"
REQUEST_SCHEME
"https"
REQUEST_URI
"/article?id=24&title=%D8%B2%D8%A8%D8%A7%D9%86%20%D8%B3%D8%AE%D8%AA%20%D8%A7%D9%81%D8%B2%D8%A7%D8%B1%DB%8C%20Verilog%20HDL%20%DA%86%DB%8C%D8%B3%D8%AA%D8%9F"
REDIRECT_URL
"/article"
REDIRECT_QUERY_STRING
"id=24&title=%D8%B2%D8%A8%D8%A7%D9%86%20%D8%B3%D8%AE%D8%AA%20%D8%A7%D9%81%D8%B2%D8%A7%D8%B1%DB%8C%20Verilog%20HDL%20%DA%86%DB%8C%D8%B3%D8%AA%D8%9F"
HTTPS
"on"
REDIRECT_STATUS
"200"
SSL_PROTOCOL
"TLSv1.3"
SSL_CIPHER
"TLS_AES_256_GCM_SHA384"
SSL_CIPHER_USEKEYSIZE
"256"
SSL_CIPHER_ALGKEYSIZE
"256"
SCRIPT_FILENAME
"/home/rezabehr/public_html/index.php"
QUERY_STRING
"id=24&title=%D8%B2%D8%A8%D8%A7%D9%86%20%D8%B3%D8%AE%D8%AA%20%D8%A7%D9%81%D8%B2%D8%A7%D8%B1%DB%8C%20Verilog%20HDL%20%DA%86%DB%8C%D8%B3%D8%AA%D8%9F"
SCRIPT_URI
"https://rezabehrouzi.com/article"
SCRIPT_URL
"/article"
SCRIPT_NAME
"/index.php"
SERVER_PROTOCOL
"HTTP/1.1"
SERVER_SOFTWARE
"LiteSpeed"
REQUEST_METHOD
"GET"
X-LSCACHE
"on"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1643099524.1857
REQUEST_TIME
1643099524
argv
array:1 [
  0 => "id=24&title=%D8%B2%D8%A8%D8%A7%D9%86%20%D8%B3%D8%AE%D8%AA%20%D8%A7%D9%81%D8%B2%D8%A7%D8%B1%DB%8C%20Verilog%20HDL%20%DA%86%DB%8C%D8%B3%D8%AA%D8%9F"
]
argc
1
APP_NAME
"Laravel"
APP_ENV
"local"
APP_KEY
"base64:rb9vf2b1y2CyDO7rL6noyDaiALdVJOKYNOJ9FCMGmQQ="
APP_DEBUG
"true"
APP_URL
"http://localhost"
LOG_CHANNEL
"stack"
DB_CONNECTION
"mysql"
DB_HOST
"localhost"
DB_PORT
"3306"
DB_DATABASE
"rezabehr_main"
DB_USERNAME
"rezabehr_milad"
DB_PASSWORD
"@passwordlx1"
BROADCAST_DRIVER
"log"
CACHE_DRIVER
"file"
QUEUE_CONNECTION
"sync"
SESSION_DRIVER
"file"
SESSION_LIFETIME
"120"
REDIS_HOST
"127.0.0.1"
REDIS_PASSWORD
"null"
REDIS_PORT
"6379"
MAIL_DRIVER
"smtp"
MAIL_HOST
"smtp.mailtrap.io"
MAIL_PORT
"2525"
MAIL_USERNAME
"null"
MAIL_PASSWORD
"null"
MAIL_ENCRYPTION
"null"
PUSHER_APP_ID
""
PUSHER_APP_KEY
""
PUSHER_APP_SECRET
""
PUSHER_APP_CLUSTER
"mt1"
MIX_PUSHER_APP_KEY
""
MIX_PUSHER_APP_CLUSTER
"mt1"
Key Value
APP_NAME
"Laravel"
APP_ENV
"local"
APP_KEY
"base64:rb9vf2b1y2CyDO7rL6noyDaiALdVJOKYNOJ9FCMGmQQ="
APP_DEBUG
"true"
APP_URL
"http://localhost"
LOG_CHANNEL
"stack"
DB_CONNECTION
"mysql"
DB_HOST
"localhost"
DB_PORT
"3306"
DB_DATABASE
"rezabehr_main"
DB_USERNAME
"rezabehr_milad"
DB_PASSWORD
"@passwordlx1"
BROADCAST_DRIVER
"log"
CACHE_DRIVER
"file"
QUEUE_CONNECTION
"sync"
SESSION_DRIVER
"file"
SESSION_LIFETIME
"120"
REDIS_HOST
"127.0.0.1"
REDIS_PASSWORD
"null"
REDIS_PORT
"6379"
MAIL_DRIVER
"smtp"
MAIL_HOST
"smtp.mailtrap.io"
MAIL_PORT
"2525"
MAIL_USERNAME
"null"
MAIL_PASSWORD
"null"
MAIL_ENCRYPTION
"null"
PUSHER_APP_ID
""
PUSHER_APP_KEY
""
PUSHER_APP_SECRET
""
PUSHER_APP_CLUSTER
"mt1"
MIX_PUSHER_APP_KEY
""
MIX_PUSHER_APP_CLUSTER
"mt1"
0. Whoops\Handler\PrettyPageHandler